0
在創建vm後,我運行運行powershell腳本的Azure自定義腳本擴展。因此,該腳本執行一些基本任務,如創建共享創建一些文件並創建一個PowerShell腳本並將其存儲在虛擬機上。自定義虛擬機擴展腳本中的最後一步我試圖設置一個任務計劃程序作業來調用上面創建的powershell腳本,並且腳本應該以擴展名結束。嘗試使用Azure自定義腳本擴展運行後臺作業或PowerShell任務調度程序
問題是擴展卡在運行狀態並永不停止。我編寫了一個日誌來了解腳本的進度,並顯示腳本通過了整個腳本,但它仍然處於運行狀態,並且任務計劃程序腳本不能運行該任務。
當我手動登錄vm時,我手動運行腳本並且工作正常。所以我不確定是什麼導致它掛起以及它是以什麼用戶身份運行的vm擴展名。我嘗試運行powershell後臺作業而不是調度程序,並得到了上述相同的症狀。 下面的代碼是任務計劃程序,我嘗試運行vm自定義擴展,當嘗試通過自定義擴展設置它時無法正常工作,但從vm手動設置運行良好。
$jobname = "MasterFileWatcher"
$script = "c:\test\MasterFileWatcher.ps1"
$repeat = (New-TimeSpan -Minutes 1)
$action = New-ScheduledTaskAction –Execute "$pshome\powershell.exe" -Argument "$script; quit"
$duration = ([timeSpan]::maxvalue)
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date).Date -
RepetitionInterval $repeat -RepetitionDuration $duration
$msg = "Enter the username and password that will run the task";
$credential = $Host.UI.PromptForCredential("Task username and
password",$msg,"$env:userdomain\$env:username",$env:userdomain)
$username = $credential.UserName
$password = $credential.GetNetworkCredential().Password
$username = "$env:userdomain\testuser"
$password = "testpass"
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable -RunOnlyIfNetworkAvailable -DontStopOnIdleEnd
Register-ScheduledTask -TaskName $jobname -Action $action -Trigger $trigger -RunLevel Highest -User $username -Password $password -Settings $settings
我不知道你是如何想到這個腳本擴展,以便填寫密碼爲你 – 4c74356b41
的這部分運行代碼被註釋掉了,我想當我在這裏粘貼代碼時,它將註釋部分取出。現在我已經很難對密碼進行硬編碼了。 #$ msg =「輸入將運行任務的用戶名和密碼」; #$ credential = $ Host.UI.PromptForCredential(「Task username and password」,$ msg,「$ env:userdomain \ $ env:username」,$ env:userdomain) #$ username = $ credential.UserName #$ password = $ credential.GetNetworkCredential()。Password#> – JonnyD