Alle Variablen aus einer Tasksequenz auslesen

Mit folgendem PowerShell-Skript lassen sich alle Tasksequenzvariablen, während der Tasksequenzlaufzeit, auslesen.

PowerShell.exe -ExecutionPolicy ByPass -Command "$VarFile = Join-Path $ENV:SystemDrive '\Windows\Temp\TSVariables.txt'; $TSEnv = New-Object -ComObject Microsoft.SMS.TSEnvironment; $Vars = $TSEnv.GetVariables(); $Output = foreach ($Var in $Vars){'{0} = {1}' -f $Var, $TSEnv.Value($Var)}; $Output | Out-File -FilePath $VarFile

Das PowerShell-Skript wird als „Run Command Line“ Tasksequenzschritt eingebunden. Und zwar an der Stelle in der Tasksequenz, an der man die Informationen auslesen möchte.

Beispiel des „Run Command Line“ Tasksequenzschittes

Im WinPE wird die Datei TSVariables.txt im Verzeichnis X:\Windows\Temp abgelegt. Lässt man die Datei nach dem Schritt „Setup Windows and ConfigMgr“ erzeugen, dann wird die Datei unter „c:\Windows\Temp“ abgelegt.

Beispiel für eine TSVariables.txt

Viel Spaß beim Nachbauen.