我有一个蓝色的虚拟机规模与此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