Я пытаюсь найти процессы на трех терминальных серверах, которые имеют определенные слова в свойстве $ _. Commandline. Под моей учетной записью администратора домена она работала нормально. Но я хочу, чтобы этот скрипт использовался для пользователей домена, а пользователи doamin получают ошибку при запуске этого скрипта.«get-wmiobject win32_process -computername» получает ошибку «Access denied, code 0x80070005»
Что мне делать, чтобы пользователи домена могли запускать этот скрипт так же, как администраторы домена? Заранее спасибо!
Ошибка:
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!"
Пользователи домена, очевидно, не имеют всех привилегий администраторов домена, вам необходимо предоставить им необходимый доступ, добавив их в соответствующие группы. –
Да, я согласен с тобой. Но вопрос в том, как? :) Я, конечно, не хочу добавлять всех пользователей домена в администраторов доменов, не так ли? Должно быть какое-то место для управления WMI, но я не знаю, как его настроить. На самом деле я немного перепутал в wmimgmt.msc на целевых серверах, но не повезло, может быть, это подходящее место, но я просто не сделал это правильно. – bookends