VPNでホストサーバーに接続されているサーバーがいくつかあります。すべての実行ウィンドウ7。サーバーごとにループGet-Service -ComputerName $server -Name Spooler
で実行しています。何らかの理由で、サービスを正常に返すものもあれば、Get-Service : Cannot find any service with service name 'Spooler'
と言わないものもあります。私はそれらすべてがSpooler
サービスを持っていることを100%知っています。
おそらく、サービスを返さないサーバーで何かが異なって構成されています。誰かが私が何をチェックすべきかアドバイスできますか?
考えられる原因は、リモートマシン上のサービスを照会するための十分な特権がないことです。 -Name
引数を指定せずに試してください。例:
get-service -ComputerName TEST-CLIENT
ここで、TEST-CLIENTはサーバー名です。そして、より良いエラーメッセージが表示されるかどうかを確認してください。例:
get-service : Cannot open Service Control Manager on computer 'TEST-CLIENT'. This operation might require other privileges.
これが問題であることが判明した場合は、リモートログオンや管理者アクセスをリモートマシンのアカウントに許可してみてください。セットアップの詳細がなければ、これ以上正確な解決策を提供することはできません。
特権の問題は別として、次に考えられる原因は、$ server変数が正しいタイプではないことだと思います。
Get-Serviceのヘルプファイルを調べます。 -ComputerNameは文字列値のみを受け入れることがわかります。
PS C:\Temp> Get-Help Get-Service -Parameter Computername
-ComputerName **<String[]>**
Gets the services running on the specified computers. The default is the local computer.
Type the NetBIOS name, an IP address, or a fully qualified domain name (FQDN) of a remote computer. To specify the local computer, type the computer name, a dot (.), or localhost.
This parameter does not rely on Windows PowerShell remoting. You can use the ComputerName parameter of Get-Service even if your computer is not configured to run remote commands.
Required? false
Position? named
Default value None
Accept pipeline input? True (ByPropertyName)
Accept wildcard characters? false
Get-ADComputerを使用して$ server変数を設定する場合、変数にはおそらくオブジェクトタイプ「Microsoft.ActiveDirectory.Management.ADComputer」が含まれています。
PS C:\Temp> Get-ADComputer -Identity AE-HTPC | Get-Member
TypeName: Microsoft.ActiveDirectory.Management.ADComputer
オブジェクトを取得して内容をStringに展開すると、Get-Serviceが理解できる変数が得られます。
PS C:\Temp> Get-ADComputer -Identity AE-HTPC | Select-Object -
ExpandProperty Name | Get-Member
TypeName: System.String
....。
複製された結果...
*PS C:\Temp> $server = Get-ADComputer -Identity AE-HTPC
PS C:\Temp> Get-Service -ComputerName $server
Get-Service : Cannot open Service Control Manager on computer 'CN=AE-
HTPC,OU=HTPC,OU=Workstations,OU=All Clients,DC=ae,DC=kingdom,DC=com'.
This operation might require other privileges.
At line:1 char:1
+ Get-Service -ComputerName $server
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Get-Service], InvalidOperationException
+ FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.PowerShell.Commands.GetServiceCommand
PS C:\Temp> $server = Get-ADComputer -Identity AE-HTPC | Select-Object -ExpandProperty name
PS C:\Temp> Get-Service -ComputerName $server
Status Name DisplayName
------ ---- -----------
Stopped AdobeFlashPlaye... Adobe Flash Player Update Service
Stopped AJRouter AllJoyn Router Service*
この答えがあまり詳細ではないことを願っています。それは私の最初のものです。それが役立つかどうか教えてください。