<# .SYNOPSIS .NOTES Version: 1.0 Author: Hubert CORNET Creation Date: Purpose/Change: Initial script development .LINK https://www.tips-of-mine.fr .EXEMPLE .DESCRIPTION .PARAMETER .INPUTS .OUTPUTS .log> #> #---------------------------------------------------------[Initialisations]-------------------------------------------------------- # Définir l'action d'erreur pour continuer silencieusement $ErrorActionPreference = "SilentlyContinue" #----------------------------------------------------------[Declarations]---------------------------------------------------------- # Version Script $sScriptVersion = "1.0" #Log File Info $sLogPath = "C:\Tmp" $sLogName = "Activation-BitLocker.log" $sLogFile = Join-Path -Path $sLogPath -ChildPath $sLogName Start-Transcript -Path $sLogFile -NoClobber #-----------------------------------------------------------[Functions]------------------------------------------------------------ #--------------------------------------------------------[Debut Du Script]--------------------------------------------------------- cls # The script may fail because of race condition? Add a sleep : Start-Sleep -Seconds 300 # Nous detectons si le disque C dispose de BitLocker. # Si la condition n'est pas remplie, nous arretons le script. $CdriveStatus = Get-BitLockerVolume -MountPoint 'c:' If ($CdriveStatus.volumeStatus -eq 'FullyDecrypted') { # On execute un systeme de logging. Il ne servira en cas de debuggage New-EventLog -LogName "BitLocker" -Source "GPO - BitLocker" -ErrorAction Ignore write-eventlog -LogName "BitLocker" -Source "GPO - BitLocker" -EntryType Information -Category 1 -Message "BitLocker non detecté sur le disque systeme.`nDémarrage du script." -EventId 1 # On lance notre BitLocker $result = Enable-BitLocker -MountPoint $env:SystemDrive -SkipHardwareTest -RecoveryPasswordProtector If ($result) { # Si BitLocker a bien accepté notre clé Write-EventLog -LogName "BitLocker" -Source "GPO - BitLocker" -EntryType Information -Category 1 -Message "Démarrer le cryptage BitLocker.`nCréer le CSV à extraire.`nCode de sortie de la commande pour BitLocker : $result" -EventId 2 # On recupere notre clé ici $Key = ([string](Get-BitLockerVolume -MountPoint 'c:').keyprotector.recoverypassword) If ($key -match [regex]"[0-9]{6}-[0-9]{6}-[0-9]{6}-[0-9]{6}-[0-9]{6}-[0-9]{6}-[0-9]{6}-[0-9]{6}"){ Write-EventLog -LogName "BitLocker" -Source "GPO - BitLocker" -EntryType Information -Category 1 -Message "PowerShell a la clé de récupération. Démarrage de la sortie vers le réseau." -EventId 3 If ($CdriveStatus.volumeStatus -eq 'FullyDecrypted') { $info = $true } Else { $info = $false } $result = [PSCustomObject]@{ ComputerName = ($env:COMPUTERNAME); Date = (get-date -Format 'dd/MM/yy HH:mm'); Result = $info; } $result | export-csv -NoTypeInformation -Path "\\swfilevep01\logs$\BitLocker\BitLocker-$($env:COMPUTERNAME).csv" Write-EventLog -LogName "BitLocker" -Source "GPO - BitLocker" -EntryType Information -Category 1 -Message "Exportation the CSV file to \\fr.dgs.group\systeme$\Logs\BitLocker\BitLocker-$($env:COMPUTERNAME).csv" -EventId 4 } else { # Si nous n'avons pas de clé de récupération, nous exportons un log. $Status = (Get-BitLockerVolume -MountPoint 'c:').volumeStatus Write-EventLog -LogName "BitLocker" -Source "GPO - BitLocker" -EntryType Error -Category 1 -Message "PowerShell n'a pas la clé de récupération.`nÉtat du disque : $Status" -EventId 5 } } Else { Write-EventLog -LogName "BitLocker" -Source "GPO - BitLocker" -EntryType Error -Category 1 -Message "Nous ne pouvons pas lancer le cryptage.`nCode de sortie de la commande pour BitLocker : $result `nRésultat de Manage-Bde : $verbose `nCommencé par : $($env:USERNAME)" -EventId 6 } } Else { New-EventLog -LogName "BitLocker" -Source "GPO - BitLocker" -ErrorAction Ignore Write-EventLog -LogName "BitLocker" -Source "GPO - BitLocker" -EntryType Information -Category 1 -Message "Pas entièrement décrypté. Statut: $CdriveStatus.volumeStatus" -EventId 7 } #---------------------------------------------------------[Fin Du Script]---------------------------------------------------------- Stop-Transcript