代码之家  ›  专栏  ›  技术社区  ›  kwirky_penguin

VBScript远程WMI调用“错误:0”权限被拒绝:“GetObject”

  •  0
  • kwirky_penguin  · 技术社区  · 2 年前

    尝试进行远程WMI调用时,我收到以下错误:

    无法分析脚本。错误:来源:“Microsoft VBScript运行时错误” 第4行字符:1 错误:0的权限被拒绝:“GetObject”

    如果我运行以下代码指向我的本地机器,我不会收到任何错误。然而,当我运行指向远程机器的代码时,我得到了上面的错误。

    strComputer = "COMPUTER-X"
    strService = "Netlogon"
    
    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    
    Set colRunningServices = objWMIService.ExecQuery("Select * from WIN32_Service")
    
    For Each objService in colRunningServices
        if objService.DisplayName = strService then
            if objService.State = "Running" then
                Context.SetValue 1
            else
                Context.SetValue 0
            End If
        Else
        End If
    Next
    
    

    我尝试了以下方法:

    1. 关闭远程计算机上的防火墙。
    2. 将远程计算机上的HKLM\Software\Policys\Microsoft\Windows NT\RPC“RestrictRemoteClients”从2更改为1
    3. 更改组策略计算机配置\administrative Templates\System\RPC“限制未经身份验证的RPC客户端”和“启用RPC端点映射器客户端身份验证”设置。

    任何帮助都将不胜感激!

    0 回复  |  直到 2 年前
        1
  •  0
  •   kwirky_penguin    2 年前

    执行查询的计算机正在使用is计算机帐户(CONTOSCO\computer-X)连接到远程计算机,它没有执行winmgmts命令的正确权限。将计算机帐户(CONTOSCO\computer-X)添加到本地administrators组后,执行查询时没有问题!

    参考: https://docs.microsoft.com/en-us/windows/win32/wmisdk/user-account-control-and-wmi

    推荐文章