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.
Laissez les données sélectionnées et rendez-vous dans Données > Convertir
Cliquez sur suivant
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