从Linux OMI(omicli)到Windows WMI的连接失败,并显示与DMTF相关的错误

时间:2018-08-20 15:52:27

标签: c++ linux winrm wsman cim

我正在C ++中的CentO上实现OMI客户端以与Windows WMI通信 我在Linux CentOS 7上安装了OMI,并尝试连接到Windows 7 使用OMI提供的示例实用程序。

参考:https://github.com/Microsoft/omi

还在Windows上配置WINRM以接收基本的身份验证呼叫。

我无法使样品工作。出现以下错误:

root@LinuxMachine bin]# ./omicli --auth Basic --hostname WinMachine.TEST.COM -u admin -p adminpassaword ei root/cimv2 Win32_Environment --port 5985
./omicli: result: MI_RESULT_FAILED
./omicli: result: ERROR_INTERNAL_ERROR: The WS-Management service cannot process the request. A DMTF resource URI was used to access a non-DMTF class. Try again using a non-DMTF resource URI.

以下是目标计算机的WINRM配置供参考

C:\ Windows \ system32> winrm获取winrm / config

Config
    MaxEnvelopeSizekb = 150
    MaxTimeoutms = 60000
    MaxBatchItems = 32000
    MaxProviderRequests = 4294967295
    Client
        NetworkDelayms = 5000
        URLPrefix = wsman
        AllowUnencrypted = true [Source="GPO"]
        Auth
            Basic = true [Source="GPO"]
            Digest = true [Source="GPO"]
            Kerberos = true [Source="GPO"]
            Negotiate = true [Source="GPO"]
            Certificate = true
            CredSSP = true [Source="GPO"]
        DefaultPorts
            HTTP = 5985
            HTTPS = 5986
        TrustedHosts
    Service
        RootSDDL = O:NSG:BAD:P(A;;AG;;;BA)S:P(AU;FA;GA;;;WD)(AU;SA;GWGX;;;WD)
        MaxConcurrentOperations = 4294967295
        MaxConcurrentOperationsPerUser = 15
        EnumerationTimeoutms = 60000
        MaxConnections = 25
        MaxPacketRetrievalTimeSeconds = 120
        AllowUnencrypted = true
        Auth
            Basic = true [Source="GPO"]
            Kerberos = true [Source="GPO"]
            Negotiate = true [Source="GPO"]
            Certificate = false
            CredSSP = true [Source="GPO"]
            CbtHardeningLevel = Relaxed
        DefaultPorts
            HTTP = 5985
            HTTPS = 5986
        IPv4Filter = *
        IPv6Filter = *
        EnableCompatibilityHttpListener = false
        EnableCompatibilityHttpsListener = false
        CertificateThumbprint
    Winrs
        AllowRemoteShellAccess = true
        IdleTimeout = 180000
        MaxConcurrentUsers = 5
        MaxShellRunTime = 2147483647
        MaxProcessesPerShell = 15
        MaxMemoryPerShellMB = 150
        MaxShellsPerUser = 5

我有什么明显的遗漏吗?非常感谢您提供帮助以使示例工作正常进行。

1 个答案:

答案 0 :(得分:2)

我遇到了类似的问题。我已经通过升级服务器上的Power-shell版本解决了这个问题。

Windows 7默认显示使用Powershell 2.0版。

PS C:\> test-wsman <clientName>

wsmid           : http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd
ProtocolVersion : http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd
ProductVendor   : Microsoft Corporation
ProductVersion  : OS: 0.0.0 SP: 0.0 Stack: 2.0

默认情况下,CIM会话使用WSMAN协议,特别是协议的较新版本。 对于运行Powershell 2.0版或完全没有Powershell的计算机,这将不起作用。 升级您的设备即可解决此问题。

请参阅URL https://mcpmag.com/articles/2013/05/07/remote-to-second-powershell.aspx,以获取更多详细信息。