SMS 2003通过出色的 dll 包含一项出色的自动化功能: Microsoft.SystemsManagementServer.Automation.dll。它允许使用直观的对象、属性和方法自动化 SMS,例如:
SMSProvider.Packages.Create("NewPackage");
在SCCM 2007中,似乎这个伟大的 dll 已被弃用,取而代之的是更多 WMI 风格的“狗的早餐”代码:
var conn = new WMIConnection(@"\\Server\root\sms\site_a", usr, pass);
var queryResults = conn.ExecuteQuery("SELECT * FROM SMS_Package WHERE
Name='" + packageName + "'");
foreach (ManagementObject obj in queryResults)
{
packageID = (string)obj.GetPropertyValue("PackageID");
}
我很想围绕这些 wmi 调用编写自己的骨架类。基本自动化所需的一切似乎是:SccmServer、SccmPackage、SccmProgram和SccmTaskSequence。
问题是:有没有人有这样的包装器、骨架类,或者知道我可以使用或适应的任何开源项目?我讨厌为这样的平凡事物重新发明轮子。
这并不完全符合您的要求,但是您是否看过使用Powershell 和 SCCM来消除 WMI 的一些痛苦?
您可能还想看看:
似乎还没有很多 Powershell cmdlet 提供与 Microsoft.SystemsManagementServer.Automation.dll 相同级别的功能,但我确实找到了 Configuration Manager 的 PowerShell Community Extensions。