Configuration Manager 2012 – Récupérer la liste des programmes désactivés

Dans un large environnement Configuration Manager 2012, vous pouvez être amené à devoir récupérer la liste de vos programmes, et éventuellement, lister les programmes activés ou désactivés. Puisque cela était récemment mon cas, je vous livre ma solution :).

Pour atteindre mon but, j’ai choisi Powershell. Je me suis basé sur la propriété WMI « ProgramFlags », dont vous trouverez les références ICI

Vous obtiendrez cinq colonnes, a savoir :

  • Le nom du package
  • La version du package
  • Le package ID
  • Le nom du programme
  • Programme activé ou désactivé
  • Voici un exemple de l’export :

    export-1

    Et le script :

    ############################################################################################
    # Project: Export Program list
    # Date: 04-07-2014
    # By: Gregory BOUCHU
    # Version: 1.0
    # Description : Application to export in csv file all the program
    # Update : 
    # Remark : Some pieces of code come from --> http://cm12sdk.net
    # Use : Modify SiteServer, SiteCode and Output
    ############################################################################################
    
    PARAM(
        [Parameter(Mandatory=$True,HelpMessage="Please Enter a path and name for your CSV file (ex:C:\TEMP\result.txt )")]
             $Output
         )
    
    $SiteServer = "LAB-SCCM"
    $SiteCode = "LAB"
    
     
    $PackageList = Get-WmiObject -Namespace "Root\sms\Site_$SiteCode" -Class SMS_Program -ComputerName $SiteServer
    $EmptyArray = @()
     
    foreach($Package in $PackageList)
    {
            $DObject = New-Object PSObject
     
                $DObject | Add-Member -MemberType NoteProperty -Name "Package Name" -Value $Package.PackageName
    	    $DObject | Add-Member -MemberType NoteProperty -Name "Package Version" -Value $Package.PackageVersion
                $DObject | Add-Member -MemberType NoteProperty -Name "PackageID" -Value $Package.PackageID
                $DObject | Add-Member -MemberType NoteProperty -Name "Program Name" -Value $Package.ProgramName
     
     	    #Reféerence ProgramFlags : http://msdn.microsoft.com/en-us/library/cc144361.aspx 
                If(($Package.ProgramFlags -band 0x00001000) -eq 0){
                    $DObject | Add-Member -MemberType NoteProperty -Name "Program" -Value "Enabled"
                }
                Else{
                    $DObject | Add-Member -MemberType NoteProperty -Name "Program" -Value "Not enabled"
                }
     
        $EmptyArray += $DObject
    }
     
    $EmptyArray | Export-Csv $Output -NoTypeInformation
    

    Vous pouvez également télécharger le script complet ICI

    Happy scripting !!

    Please follow and like us:

    Laisser un commentaire

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Social media & sharing icons powered by UltimatelySocial