PowerShell – Copier le contenu d’un package sur le poste de travail

Vous avez certainement rencontré le besoin de copier le contenu d’un package SCCM sans pour autant avoir à exécuter un programme. Aucune tâche native dans un programme ou une séquence de tâches ne vous permet de réaliser cette action.

C’est la raison pour laquelle je vous propose ce petit script qui vous donnera une base de travail.

Détails

La première difficulté dans ce genre de pratique est d’obtenir le chemin du dossier contenant les fichiers. En effet, le chemin d’accès dépend du paramétrage de votre distribution. Rappelez-vous que vous pouvez demander au client SCCM d’accéder au package directement depuis le point de distribution, ou bien de le télécharger et de l’exécuter localement. Pour résoudre ce premier obstacle, PowerShell nous donne une réponse très simple : $path =(split-path $myinvocation.mycommand.path -parent). En Français, ça donne : donne moi le chemin du dossier qui contient mon script.

A partir de ce point, tout devient plus simple grâce à PowerShell. J’utilise la commande copy-item à l’aide du paramètre -recurse pour copier la totalité du dossier.

Script

# Get package Path
$fullpath = $MyInvocation.MyCommand.Path
$path =(split-path $myinvocation.mycommand.path -parent)
# Set Target Folder
$targetFolder = "C:\Program Files\RemoteDisplayControl"
# If Target folder does not exist, we create it
if (Test-Path $targetFolder)
{
write-host $targetFolder "exists"
}
else
{
write-host $targetFolder "does not exist"
$targetParentFolder = (split-path $targetFolder -parent)
new-item -path $targetParentFolder -name RemoteDisplayControl -type directory
}
# Copy package content to targetFolder
copy-item $path\* -destination $targetFolder -recurse -verbose

 

Laisser un commentaire