我需要一些指导来寻找解决方案。
我需要通过Powershell在Windows 10客户端上的SCCM 2012软件中心的一些程序上触发安装。我猜其中一些是基于用户的软件包(一点也不知道),但是当我运行以下代码时。
$Application = Get-CimInstance -Namespace "root\ccm\clientSDK" -ClassName CCM_application
$Application
我得到了一些程序,但是其中许多都丢失了。 如果我打开软件中心并手动单击任何程序上的安装,则当我使用上面的命令时,它将出现。
我一直在阅读有关CCM应用程序的信息,我发现关于您的一些事情仅获得基于设备的软件包。
我无法访问任何服务器,因此无法访问 CMApplicationCatalog 。就像下面的链接一样。
Trigger available application catalog
install-user-based-application-or-packages
就我而言,使用 CCM_Application Client WMI类似乎很困难,我没有找到其他解决方案,然后创建了 New-WebServiceProxy 来完成此任务,我不允许/没有权限。
我试图从我通过软件中心安装的计算机上获取上面的代码未出现的程序之一所需的参数。
当我尝试在新安装的计算机上使用所需参数运行它时。
$Program = @{"EnforcePreference"=[UInt32]0
"Id" = [String]"ScopeId_MyScopeID, will leave this out for company rules."
"IsMachineTarget" = [Boolean]$false
"IsRebootIfNeeded" = [Boolean]$false
"Priority" = [String]"High"
"Revision" = [String]"7"
}
Invoke-CimMethod -Namespace Root\ccm\clientSDK -ClassName CCM_application -MethodName "Install" -Arguments $Program
然后我在下面出现错误
Invoke-CimMethod:在行:1字符:1中找不到 +调用CimMethod-命名空间Root \ ccm \ clientSDK -ClassName CCM_applica ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:ObjectNotFound:(Root \ ccm \ clientSDK:CCM_application:String)[Invoke-CimMethod], CimException + FullyQualifiedErrorId:HRESULT 0x80041002,Microsoft.Management.Infrastructure.CimCmdlets.InvokeCimMethodCommand
也许我做错了什么,或者我试图做的事是不可能的。
我也尝试过uiresource.uiresourcemgr,但是它返回空。 我在SCCM 2007中使用了很多,效果很好。但是现在它什么也没给我。
$RunAdvProg = New-Object -ComObject uiresource.uiresourcemgr
$RunAdvProg.GetAvailableApplications();
这样说,是否有其他解决方法,还是存在另一个类或DLL中的另一个函数/方法?