Не удается подключиться к Linux OMI (omicli) к Windows WMI из-за ошибки, связанной с DMTF

Я реализую клиент OMI в CentO в C++ для связи с Windows WMI. Я установил OMI в Linux CentOS 7 и пытаюсь подключиться к Windows 7 с помощью примера утилиты, предоставленной OMI.

Ссылка: https://github.com/Microsoft/omi

Также настроен WINRM на Windows для получения вызовов базовой аутентификации.

Я не могу заставить работать образец. Получение следующей ошибки:

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 ответ

Решение

Я столкнулся с подобной проблемой. Я решил эту проблему, обновив версию 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 для получения более подробной информации.

Другие вопросы по тегам