我有一個藍色的虛擬機規模與此extensionProfile的部署模板:PowerShell腳本無法執行註冊-ScheduledJob作爲Azure的資源管理器CustomScriptExtension
"extensionProfile": {
"extensions": [
{
"name": "customScript",
"location": "[resourceGroup().location]",
"properties": {
"publisher": "Microsoft.Compute",
"type": "CustomScriptExtension",
"settings": {
"fileUris": [
"[concat(parameters('customInstallScriptLocation'), parameters('customInstallScriptFileName'))]"
]
},
"typeHandlerVersion": "1.8",
"autoUpgradeMinorVersion": true,
"protectedSettings": {
"commandToExecute": "[concat('powershell -ExecutionPolicy Unrestricted -File \"', parameters('customInstallScriptFileName'), '\" -adminUsername ', parameters('adminUsername'), ' -adminPassword ', parameters('adminPassword'))]"
}
}
}
]
}
當部署執行自定義腳本的vmss,像Invoke-WebRequest和Start-Process這樣的命令可以毫無問題地工作。但Register-ScheduledJob不起作用。當我連接到遠程桌面並手動運行此安裝腳本時,一切正常。
這是一個失敗的時候沒有手動運行它的代碼:
$trigger = New-JobTrigger -AtStartup -RandomDelay 00:00:45
Register-ScheduledJob -Trigger $trigger -FilePath $installDir\natPuncherStartupScript.ps1 -Name NPSSOnStartup >> $log
logAndClearErrors $true
的錯誤是:
Register-ScheduledJob : An error occurred while registering scheduled jobdefinition NPSSOnInstall to the Windows Task Scheduler. The Task Scheduler error is: (32,4):UserId:.
我也試過:
$trigger = New-JobTrigger -AtStartup -RandomDelay 00:00:45
Register-ScheduledJob -Credential $credential -Trigger $trigger -FilePath $installDir\natPuncherStartupScript.ps1 -Name NPSSOnStartup >> $log
logAndClearErrors $true
但現在的錯誤顯示用戶名/密碼無效。另外當從遠程桌面手動運行這個工作正常。
我缺少什麼?爲什麼我無法安排一份來自海關手續的工作?
你的意思是,當你在'註冊-ScheduledJob'指定'-Credential'和部署ARM模板,然後你會得到一個錯誤:「用戶名/密碼無效」?你是如何獲得Credential的'$ credential'的? –
'$ adminPasswordSecure =的ConvertTo-SecureString的$ ADMINPASSWORD -AsPlainText -Force $證書=新物體System.Management.Automation。PSCredential($ adminUsername,$ adminPasswordSecure)' – Maarten
我使用我之前評論中的代碼創建我的憑證對象,$ customUsername和$ adminPassword從customScriptExtension傳遞。 – Maarten