CIMSession需要哪些权限

时间:2013-10-09 17:45:18

标签: powershell

我需要查询我没有权限的服务器上的一些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连接。

但是需要授予该帐户的权限是什么?

2 个答案:

答案 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 AccountRemote 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用户>新用户,登录新用户。将自动安装所有窗口设置,然后将飞行模式更改为开启。设置将反映在以前的用户身上。享受!!