Logo ShareMyCode.io ShareMyCode.io
Partagez un extrait de code en quelques secondes.
Ajouter un code
manuel powershell powershell
Voici votre URL de partage
Cliquer pour copier dans le presse-papiers. Copié
Nom du fichier : Prepare-Deployment.ps1
# créer les dossiers nécessaires ;
# Il faut TOUJOURS s'assurer que les dossiers et fichiers critiques sont présents
# 1. On crée les variables utiles pour le script (chemins, fichiers, nombres...)
$Sources = "C:\TP-PowerShell\03-Deployment\Sources"
$SourcesScripts = "C:\TP-PowerShell\03-Deployment\Sources\Scripts"
# Variante $SourcesScripts = "$Sources\Scripts"
$AnswerFiles = "C:\TP-PowerShell\03-Deployment\Work\AnswerFiles"
$WorkScripts = "C:\TP-PowerShell\03-Deployment\Work\Scripts"
$WorkLogs = "C:\TP-PowerShell\03-Deployment\Work\Logs"
$Autounattend = "$Sources\autounattend.xml"
$Log = "$WorkLogs\journal.log"

# 2. On vérifie que les chemins existent, s'ils n'existent pas, on les crée
if ((Test-Path $WorkLogs) -eq $False){
	# Le chemin contenu dans $WorkLogs n'existe pas
	# On crée le chemin
	New-Item -Path $WorkLogs -ItemType Directory
	
	# Le chemin Work/Logs a été créé
	# Je peux écrire dans le fichier de Logs
	Set-Content -Path $Log -Value "Journal du $(Get-Date)"
	Add-Content -Path $Log -Value "$(Get-Date) - Dossier $WorkLogs créé"
}else{
	## Le dossier Logs existe je crée mon journal
	Set-Content -Path $Log -Value "Journal du $(Get-Date)"
}


if ((Test-Path $Sources) -eq $False){
	# Le chemin contenu dans $Sources n'existe pas
	# On crée le chemin
	New-Item -Path $Sources -ItemType Directory
	Add-Content -Path $Log -Value "$(Get-Date) - Dossier $Sources créé"
}

if ((Test-Path $SourcesScripts) -eq $False){
	# Le chemin contenu dans $SourcesScripts n'existe pas
	# On crée le chemin
	New-Item -Path $SourcesScripts -ItemType Directory
	Add-Content -Path $Log -Value "$(Get-Date) - Dossier $SourcesScripts créé"
}

if ((Test-Path $AnswerFiles) -eq $False){
	# Le chemin contenu dans $AnswerFiles n'existe pas
	# On crée le chemin
	New-Item -Path $AnswerFiles -ItemType Directory
	Add-Content -Path $Log -Value "$(Get-Date) - Dossier $AnswerFiles créé"
}

if ((Test-Path $WorkScripts) -eq $False){
	# Le chemin contenu dans $WorkScripts n'existe pas
	# On crée le chemin
	New-Item -Path $WorkScripts -ItemType Directory
	Add-Content -Path $Log -Value "$(Get-Date) - Dossier $Workscripts créé"
}

# vérifier la présence du fichier autounattend.xml ;
# Si le fichier autounattend.xml n'existe pas je m'arrête
if ((Test-Path $Autounattend) -eq $False){
	# Le fichier autounattend.xml n'existe pas
	Add-Content -Path $Log -Value "$(Get-Date) - ERROR - Le fichier $Autounattend n'existe pas, fin du script"
	exit # cette commande interrompt le script
}

# Le fichier autounattend.xml existe
# copier ce fichier dans Work\AnswerFiles ;
Copy-Item $Autounattend $AnswerFiles
Add-Content -Path $Log -Value "$(Get-Date) - Fichier $Autounattend copié avec succès"
# Copy-Item source destination

# rechercher les scripts présents dans Sources\Scripts ;
$Scripts = Get-ChildItem -Path $SourcesScripts -Filter "*.ps1"

# Pour chaque Script dans Scripts
foreach($Script in $Scripts){
	# Ces lignes seront exécutées autant de fois qu'il y a de fichiers dans $Scripts
	# copier ces scripts dans Work\Scripts ;
	Copy-Item "$SourcesScripts\$Script" $WorkScripts
	# Copy-Item $Script.FullName $WorkScripts
	Add-Content -Path $Log -Value "$(Get-Date) - INFO - Fichier $Script copié avec succès"
}

# écrire toutes les actions dans un fichier journal.
Informations
Cet extrait a été créé le
23 Mar 2026 à 16:40:21
Cet extrait expire le
22 Apr 2026 à 17:40:21
Langage :
powershell powershell
Lien
Demander la suppression