Powershell &引用;获取wmiobject win32“进程-计算机名称”;获取错误";访问被拒绝,代码0x80070005“;

Powershell &引用;获取wmiobject win32“进程-计算机名称”;获取错误";访问被拒绝,代码0x80070005“;,powershell,powershell-remoting,Powershell,Powershell Remoting,我试图在3台终端服务器上查找进程,这些服务器的$\ commandline属性中有某些字。在我的域管理员帐户下,它工作正常。但是我希望这个脚本对域用户可用,而doamin用户在运行这个脚本时会出错 我应该怎么做,以便域用户可以像域管理员一样运行此脚本?提前谢谢 错误: Get-WmiObject : Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESS DENIED)) At N:\FindWhoIsUsing\FindW

我试图在3台终端服务器上查找进程,这些服务器的$\ commandline属性中有某些字。在我的域管理员帐户下,它工作正常。但是我希望这个脚本对域用户可用,而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
好的,以下是步骤:

  • 启动“wmimgmt.msc”
  • 右键单击“WMI控件(本地)”,然后选择属性
  • 转到“安全”选项卡,选择“安全”,然后选择“高级”,然后选择“添加”
  • 选择要授予WMI访问权限的用户名或组,然后单击“确定”
  • 授予所需的权限,我建议从授予所有权限开始,以确保授予访问权限,然后根据需要删除权限
  • 确保“应用于”选项设置为“此命名空间和子命名空间空间”
  • 保存并退出所有提示
  • 将用户或组添加到本地“分布式COM用户”组。注意:此处不能添加“已验证用户”和“所有人”组,因此您也可以使用“域用户”组

  • 在我的例子中,我正在从域服务器连接到工作组服务器,需要设置注册表项:

    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system\LocalAccountTokenFilterPolicy=1
    

    域用户显然缺乏域管理员拥有的所有特权,您需要通过将他们添加到相关组来授予他们所需的访问权限。是的,我同意您的看法。但问题是,怎么做?:)我当然不想将所有域用户添加到域管理员中,对吗?必须有特定的WMI控制位置,但我不知道如何配置它。事实上,我在目标服务器上的wmimgmt.msc上搞砸了一点,但运气不好,可能是在正确的位置,但我做得不对。那里有4个组:管理员组、经过身份验证的用户组、本地服务组和网络服务组,哪个组的权限应该更新?应该是“经过身份验证的用户”。您还可以添加“Everyone”组。我在那里添加了“Everyone”,并打开了所有“allow”复选框。我还确保为“everyone”将“Apply to”选项设置为“This namespace and subnamespace”。我认为这对域用户来说应该足够了,但它不起作用,错误仍然存在…将用户或组添加到本地“分布式COM用户”组。。。这就成功了!虽然我没有得到我想要的结果,但我不再有“拒绝访问”错误。谢谢你的帮助!
    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system\LocalAccountTokenFilterPolicy=1