Powershell 使用SCCM 2012和;动力壳

Powershell 使用SCCM 2012和;动力壳,powershell,sccm,Powershell,Sccm,我需要一些方向来寻找解决方案 我需要通过Powershell在Windows 10客户端上的SCCM 2012软件中心触发几个程序的安装。我猜其中一些是基于用户的软件包(一点也不确定),但当我运行以下程序时 $Application = Get-CimInstance -Namespace "root\ccm\clientSDK" -ClassName CCM_application $Application 我收到了一些节目,但其中很多都不见了。 如果我打开软件中心并手动单击任何程序上的安装

我需要一些方向来寻找解决方案

我需要通过Powershell在Windows 10客户端上的SCCM 2012软件中心触发几个程序的安装。我猜其中一些是基于用户的软件包(一点也不确定),但当我运行以下程序时

$Application = Get-CimInstance -Namespace "root\ccm\clientSDK" -ClassName CCM_application
$Application
我收到了一些节目,但其中很多都不见了。 如果我打开软件中心并手动单击任何程序上的安装,当我使用上述命令时,它将出现

我一直在阅读有关CCM应用程序的文章,我发现了一些关于您仅获取基于设备的软件包的信息

我无法访问任何服务器,因此无法访问CMApplication Catalog。就像下面的链接一样

在我的情况下,使用CCM_应用程序客户端WMI类似乎很难,我还没有找到任何其他解决方案,然后创建新的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 
然后我得到下面的错误

调用CimMethod:在第1行中找不到字符:1 +调用CimMethod-Namespace Root\ccm\clientSDK-ClassName ccm\u applicata。。。 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +CategoryInfo:ObjectNotFound:(根目录\ccm\clientSDK:ccm\U应用程序:字符串)[调用CimMethod], CimException +FullyQualifiedErrorId:HRESULT 0x80041002,Microsoft.Management.Infrastructure.CIMCmdlet.InvokeCimMethodCommand

也许我做错了什么,或者我想做的是不可能的

我还尝试了uiresource.uiresourcemgr,但它返回空。 我在SCCM 2007中使用了很多,效果非常好。但现在它什么也没给我

$RunAdvProg=新对象-ComObject uiresource.uiresourcemgr
$RunAdvProg.GetAvailableApplications()


说到这里,有没有办法解决这个问题,或者它是否存在来自另一个类或DLL的另一个函数/方法?

我还没有测试过这个问题,但是看看下面的代码是否有效
$ID='
$requiredd=Get WmiObject-Namespace“root\ccm\clientSDK”-类ccm_应用程序|其中的对象{$\u.ID-eq“$ID”-和$.ResolvedState-ne'Installed'}仅在未安装时选择。
Invoke WmiMethod-Class CCM\u softwaredupdatemanager-Name Install-ArgumentList(,$requiredd)-Namespace root\CCM\clientsdk
感谢您的回复,这也不起作用。CCM_应用程序函数找不到任何ID,因为该函数不包含我要执行的程序。这种奇怪的设置可能是有原因的,但严格来说,有一种解决方法。将应用程序设置为required而不是available,它将自动安装,无需触发。可用应用程序的全部要点是,它是用户选择的,而不是编程方法。我没有测试过这一点,但看看下面的代码是否有效-和$.ResolvedState-ne'Installed'}仅在未安装时选择。
Invoke WmiMethod-Class CCM\u softwaredupdatemanager-Name Install-ArgumentList(,$requiredd)-Namespace root\CCM\clientsdk
感谢您的回复,这也不起作用。CCM_应用程序函数找不到任何ID,因为该函数不包含我要执行的程序。这种奇怪的设置可能是有原因的,但严格来说,有一种解决方法。将应用程序设置为required而不是available,它将自动安装,无需触发。可用应用程序的全部要点是,它是用户选择的,而不是编程方法。