Tasksequenz und System Variabeln während der TS anzeigen

Hallo ihr da draußen!

Während ich für die Installation optionaler Software ohne Deployment in einer TS ein Script entwickelte (folgt), suchte ich eine Möglichkeit zum Debugging, da das fertig entwickelte Script komischerweise nicht funktioniert hatte.

Hierbei bin ich auf folgendes script von  Alex Verboon (Thank you 🙂 ) gestoßen:

http://www.verboon.info/2012/12/list-task-sequence-variables-and-values-script/

Es sollte sowohl bei MDT als auch bei SCCM Tasksequenzen funtkionieren.

 

On error resume next

Set wshShell = CreateObject( "WScript.Shell")

Set env = wshShell.Environment("System")

Set env1 = CreateObject("Microsoft.SMS.TSEnvironment")

If Err Then

       wscript.echo "TS Environment not availble"

       wscript.echo "The script can only be used while the Task Sequence components are loaded"

       wscript.quit()

End if

 

If Wscript.Arguments.Count = 0 Then

              wscript.echo "No first letter(s) of variable provided so showing all"

 

              wscript.echo "list all environment variables"

              For Each strItem In env

                     WScript.Echo strItem

              Next

 

              wscript.echo "list all TS variables"

              For each v in env1.GetVariables

                     WScript.Echo v & " = " & env1(v)

              Next

 

 Else

     If Wscript.Arguments.Count > 0 Then

        VarLetter=WScript.Arguments.Item(0)

       If Len(Varletter) = 1 Then

 

              wscript.echo "list all environment variables starting with: " & Varletter

              For Each strItem In env

              If Ucase(Left(strItem,1)) = Ucase(Varletter) Then

                     WScript.Echo strItem

              End if

              Next

 

              wscript.echo "list all TS variables starting with: " & Varletter

 

              For each v in env1.GetVariables

              If Ucase(Left(v,1)) = Ucase(Varletter) Then

                     WScript.Echo v & " = " & env1(v)

              End if

              Next

 

       Else

 

              wscript.echo "list variable: " &Varletter

              varlen=Len(Varletter)

              For Each strItem In env

                     If Ucase(Left(strItem,varlen)) = Ucase(Varletter) Then

                           WScript.Echo strItem

                     End if

              Next

 

              wscript.echo "list TS variable: " &Varletter

              varlen=Len(Varletter)

              For each v in env1.GetVariables

                     If Ucase(Left(v,varlen)) = Ucase(Varletter) Then

                           WScript.Echo v & " = " & env1(v)

                     End if

              Next

       End if

   End If

 End If

Benutzung:

  • listet sowohl System als auch TS Variablen auf
  • Wenn man das Script ohne Parameter aufruft, gibt es alle verfügbaren Variablen aus: cscript ts_var.vbs
  • Alternatv kann man den/die Anfangsbuchstaben der jeweiligen Variablen als Paramter angben: cscript ts_var.vbs P
    cscript ts_var.vbs Processor
  • Oder den kompletten Variablennamen: cscript ts_var.vbs Processorspeed

clip_image0026

 

Danke nochmals an Alex Verboon, das Script hat mir sehr weitergeholfen.

Grüße,

Alexander Volz