ConfigMgr WebService API 调用

ConfigMgr WebService API 调用

目前我尝试通过 API 将我的应用程序连接到ConfigMgr Web 服务,但通过发送我的 SOAP API 请求时curl总是出现 400 错误。

我们正在编写自己的应用程序来与 SCCM“对话”,由于公司限制,我们无法使用 PowerShell,因此我们尝试使用ConfigMgr Web 服务。这里有没有人有使用这个小 API 的经验,并且可以为我指明使用它的正确方向?

此刻我尝试获取这个端点GetCWVersion

如果您需要更多信息,请直接询问!

答案1

我通过使用 python 而不是在 中测试来解决这个问题curl。使用requests库非常简单。

"""Just an example for a soap request"""
import requests

host = "host"
secret = "secret"
filter = "filter"

url = "https://" + host + "/ConfigMgrWebService/ConfigMgr.asmx"
payload ="""<?xml version="1.0" encoding="utf-8"?>
            <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
                <soap12:Body>
                    <GetCMDeviceCollections xmlns="http://www.scconfigmgr.com">
                    <secret>{secret}</secret>
                    <filter>{filter}</filter>
                    </GetCMDeviceCollections>
                </soap12:Body>
            </soap12:Envelope>""".format(secret=secret, filter=filter)
headers = {
     'Content-Type': 'application/soap+xml; charset=utf-8'
}
    
response = requests.request("POST", url, headers=headers, data=payload, verify = False)
print(response.text)

相关内容