Powershell: Bitlocker Check für Clients

Hinweis: Wir haben in diesem Artikel möglicherweise Provisions-Links verwendet und sie durch (*) gekennzeichnet. Erfolgt über diese Links eine Bestellung, erhält maffert.net eine Provision. Es entstehen für Sie keine Nachteile beim Kauf oder Preis.

Dieser Check überwacht auf einem Client die Bitlocker Funktionalität, den TPM Chip und den Boot-Modus:

Write-Host "Bitlocker Check 1.1"
Write-Host "____________________________"
Write-Host ""
[int]$errorcount = 0
#################################################################
# 1 x Taeglich
#################################################################

# TPM Verfuegbar?
Write-Host "[1/4] Ueberpruefe ob der TPM Chip Verfuegbar ist:"
$tpm1 = get-tpm | ForEach-Object {$_.TpmPresent}

if ($tpm1 -match "True") 
{ 
Write-Host "OK: Der TPM Chip ist verfuegbar" 
}
else
{
Write-Host "FEHLER: Der TPM Chip ist nicht verfuegbar"
$errorcount++
}
Write-Host ""

# TPM Einsatzbereit?
Write-Host "[2/4] Ueberpruefe ob der TPM Chip Einsatzbereit ist"
$tpm2 = get-tpm | ForEach-Object {$_.TpmReady}

if ($tpm2 -match "True") 
{ 
Write-Host "OK: Der TPM Chip ist einsatzbereit" 
}
else
{
Write-Host "FEHLER: Der TPM Chip ist nicht einsatzbereit"
$errorcount++
}
Write-Host ""

# Bitlockerverschluesselung aktiv?
Write-Host "[3/4] Ueberpruefe ob die Verschluesselung aktiv ist:"
$bitlocker1 = Get-BitLockerVolume | where {$_.VolumeType -eq "OperatingSystem"} | ForEach-Object {$_.ProtectionStatus}

if ($bitlocker1 -match "On") 
{ 
Write-Host "OK: Die Bitlocker Verschluesselung ist aktiv" 
}
else
{
Write-Host "FEHLER: Die Bitlocker Verschluesselung ist NICHT aktiv"
$errorcount++
}
Write-Host ""

#############################################
# Welcher Boot-Modus ist aktiv?
Write-Host "[4/4] Ueberpruefe welcher Boot-Modus aktiv ist:"

$ErrorActionPreference = "SilentlyContinue"
$sbcheck = Confirm-SecureBootUEFI

if ($error -match "0xC0000002") 
{ 
Write-Host "Boot-Modus: Legacy"

$tpmversion1 = Get-WmiObject -class Win32_Tpm -namespace root\CIMV2\Security\MicrosoftTpm | ForEach-Object {$_.SpecVersion}
if ($tpmversion1 -match "2.0,") 
{ 
Write-Host "FEHLER: TPM 2.0 ist aktiv und funktioniert nicht im Legacy Modus!"
$errorcount++
}
}

if ($sbcheck -match "False") 
{ 
Write-Host "Boot-Modus: UEFI - with CSM or native Secure boot disabled" 
}

if ($sbcheck -match "True") 
{ 
Write-Host "Boot-Modus: UEFI - native Secure boot enabled" 
}
Write-Host ""

# Fehlerbehandlung
if($errorcount -ge 1)
{
	exit 1001
}
else
{
	exit 0 	
}

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert