私はこのextensionProfileと紺碧の仮想マシンのスケールのための配置テンプレートを持っているとして登録-ScheduledJobを実行することはできません。PowerShellスクリプトは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 $ credential = New-Object System.Management.Automation。PSCredential($ adminUsername、$ adminPasswordSecure) ' – Maarten
前のコメントのコードを使用して、資格証明オブジェクトを作成しました。$ adminUsernameと$ adminPasswordは、customScriptExtensionから渡されます。 – Maarten