我需要查询我没有权限的服务器上的一些WMI类。 这是我运行时遇到的错误。
PS> get-ciminstance -ComputerName test.mydomain.com -ClassName Win32_OperatingSystem
get-ciminstance : Access is denied.
At line:1 char:1
+ get-ciminstance -ComputerName test.mydomain.com -ClassName Win32_Operating ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (root\cimv2:Win32_OperatingSystem:String) [Get-CimInstance], CimException
+ FullyQualifiedErrorId : HRESULT 0x80070005,Microsoft.Management.Infrastructure.CimCmdlets.GetCimInstanceCommand
+ PSComputerName : test.mydomain.com
现在服务器有PowerShell 2,所以它使用DCOM,但我会升级并配置PowerShell以允许WSMAN连接。
但是需要授予该帐户的权限是什么?
答案 0 :(得分:1)
默认情况下,Administrators
(本地)和Authenticated Users
(域)至少具有对命名空间的读取权限。您需要确保可以登录/验证服务器。值得一提的是,Authenticated Users
组默认情况下没有Remote Enable
权限。
Windows操作系统将WinRM用于CIM cmdlet,用户帐户必须为administrator
。 WinRM创建一个名为WinRMRemoteWMIUsers_
的本地组,并且只允许访问Administrators
组和WinRMRemoteWMIUsers_
。要将用户添加到该组,请使用以下命令:
net localgroup WinRMRemoteWMIUsers__ /add "domain\user"
抽象答案很简单,您需要获得Enable Account
和Remote Enable
Namespace
权限才能远程获取WMI 读取权限。
验证WMI权限的过程
登录服务器并启动mmc.exe。添加WMI管理单元,加载后,右键单击WMI控件。打开“属性”窗口后,单击“安全性”,展开root并选择“cimv2”。单击安全性按钮,查看授予访问权限的人员以及授予的访问权限。
使用DCOM进行测试的脚本
如果您想使用DCOM进行测试,或者因为服务器操作系统太旧而需要,请使用此脚本:
$Computer = thisbox.domain.com
$CimOption = New-CimSessionOption -Protocol Dcom
$CimSession = New-CimSession -ComputerName $Computer -SessionOption $CimOption
Get-CimInstance -ClassName win32_operatingsystem -CimSession $CimSession
答案 1 :(得分:-4)
转到“控制面板”>用户帐户> Managae用户>新用户,登录新用户。将自动安装所有窗口设置,然后将飞行模式更改为开启。设置将反映在以前的用户身上。享受!!