Azure Service Bus キューと Azure Worker ロールの組み合わせを使用して、多数の Azure/サービス メンテナンス タスクを自動化しようとしています。要するに、コンセプトは次のとおりです....
- 保守タスクは SB キューに投稿されます
- Worker ロールは SB キューのタスクをリッスンします
- ワーカー ロールは、目的の VM/Web ロール/クラウド サービスに接続し、リモートの powershell コマンドを実行します
実際には、これは開発環境内で動作している場合は期待どおりに機能しますが、worker ロールが公開された後、リモート PowerShell 接続は「アクセスが拒否されました」という応答で失敗します。接続を確立するためのコードは次のとおりです...
PSCredential cred = new PSCredential(config.Username, config.PrimaryPassword);
WSManConnectionInfo connection = new WSManConnectionInfo(true, config.PrimaryServer, 5986, "/wsman", "http://schemas.microsoft.com/powershell/Microsoft.PowerShell", cred);
using (Runspace runspace = RunspaceFactory.CreateRunspace(connection))
{
runspace.Open();
using (PowerShell shell = PowerShell.Create())
{
shell.Runspace = runspace;
// DO SOMETHING HERE
shell.Invoke();
}
runspace.Close();
}
当初、これは CA 証明書の問題ではないかと疑っていましたが、RDP 経由で worker ロールに接続し、証明書が正しく展開されていることを確認しました。さらに、リモートデスクトップ接続を使用して、「winrs -r:」コマンドを介してターゲットサーバーへの接続を達成することもできました。
確認のため、worker ロールも昇格されたアクセス許可で実行されています。
これに関する任意の助けをいただければ幸いです
前もって感謝します