Avant toute chose, le script qui suit n’a nullement besoin d’être lancé via la console powershell de SCCM, il peut être lancé depuis une console Powershell normale à condition que le module Powershell ConfugurationManager soit présent.

Dans mes compétences professionnelles, j’ai entre autre SCCM, principalement la gestion des applications. Pour du reporting il m’arrive de devoir sortir la liste des apps depuis une machine SCCM ne possédant pas office.
Le plus simple dans mon cas est de convertir les données en CSV pour les injecter dans le presse papier pour pouvoir les coller dans Excel sur mon poste client.

Voici le script à lancer du coté SCCM:

$ErrorActionPreference = 'Stop'
$VerbosePreference = 'Continue'

$CMModulePath = "C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\ConfigurationManager.psd1"

If((Test-Path $CMModulePath)) {
    Try {
        Import-Module $CMModulePath
        Write-Verbose ($CMModulePath + " loaded")
    }
    catch {
        $_.Exception.Message
    }
}
else { 
    Throw("ConfigurationManager module not found at $CMModulePath")
}

$CMDrive = @(Get-PSDrive -PSProvider CMSite)[0] 
If($CMDrive) {
    Set-Location ($CMDrive.Name + ":")
    Write-Verbose ("Current location set to " + $CMDrive.Name + ":")
}
else {
    Throw("No CMSite PS Drive found.")
}

$Apps = @()
$Apps += Get-CMApplication

if(-not $Apps) {
    Throw("No apps found on site " + $CMDrive.Name)
}

$Apps | Select-Object -Property `
    LocalizedDisplayName, `
    SoftwareVersion, `
    @{N="CreatedBy";E={$_.CreatedBy.ToLower()}}, `
    @{N="DateCreated";E={Get-Date $_.DateCreated -Format "yyyy-MM-dd HH:mm:ss"}}, `
    @{N="DateLastModified";E={Get-Date $_.DateLastModified -Format "yyyy-MM-dd HH:mm:ss"}}, `
    IsDeployed, `
    IsSuperseded, `
    IsSuperseding, `
    @{N="LastModifiedBy";E={$_.LastModifiedBy.ToLower()}}, `
    LogonRequirement, `
    Manufacturer , `
    NumberOfDependentDTs, `
    NumberOfDependentTS, `
    NumberOfDeployments, `
    NumberOfDeploymentTypes, `
    NumberOfDevicesWithApp, `
    NumberOfDevicesWithFailure, `
    NumberOfUsersWithApp, `
    NumberOfUsersWithFailure, `
    PackageID, `
    SDMPackageVersion `
        | Sort-Object LocalizedDisplayName, SoftwareVersion `
            | ConvertTo-CSV -Delimiter "," -NoTypeInformation `
                | clip

Ensuite, sur le poste client, on lance Excel, on créé un nouveau fichier.

Ensuite, clic droit sur la cellule A1 et on colle les données.

Collage des données

Laissez les données sélectionnées et rendez-vous dans Données > Convertir

Convertisseur de données

Cliquez sur suivant

On sélectionne la virgule et on clic sur Terminer:

Ca donne un truc comme ça:

Et avec une petite mise en page, on a un rapport basique mais correct

Bien évidemment les données ci-dessous sont extraites de mon lab de test SCCM à des fins purement démonstratives


0 commentaire

Laisser un commentaire

Avatar placeholder

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