PowerShell を学習していて、リモート サーバーで IIS を停止しようとしています。
管理者モードで起動した PowerGUI Script Editor を使用しています。
私はこのコードを持っています
$service = Get-WmiObject Win32_Service -ComputerName 'myserver' -Filter "Name='IISAdmin'"
$service
$service.StopService();
$service.State
状態は常に実行中として返されます。なぜ止まらないのかわからない。
編集
実行時に発生するエラー
Invoke-Command -ComputerName 'myserver' { Stop-Service IISAdmin }
リモート サーバーへの接続に失敗し、次のエラー メッセージが表示されました: クライアントは、要求で指定された宛先に接続できません。宛先のサービスが実行中であり、要求を受け入れていることを確認します。宛先で実行されている WS-Management サービスのログとドキュメントを参照してください。最も一般的なのは IIS または WinRM です。宛先が WinRM サービスの場合は、宛先で次のコマンドを実行して、WinRM サービスを分析および構成します: "winrm quickconfig"。詳細については、about_Remote_Troubleshooting ヘルプ トピックを参照してください。
編集2
私はこれを見つけました、そしてそれはうまくいくようです。Stop-Service から情報を取得する方法がわからないため、別の方法で取得する必要がありました。方法をご存知でしたら教えてください。
Stop-Service -Force -InputObject $(Get-Service -Computer myserver -Name IISAdmin)
$service = Get-WmiObject Win32_Service -ComputerName 'myserver ' -Filter "Name='IISAdmin'"
$service.State
これは機能します。理由がわかりません。私が考えることができる唯一のことは、それ以外の場合はサーバーを停止しないため、-Force を使用する必要があったことです。それが理由でしょうか?