mercredi 20 novembre 2013

Changer les "Package Source Path" de plusieurs packages/drivers packages via Powershell dans ConfigMgr 2012

Suite à la migration du serveur stockant les sources des packages d'un client, j'ai eu besoin de modifier l'attribut du chemin des sources de tous ses packages (Package Source Path). Pour ce faire, plutôt que de reprendre les packages un par un, j'ai essayé de trouver une solution via PowerShell. Et la voici:
PkgSourcePath
Dans un premier temps, grâce à PowerShell, il est nécessaire de générer un fichier CSV reprenant pour chaque package son Nom, son ID et son Chemin.
Une fois l'obtention de ce fichier CSV, il est simple de remplacer les chemins vers le nouveau serveur ou lieu de stockage, via la commander Copier/Remplacer.
Dans un second temps, en utilisant le fichier CSV modifié, il suffit juste d'importer ces nouvelles informations pour modifier les attributs de tous les packages.
Dans l’exemple suivant, je souhaite changer mon espace de stockage "\\followtech-dc\c$\packages" par "\\Followstock\CM2012\"
Création d'un fichier csv "Packages"
Depuis l'outil PowerShell de la console ConfigMgr, il suffit de lancer la commande suivante:
Get-CMPackage | Select Name, PackageID, PkgSourcePath | Export-Csv $home\documents\packages.csv
GetCMPackage
Modification du fichier csv "Packages"
Remplacez la valeur du chemin « \\followtech-dc\c$\packages" par « \\followstock\CM2012 », et supprimez les lignes des packages non impactés
Puis, Sauvegardez le fichier
ModifyCSV

 Import des données modifiées
Depuis PowerShell, lancez la commande suivante, qui permet d'importer les nouveaux chemins:
Import-Csv 'C:\Users\Administrator\Documents\Packages.csv' | %{Set-CMPackage -id $_.PackageID -Path $_.PkgSourcePath}
ImportCSV

et voilà les packages pointent désormais vers la nouvelle source.
NewPath


Pour les Packages de Drivers, l’idée est la même. Par contre les commandes different légèrement:
Les commandes sont:
Pour la génération du fichier CSV:
Get-CMDriver | Select CI_ID, ContentSourcePath | Export-Csv $home\documents\drivers.csv

Pour l’import du fichier CSV modifié:
Import-Csv $home\documents\drivers.csv | %{Set-CMDriver -id $_.CI_ID -DriverSource $_.ContentSourcePath}

De plus, il se peut que vous rencontriez l'erreur suivante :
WARNING: The result set exceeded the maximum size. Only first 1000 items used. You can use Set-CMQueryResultMaximum to change the maximum.
Cette erreur est due au fait que la recherche est limitée par défaut à 1000 résultats. Si vous dépassez cette limite, vous n'obtiendrez pas la liste exhaustive de tous vos drivers. Pour étendre cette limitation, la commande suivante doit être exécutée : Set-CMQueryResultMaximum 10000
La limite est ainsi positionnée à 10 000 résultats.
En espérant que ça vous aide ;)

1 commentaire:

  1. Bonjour Franck.
    Merci pour cette procédure détaillée sur le cas rencontré.
    A coup sur je reviendrais ici .
    Bruno

    RépondreSupprimer