我一直在努力寻找一种使用Powershell调用已部署到SCCM中的客户端的软件包的方法。
我能够使用WMI运行应用程序,但它仅适用于应用程序,不适用于程序包。
$Application = (Get-CimInstance -ClassName CCM_Application -Namespace "root\ccm\clientSDK" -ComputerName $Computername | Where-Object {$_.Name -like $AppName})
$Args = @{EnforcePreference = [UINT32] 0
Id = "$($Application.id)"
IsMachineTarget = $Application.IsMachineTarget
IsRebootIfNeeded = $False
Priority = 'High'
Revision = "$($Application.Revision)" }
Invoke-CimMethod -Namespace "root\ccm\clientSDK" -ClassName CCM_Application -ComputerName $Computername -MethodName $Method -Arguments $Args
无论如何,使用CCM_Application类,我可以列出部署到该工作站的所有应用程序,并且可以安装/卸载,它只是不显示任何程序包。我找到了CCM_Program / CCM_ProgramManager类,但是它不返回任何程序包/任务序列。还有其他人能够做到这一点吗?还是通过Powershell无法实现?我发现有人用C#编写的.dll似乎可以与应用程序/程序包一起使用,但我希望尽可能不加载任何依赖项。