Enteo, Powershell und Installationsstatus

Zentraler Punkt in dem Script ist die Erkennung in welchem status die Installation gerade ist. Folgende Status sind möglich:

  • Installation noch nicht eingeplant
  • Installation eingeplant aber noch nicht gestartet
  • Installation ist angelaufen aber noch nicht beendet
  • Installation ist durchgelaufen

Zur Ermittlung dierer Status greifen wir wieder auf das Auslesen von PolicyInstancen zurück. Dazu werden am Anfang einige Policy-IDs definiert, die die verschiedene Status beschreiben:

  • $OSStatDateTask: Die Policy, die den Anfang der Installation markiert
  • $FirstOSTask: Die Policy, die nach derHardwareerkennung dynamisch hinzugefügt wird.  Zur Ermittlung der Installation wird diese verwendet, da dadurch sichergestellt wird, dass der Client aus dem WinPE mit dem Enteo Server kommunizieren konnte
  • $LastOSTask: Die letzte Policy in einer Installation.

Der Scriptauszug sind dann so aus:

$ospolicy=get-emdbpolicyInstance $pc.path | where {$_.AssignedObjectID -eq $FirstOSTask}
if ($ospolicy)
{
   $osReinstall=$true
   $ospolicy=get-emdbpolicyInstance $pc.path | where {$_.AssignedObjectID -eq $OSStartDateTask}
   if ($ospolicy.installationDate) {
      if (((($ospolicy.InstallationDate) - (get-date)).days) -eq 7)
      {
         $osstart=$ospolicy.InstallationDate
         $lastospolicy=get-emdbpolicyInstance $pc.path | where {$_.AssignedObjectID -eq $LastOSTask}
         $osend=$lastospolicy.InstallationDate
      }
   }
   else
   {
      $osstart=$false
   }
}
else
{
   $osReinstall=$false
}

Am Anfang wird kontrolliert, ob die FirstOSTask Policy bereits zugeordmet ist. Ist dies der Fall, dann ist die Installation bereits angelaufen. Um das Startdatum zu ermitteln wird daher die OSStartDateTask Policy ausgelesen und das Datum in der $osstart Variable abgelegt. An dieser Stelle wird auch ermitteln, ob die Installation bereits x Tage zurückliegt. Dies soll eine Neueinplanung der Installation ermöglichen.

Durch die Ermittlung der LastOSTask Policy wird erkannt, ob die Installation bereits beendet wurde bzw. wann dies der Fall war.

Insgesamt erzeugt dieser Code folgende Statusvariablen:

  • $osReinstall=$false: FirstOSTask wurde nicht gefunden, daher war die Installation noch nicht eingeplant
  • $osStart=$false oder Datum: Installation noch nicht gestartet ($false) oder ist zum Zeitpunkt x gestartet.
  • $osend=null oder Datum: Installation ist noch nicht beendet bzw. zum Zeitpunkt x beendet.
This entry was posted in Deutsch, Powershell and tagged , , , . Bookmark the permalink.