【发布时间】:2013-02-19 08:19:08
【问题描述】:
我正在尝试在 3 个终端服务器上查找其 $_.commandline 属性中包含某些单词的进程。在我的域管理员帐户下,它工作正常。但是我希望这个脚本对域用户可用,并且域用户在运行这个脚本时会出错。
我应该怎么做,以便域用户可以像域管理员一样运行此脚本?提前致谢!
错误:
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 中搞砸了一点,但没有运气,也许这是正确的地方,但我只是没有做对。
标签: powershell powershell-remoting