protected override void Execute() { IntPtr valuePtr = IntPtr.Zero; string password; try { valuePtr = Marshal.SecureStringToGlobalAllocUnicode(Credential.Password); password = Marshal.PtrToStringUni(valuePtr); } finally { Marshal.ZeroFreeGlobalAllocUnicode(valuePtr); } LogCollectParameters parameters = new LogCollectParameters { AzureBlobContainer = AzureStorageContainer, AzureSasToken = AzureSasToken, AzureStorageAccountKey = AzureStorageAccountKey, AzureStorageAccountName = AzureStorageAccountName, EndTime = EndTime, StartTime = StartTime, LogPrefix = LogPrefix, UserName = Credential.UserName, PlainPassword = password, TargetShareFolder = TargetShareFolder }; var logCollectTask = Client.Farms.CollectLogAsync(ResourceGroupName, FarmName, parameters); WriteVerbose("Sending request to start a log Collect job, it will take some time..."); var response = logCollectTask.Result; if (response.StatusCode != HttpStatusCode.OK) { throw new AdminException(string.Format(CultureInfo.InvariantCulture, Resources.OperationFailedErrorMessage, response.StatusCode)); } WriteObject(response); }