"get-wmiobject win32_process -computername" получает ошибку "Доступ запрещен, код 0x80070005"

Я пытаюсь найти процессы на 3 терминальных серверах, которые имеют определенные слова в свойстве командной строки $_. Под моей учетной записью администратора домена все работало нормально. Но я хочу, чтобы этот сценарий был применим для пользователей домена, и пользователи doamin получают ошибку при запуске этого сценария.

Что я должен сделать, чтобы пользователи домена могли запускать этот скрипт так же, как администраторы домена? Заранее спасибо!

Ошибка:

Get-WmiObject : Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESS DENIED))
At N:\FindWhoIsUsing\FindWhoIsUsing.ps1:7 char:18
get-wmiobject <<<<  win32_process -computername $server -EnableAllPrivileges|
CategoryInfo          : NotSpecified: (:) [Get-WmiObject], UnauthorizedAccessException
FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.GetWmiObjectCommand

Код Powershell:

Write-host "Who is using this profile?"
$profile = Read-host "specify profile name" 
$servers = @("server-01","server-02","server-03")
Foreach($server in $servers)
{
    Write-host $server
    get-wmiobject win32_process -computername $server -EnableAllPrivileges|
    where{$_.name -like "*Processname*" -and
    $_.CommandLine -like "*$profile*"}|
    select @{n="Server";e={$server}},@{n="User";e={$_.getowner().user}},@{n="ProcessID";e= {$_.ProcessID}},{$_.CommandLine}|fl
}
Write-host "DONE Searching!"

1 ответ

Решение

Хорошо, вот шаги:

  1. Запустите "wmimgmt.msc"
  2. Щелкните правой кнопкой мыши "WMI Control (Local)" и выберите "Свойства".
  3. Перейдите на вкладку "Безопасность" и выберите "Безопасность", затем "Дополнительно", затем "Добавить"
  4. Выберите имена пользователей или группы, которым вы хотите предоставить доступ к WMI, и нажмите "ОК".
  5. Предоставьте необходимые разрешения, я рекомендую начать с предоставления всех разрешений, чтобы гарантировать, что доступ предоставлен, затем удалите разрешения позже, если необходимо.
  6. Убедитесь, что для параметра "Применить к" задано значение "Это пространство имен и подпространства имен"
  7. Сохраните и закройте все запросы
  8. Добавьте пользователя (ей) или группу (ы) в локальную группу "Распределенные пользователи COM". Примечание. Группы "Аутентифицированные пользователи" и "Все" не могут быть добавлены сюда, поэтому вы можете альтернативно использовать группу "Пользователи домена".

В моем случае я подключался с сервера домена к серверу рабочей группы, и мне нужно было установить раздел реестра:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system\LocalAccountTokenFilterPolicy=1
Другие вопросы по тегам