Почему некоторые серверы не работают при выполнении «Get-Service»?

У меня есть несколько серверов, подключенных через VPN к моему хост-серверу. Все работают под управлением windows 7. Я выполняю цикл Get-Service -ComputerName $ server -Name Spooler для каждого сервера. По какой-то причине некоторые из них успешно возвращают службу, а некоторые не говорят Get-Service: не удается найти службу с именем службы 'Spooler' . Я знаю на 100%, что все они имеют службу Spooler .

Возможно, что-то настроено по-другому на серверах, которые не могут вернуть службу. Может кто посоветует, что проверять?

2
задан 20 February 2017 в 05:03
2 ответа

Вероятная причина - у вас недостаточно прав для запроса служб на удаленном компьютере. Попробуйте не указывать аргумент -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.

Если это окажется вашей проблемой, вы можете попробовать предоставить удаленный вход и / или доступ администратора к вашей учетной записи на удаленном компьютере. Без более подробной информации о вашей настройке я не могу дать более точное решение.

1
ответ дан 3 December 2019 в 12:37

Помимо привилегий проблема, я думаю, что следующая наиболее вероятная причина заключается в том, что ваша переменная $ 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

Если вы установите переменную $ server с помощью Get-ADComputer, переменная, вероятно, будет содержать тип объекта «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*   

Надеюсь, этот ответ не слишком подробный. Это мой первый. Дайте мне знать, если это поможет.

0
ответ дан 3 December 2019 в 12:37

Теги

Похожие вопросы