Я медленно промокаю ноги с Powershell, так что я новичок. Пытаюсь заставить PS извлечь из текстового файла список компьютеров и сообщить мне статус их службы идентификации приложений. Основные ошибки скрипта отсутствуют (ниже). Я добавил оператор $ ErrorActionPreference = 'SilentlyContinue и не вижу ошибки, но скрипт все равно останавливается. Я получаю первые два результата, а потом выдает ошибку. Любые идеи?
$ErrorActionPreference = 'SilentlyContinue'
$path = 'C:\Users\user\Documents\list.txt'
$pc = Get-Content $path
gwmi win32_service -ComputerName $pc | where name -like "APPIDSVC" | select SystemName,startmode,state | Out-GridView
Вот моя ошибка (ДОСТУП ЗАПРЕЩЕН)
gwmi : The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)
At line:3 char:1
+ gwmi win32_service -ComputerName $pc | where name -like "APPIDSVC" | ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Get-WmiObject], COMException
+ FullyQualifiedErrorId : GetWMICOMException,Microsoft.PowerShell.Commands.GetWmiObjectCommand
gwmi : Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
At line:3 char:1
+ gwmi win32_service -ComputerName $pc | where name -like "APPIDSVC" | ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Get-WmiObject], UnauthorizedAccessException
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.GetWmiObjectCommand
Включите удаленное управление на целевых конечных точках, запустив winrm quickconfig
по каждому из них. (Если у вас их много, вы можете настроить это с помощью GPO или такого инструмента, как SCCM.)
Это запустит службу, которая прослушивает входящее управление PowerShell. Кроме того, вам необходимо убедиться, что ваш брандмауэр разрешает порты 5985 и 5986 для работы этой службы.
Как вы отметили, для учетной записи, которую вы используете для удаленного управления (или запроса) с помощью PowerShell, также потребуются права локального администратора на целевой машине. Отличный способ решить эту проблему - создать группу «Администраторы сервера» в Active Directory и использовать объект групповой политики для добавления этой группы в группу локальных администраторов на каждом сервере (кроме контроллеров вашего домена.) Затем создайте отдельные учетные записи администратора сервера для своих системных администраторов (они должны быть отделены от их стандартных учетных записей повседневного использования и отдельно от любых учетных записей, которые являются администраторами домена) и поместите эти учетные записи в группу «Администраторы сервера».
Итак, я узнал, что если я запускаю свой PS как администратор домена, он продолжает работать. Думаю, мне повезло, и я нашел свое решение.