6 Replies Latest reply on Oct 31, 2018 3:07 AM by marioschaper

    Powershell Skript wird nicht ausgeführt

    marioschaper Rookie

      Hi,

       

      ich versuche in meiner DSM 2018.1 ein PowerShell Skript via CallScript auszuführen - leider ziemlich erfolglos.

      Das log behauptet zwar immer es wurde installiert, tatsächlich passiert hier aber nichts.

       

      Der Aufruf sieht im eScript Package wie folgt aus:

      CallScriptAs('.\Extern$\decrapifier.ps1','','','',raUseSisAccount+raLogonWithProfile)/x64/TU

       

      kann daran jemand erkennen was ich falsch mache? ich habe irgendwo gelesen, dass es für callscript nicht nötig ist die execution policy umzustellen?!

        • 1. Re: Powershell Skript wird nicht ausgeführt
          luckydevil Specialist

          Moin Mario,

          wie laufen andere PS-Scripts in CallScriptAs?

          Ich nutze hier z.B. "Account ->"Use this account (User name / Password)" und "Logon for network only" im Service-Kontext.

          ... und es tut.

           

          HTH

          lucky devil

          • 2. Re: Powershell Skript wird nicht ausgeführt
            derniwi Master

            Hallo Mario,

             

            läuft das eSkript auch im Kontext des Benutzers?

             

            Gruß

            Nils

            • 3. Re: Powershell Skript wird nicht ausgeführt
              marioschaper Rookie

              Hi,

               

              danke schon mal für den Input und sorry, dass ich mich erst jetzt wieder melde.

               

               

              Es ist ein Benutzerbezogener Befehl. Im Skript selbst habe ich konfiguriert, dass es als DSM-Konto mit "Anmeldung mit Profil" laufen soll. Leider erfolglos

              2018-09-26 15_23_43-1030.Windows 10 Decrapifier - Packaging Workbench.png

               

              wenn ich das ps1 Skript als DSM Konto manuell ausführe klappt alles genau so wie ich es möchte. Nur eben nicht über die DSM Ausführung

              • 4. Re: Powershell Skript wird nicht ausgeführt
                derniwi Master

                Hallo Mario,

                 

                nochmal die Nachfrage: wie ist das Skript konfiguriert? Nicht der Befehl, sondern das eScript. Wenn das Paket nur im Kontext des Service ausgeführt wird, wird der Befehl nicht abgearbeitet.

                Kannst du auch mal die (um Passwörter und sonstigen vertraulichen Daten bereinigten) Teile des "niai32_*.log" hier posten?

                 

                Evtl. auch mal "nimoni" als Administrator auf dem Rechner starten und das Log Level auf 0 setzen (für eine ausführlicheres Protokoll).

                 

                Gruß

                Nils

                1 of 1 people found this helpful
                • 5. Re: Powershell Skript wird nicht ausgeführt
                  Nico Schmidtbauer Apprentice

                  Hallo Mario,

                   

                  eventuell ist es ja ein Denkfehler?

                   

                  Der Grund ein Skript "Benutzerbezogen" laufen zu lassen, ist ja in der Regel der, dass ich Sachen machen will im BENUTZERPROFIL des aktuell angemeldeten Benutzers. Ich nehme jetzt einfach mal den PS Befehl "Remove-Appxpackage" als Beispiel um eine App des Benutzers zu deinstallieren. Wenn du das mit "CallScriptAs" und "DSM-Konto verwenden" machst, dann ist der User auch das DSM Konto... der Remove-AppxPackage Befehl wird auch im Benutzerprofil des DSM Accounts durchgeführt, nicht im Benutzerprofil des aktuell angemeldeten Benutzers. Würdest dein decrapifier Script z.B. die Windows Mail App entfernen, würde in der aktuellen Konstellation das Script für jeden User des sich anmeldet ausgeführt... aber jedes mal würde die Mail App aus dem Profil des DSM Accounts entfernt werden.

                   

                  Ich vergleich das jetzt einfach mal mit der RegEdit, darauf fallen auch viele gerne rein. Angenommen du hast "User1" und "Admin-User". User1 ist auf dem Rechner angemeldet und öffnet Regedit. Jetzt ist HKEY_CURRENT_USER der Registry Zweig von "User1". Öffnest du die Regedit als Administrator, und gibst in der UAC "Admin-User" an, dann ist HKEY_CURRENT_USER der Registry Zweig von "Admin-User".

                   

                  Genau so verhält es sich in DSM, wenn du sachen mit "RunAs" bzw. CallScriptAs und "DSM Konto verwenden" laufen lässt. Da landest du mit allen Befehlen erstmal im Kontext des Users unter dem du es laufen lässt.

                   

                  Lösung ist: Sachen die einmal pro Rechner, als Admin laufen sollen (z.B. ein PS Script mit "Remove-ProvisionedAppxPackage"), lässt du Computerbezogen als Service / als DSM Konto laufen. Sachen die im Benutzerprofil passieren sollen (z.B. ein PS Script mit "Remove-AppxPackage") lässt du nur Userbezogen laufen, im Kontext des angemeldeten Benutzers.

                   

                  Gruß

                  Nico

                  1 of 1 people found this helpful
                  • 6. Re: Powershell Skript wird nicht ausgeführt
                    marioschaper Rookie

                    die Hinweise waren alle sehr hilfreich. Ich lasse das Script zum löschen der Microsoft AppX Pakete direkt nach der Installation des Betriebssystem als 64bit Service löschen.

                    Mit Windows 10 Version 1803 gibt es aber blöderweise einen kleinen Fehler wenn man zwischen Remove-AppxPackage und Remove-AppxProvisionedPackage einen neustart machen muss, damit das auch tatsächlich funktioniert.

                    Scheinbar muss auch zwingend erst das Remove-AppxPackage ausgeführt werden, damit Remove-AppxProvisionedPackage vernünftig durchläuft.