title: Tigger installation in software center using SCCM 2012 & Powershell
body: <p>I would need some directions where to look for an solution.</p>
  
  <p>I need to trigger install on a few programs in SCCM 2012 software center on Windows 10 clients through Powershell. I guess some of those are <strong>User Based Packages</strong>(not sure about this at all) but when i run the following.</p>
  
  <pre><code>$Application = Get-CimInstance -Namespace "root\ccm\clientSDK" -ClassName CCM_application
  $Application
  </code></pre>
  
  <p>I get some of the programs, but many of them is missing.
  If I open software center and click install on any programs manually it will then appear when I use the command above.</p>
  
  <p>I've been reading about CCM-Application I found something about you only get device based packages. </p>
  
  <p>I cannot access any servers so accessing <strong>CMApplicationCatalog</strong> is not possible. Like in the links below.</p>
  
  <p><a href="https://www.adgict.nl/trigger-available-application-catalog-deployments-to-appear-in-software-center/" rel="nofollow noreferrer">Trigger available application catalog</a></p>
  
  <p><a href="https://social.technet.microsoft.com/Forums/en-US/171822bc-2bc4-4350-b610-1e0f70684158/install-user-based-application-or-packages-from-script?forum=configmanagersdk#fd8e098e-518d-43c8-84ed-879a9a12c85c" rel="nofollow noreferrer">install-user-based-application-or-packages</a></p>
  
  <p>In my case using <strong>CCM_Application Client WMI Class</strong> seems to be hard, I've not found any other solutions then creating <strong>New-WebServiceProxy</strong> to do this, and I´m not allowed/have permissions to.</p>
  
  <p>I've tried to get the needed parameters for one of the programs that don't appear with the code above from a computer I've installed it on through Software Center.</p>
  
  <p>When I try to run it with the needed parameters on an new installed computer.</p>
  
  <pre><code>$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 
  </code></pre>
  
  <p>I then get error below</p>
  
  <blockquote>
    <p>Invoke-CimMethod : Not found  At line:1 char:1
    + Invoke-CimMethod -Namespace 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</p>
  </blockquote>
  
  <p>Maybe I am doing something wrong or what I am trying to do is not possible.</p>
  
  <p>I've also tried uiresource.uiresourcemgr but It returns empty.
  I used this much in SCCM 2007 and it worked great. But now it's not giving me anything.</p>
  
  <p><code>$RunAdvProg = New-Object -ComObject uiresource.uiresourcemgr
   $RunAdvProg.GetAvailableApplications();</code></p>
  
  <p>With this said, Is there anyway way around this or does it exist another function/Method from another class or DLL?</p>