7 Replies Latest reply on Jul 14, 2017 5:47 AM by SitzRieSe

    Angepasstes Execution Package

    SitzRieSe Expert
      Hi Leute,

      vielleicht könnt Ihr mir helfen. Mein Problem ist etwas speziell und ich wollte es einfach mal probieren. Ich habe vor einiger Zeit mal eine Kopie vom PL Execution Package angelegt und es etwas angepasst. Letztendlich habe ich nur Reboots eingebaut... Das Skript sieht so aus:

      !==============================================

      Set('scanFailed','0')
      Set('scanError','0')
      LPRScanForVulnerabilities('scanFailed','scanError')
      !
      !Remove registry key after a successful scan
      If %scanFailed%='0'
      ! Scan has to be performed after the reboot even if there is no patch to install
      If RegKeyExists('HKEY_LOCAL_MACHINE\SOFTWARE\NetSupport\PatchManagement\ScanRequired')
        RegDeleteKey('HKEY_LOCAL_MACHINE\SOFTWARE\NetSupport\PatchManagement\ScanRequired','',)/TS

      !A return value of one indicates that the script has to be aborted.
      !The option 'Undone' causes a repeated execution after the reboot or in the next installer run.
      If %scanFailed%='1'
      InitiateSystemShutDown('10',issRebootAfterShutdown)
        Der Computer wird für die Vearbeitung von Windows Updates neugestartet!
      EndProc
      EndInstallerSession
      ExitProcEx(Undone,'The package will be executed in the next installer run (%scanError%)')
      !
      : START_LOOP

      Set('installCount','0')
      Set('fixError','0')
      Set('rebootRequired','0')
      LPRInstallPatches('installCount','fixError','rebootRequired')
      !
      !A return value different from zero indicates that the script has to be aborted.
      !The option 'Undone' causes a repeated execution after the reboot or in the next installer run.
      If not %rebootRequired%='0'
      !Scan has to be performed after the reboot even if there is no patch to install
      If not RegKeyExists('HKEY_LOCAL_MACHINE\SOFTWARE\NetSupport\PatchManagement\ScanRequired')
        RegModify('HKEY_LOCAL_MACHINE\SOFTWARE\NetSupport\PatchManagement\ScanRequired','','',mrReplace)/TS
      InitiateSystemShutDown('10',issRebootAfterShutdown)
        Der Computer wird für die Vearbeitung von Windows Updates neugestartet!
      EndProc
      EndInstallerSession
      ExitProcEx(Undone,'The package will be executed after reboot (%fixError%)')
      !
      !Report patch engine installation errors. This does not report failures on single patches.
      If not %fixError%='0'
      ExitProcEx(Failed,'%fixError%')
      If %installCount%='0'
      InitiateSystemShutDown('10',issRebootAfterShutdown)
        Der Computer wird für die Vearbeitung von Windows Updates neugestartet!
      EndProc
      EndInstallerSession
      ExitProc(Done)
      !
      Set('scanFailed','0')
      Set('scanError','0')
      LPRScanForVulnerabilities('scanFailed','scanError')
      !
      If RegKeyExists('HKEY_LOCAL_MACHINE\SOFTWARE\NetSupport\PatchManagement\ScanRequired')
      RegDeleteKey('HKEY_LOCAL_MACHINE\SOFTWARE\NetSupport\PatchManagement\ScanRequired','',)/TS
      !
      !A return value different from zero indicates that the script has to be aborted.
      !The option 'Undone' causes a repeated execution after the reboot or in the next installer run.
      If %scanFailed%='1'
      InitiateSystemShutDown('10',issRebootAfterShutdown)
        Der Computer wird für die Vearbeitung von Windows Updates neugestartet!
      EndProc
      EndInstallerSession
      ExitProcEx(Undone,'The package will be executed in the next installer run (%scanError%)')
      !
      goto START_LOOP



      Hintergrund... Ich wollte diese Paket als normale Software Policies für PC's verwenden die neuinstalliert werden, damit auch wirklich alle Updates eingespielt werden und er nicht wegen ausstehender Reboots stehen bleibt.

      Das funktioniert auch soweit perfekt und einwandfrei.

      Nun haben wir ein paar virtuelle Desktops, die nur 1x im Monat gepatched werden sollen. Also ein festes Wartungsfenster definiert haben. Da ich nun hier auch möchte das dort alle ausstehenden Updates eingespielt werden, habe ich mir gedacht, nimmst du das angepasste Paket, damit auch ausstehende Reboots abgearbeitet werden.

      Ich habe nun also ein Paket was zu Beginn des Wartungsfenster ausgeführt wird und mit dem Befehl

      ChangeSwAssignment('{AC900E54-2F10-4281-888C-8C56C7BAA991}',csaReinstall)/F/TW

      das das angepasste Paket wieder auf reinstall setzt.

      Das angepasste Execution Package läuft auch los, sucht nach Updates und installiert Sie. Wir haben aber sporadisch Maschinen die teilweise beim ersten Lauf oder auch vereinzelnt beim 2. Lauf nach dem ersten Reboot den Fehler "Ein Fehler trat beim Laden des Skripts ... Es kann nicht ausgeführt werden".

      Im Log sieht das dann so aus:

      [URL="https://pastebin.com/CpFvY9M1"]https://pastebin.com/CpFvY9M1

      Hat da Jemand einen Ansatz für mich wie ich das Troubleshooten kann?

      Danke!

      Gruß

      Alex