3

私は 3 つのサーバーを持っています。それらをDeploy1Deploy2Targetと呼びましょう。すべてのサーバーは、完全に更新された Windows Server 2008R2 を実行しています。ドメイン ユーザーadmin1は、すべてのサーバーで管理者として構成されています。これは、すべてのコマンドを実行しているユーザーです。

次のコマンドはDeploy1で機能します。

Get-Service "MyService" -ComputerName Target | Stop-Service

Deploy2で同じコマンドを実行すると、コマンドは次のメッセージで失敗します。

サービス名が「MyService」のサービスが見つかりません。

Deploy2では、次のコマンドが機能し、サービスとそのステータスが表示されます。

Get-Service "MyService" -ComputerName Target

PowerShell を介してサービスを停止/開始する方法は他にもあることはわかっていますが、サーバーが実際に停止/開始するのを自動的に待機するので、この方法が気に入っています。

では、 Deploy2 のどこが悪いのでしょうか?

4

2 に答える 2

3

Powershell v2.0 には、Get-Service によって返されるオブジェクトの実装方法にバグ (機能?) があります。実際には ComputerName プロパティを正しく設定しません。このため、影響を受けるのはローカル サービスのみです。Windows Management Framework 3.0 (およびその結果として Powershell v3) にアップグレードすると、バグが修正され、正しく動作します。

于 2012-12-27T20:10:10.177 に答える
2

これは機能しますか?そうでない場合、エラーが発生していますか?

(Get-Service "MyService" -ComputerName Target).Stop()
于 2012-12-27T19:20:53.367 に答える