Bestehenden Tasksequenzschritt in einer Tasksequenz editieren

In diesem Beitrag möchte ich euch zeigen, wie ihr einen Tasksequenzschritt, in einer Tasksequenz über Powershell verändern könnt.

Was ist zu tun?

  1. Bestehende Tasksequenz laden (Get-CMTaskSequence)
  2. IResultObject „TaskSequence“ aus dem TaskSequencePackage ziehen
  3. Existierenden Tasksequenzschritt aus der Tasksequenz heraussuchen und Werte ändern.
  4. Speichern der Änderungen

Wenn ihr meinen ersten Beitrag hierzu kennt, kommen euch die Schritte sicher bekannt vor. Wenn nicht, schaut ihn euch ggf. noch einmal an, denn ich werde hier nur auf den Punkt 3. näher eingehen 🙂 Bestehende Tasksequenz über Powershell editieren.

Im Unterschied zum Hinzufügen eines neuen Tasksequence Step, werden wir die bestehenden Tasksequenz zunächst nach dem Schritt durchsuchen, den wir ändern wollen. Weiterlesen

Auslesen der Computer Variables per Powershell Script

Sicher seid ihr schon auf die Computer Variables (Eigenschaften eines Gerätes/ Reiter: Variables) gestoßen oder nutzt dieses vielleicht sogar in euren Tasksequenzen. Innerhalb der Tasksequenzen ist der Zugriff auf die Computer Variables analog zur den Tasksequenz Variables: Entweder über den Tasksequenz-Schritt oder schlicht als Umgebungsvariable, innerhalb des „Run Command Line“-Schrittes, in dem die Variable in „%“ gesetzt wird.

Doch wie sieht es aus, wenn der Wert ausserhalb der Tasksequenz abgefragt werden soll?

In diesem Artikel möchte ich euch den Weg über Powershell beschreiben. Weiterlesen

Fatal Error beim Ausführen von sysprep in der Windows 10 Technical Preview Build 9926

Wenn man das aktuelle Build 9926 der Windows 10 Preview auf einem Arbeitsgruppen Computer installiert und aktualisiert, kann es bei einem anschließenden Sysprep zu einem Fatal Error kommen.

Das folgende Skript deinstalliert die Apps, die ein erfolgreiches Sysprep verhindern (Stand 11.03.2015):

$appstoremove = "getstarted","insider","maps","bingnews","windowsstore","windows.photos","bingtravel","bingsports","windowsalarms","xboxlive","bingfinance","office.onenote","skype","zunevideo","bingweath","xboxapp","zunemus","binghealth"
 foreach($app in $appstoremove)
 {
 Get-AppxPackage -Name ("*" + $app + "*") | Remove-appxpackage
 }

Bestehende Tasksequenz über Powershell editieren

Angenommen es soll eine (oder mehrere) Tasksequence um einen (oder mehrere) Schritte erweitert werden. Eine Lösung wäre den Auszubildenden endlich wieder eine sinnvolle Aufgabe zu übergeben 😉 Eine andere, das Problem mittels Powershell-Scripting zu lösen.

Ich habe mich für das Scripting entschieden ..

Was ist zu tun?

  1. Bestehende Tasksequenz laden (Get-CMTaskSequence)
  2. IResultObject „TaskSequence“ aus dem TaskSequencePackage ziehen
  3. Neuen Tasksequenzschritt „SMS_TaskSequence_*Action“ erzeugen
  4. Neuen Tasksequenzschritt in die bestehende Liste aufnehmen
  5. Speichern der Änderungen

Weiterlesen

Device Collections, Abfrage des Primary User und Active Directory Gruppe

Will man eine Collection dynamisch füllen, greift man auf eine Abfrageregel (Query Rule) zurück. Dabei werden WQL Abfragen erstellt, mit deren Ergebnis die Collection befüllt wird. Der Datenpool, auf den dabei zurückgegriffen wird, ist entsprechend des Collection Types, auf bestimmte Ressourcen Klassen eingeschränkt. So können bspw. bei einer Device Collection, nur die Daten der „System Resource“ und „Unknown Systems“ abgefragt werden.

Im Normalfall ist das auch passend, da die Device Collections nur Devices enthalten dürfen und umgekehrt.

Soll jetzt eine Device Collection gefüllt werden bei deren Filterkriterien Daten eines zugeordneten primären Benutzers, wie zum Beispiel die Mitgliedschaft einer Active Directory Gruppe, abgefragt werden, kommt man mit der Abfrage nicht weit. Denn die benötigten „User Resource“ oder „User Group Resource“ stehen in der Device Collection nicht zur Verfügung.

Wie man dennoch zum Ergebnis kommt, möchte ich in diesem Post erläutern. Weiterlesen