Я изо всех сил пытался найти способ вызвать пакет, который уже развернут на клиенте в SCCM, с помощью Powershell.
Я могу запустить приложение с помощью 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? Я нашел некоторые .dll, которые кто-то написал на C #, которые, кажется, работают с приложениями / пакетами, но я бы не хотел загружать какие-либо зависимости, если это возможно.