4 Replies Latest reply on Aug 3, 2017 1:24 AM by _Mel_

    PowerShell Script direkt nach dem Hochfahren per eScript ausführen

    JensErtel Apprentice

      Hallo zusammen,

       

      habe ein eScript, welches mittels CallScript ein PowerShell Script ausführt.

       

      Wenn ich nun den Rechner starte und der Service Installer (NISRV) das Script ausführt, kommt es gelegentlich zu einem Ausführungsfehler (1 von 20 Rechner). Für mich scheint es sich hierbei um ein Timing Problem zu handeln, dass das Script zu früh gestartet wird, denn wenn ich noch mal "Änderungen ausführen" lasse, funktioniert das ganze.

       

      NISRV32 Log

      00:36:51.426 2        -> CallScript('C:\Program Files (x86)\Common Files\enteo\RepositoryCache\207498\rev\1\Extern$\Get-ProcessConsoleSession.ps1','')/x64/TS

      00:36:51.426 2         ExecHostClient32.dll: starting Execution Host Server Process "C:\Program Files (x86)\NetInst\ExecHostServer64.exe".

      00:36:56.071 2         ExecHostClient32.dll: RPC Server (pipe name 'ExecHost_832') was started.

      00:37:21.104 0         ExecHostClient32.dll: The RPC server doesn't exist anymore.

      00:37:21.104 2         ExecHostClient32.dll: Execution Host server process terminated with code 1359.

      00:37:21.104 1         ExecHostClient32.dll: Trying to restart to server process...

      00:37:21.104 2         ExecHostClient32.dll: starting Execution Host Server Process "C:\Program Files (x86)\NetInst\ExecHostServer64.exe".

      00:37:25.608 2         ExecHostClient32.dll: RPC Server (pipe name 'ExecHost_988') was started.

      00:37:48.162 0         ExecHostClient32.dll: The RPC server doesn't exist anymore.

      00:37:48.162 2         ExecHostClient32.dll: Execution Host server process terminated with code 1359.

      00:37:48.162 1         ExecHostClient32.dll: Trying to restart to server process...

      00:37:48.162 2         ExecHostClient32.dll: starting Execution Host Server Process "C:\Program Files (x86)\NetInst\ExecHostServer64.exe".

      00:37:52.682 2         ExecHostClient32.dll: RPC Server (pipe name 'ExecHost_1756') was started.

      00:38:15.236 0         ExecHostClient32.dll: The RPC server doesn't exist anymore.

      00:38:15.236 2         ExecHostClient32.dll: Execution Host server process terminated with code 1359.

      00:38:15.236 E         Error (Module:xniTools, Severity:0x0b): Execution of NIL_CallScript with script C:\Program Files (x86)\Common Files\enteo\RepositoryCache\207498\rev\1\Extern$\Get-ProcessConsoleSession.ps1 failed

      The process terminated unexpectedly. (0x0000042b)

      00:38:15.236 2         Messagebox suppressed  (No output allowed), output is written to the log files

      00:38:15.236 2         MsgBox: [Execution of NIL_CallScript with script C:\Program Files (x86)\Common Files\enteo\RepositoryCache\207498\rev\1\Extern$\Get-ProcessConsoleSession.ps1 failed

      The process terminated unexpectedly. (0x0000042b)

      Installation aborted.]

      00:38:15.236 2         SWMSRT: //------------| Starting Checking if policies should run for the trigger 'On error'. |------------\\

      00:38:15.236 0         SWMSRT: No triggered jobs found

      00:38:15.236 2         SWMSRT: \\------------| Finished Checking if policies should run for the trigger 'On error'. |------------//

      00:38:15.298 0         ExecHostClient32.dll: Failed to terminate server.

      The RPC server is unavailable. (0x000006ba)

      00:38:15.361 2        New last error from script command is 2147614729 (0x80020009)

      00:38:15.361 2        Resolved new last error from script command is: Exception occurred.

      00:38:15.361 2       Execution terminated on error

       

      ExecutionHostRPCserver Log

      00:38.06.211  2 ExecHostServer64.exe  starting RPC server.
      00:38.15.221  E Warning (Module:ExecHostServer64.exe, Severity:0x03): ExecHostServer64.exe  Failed to initialize RPC server.
      Not enough storage is available to complete this operation. (0x0000000e)
      00:38.15.221  E Warning (Module:ExecHostServer64.exe, Severity:0x03): ExecHostServer64.exe  Prepare server failed
      00:38.15.221  E Warning (Module:ExecHostServer64.exe, Severity:0x03): ExecHostServer64.exe  ConnenctionHandler failed in Listen call.
      00:38.15.221  : End Of Logfile

       

      Handelt es sich hier um ein Bug?

      DSM Version 2016.1 (7.3.1.3386)

       

      Schöne Grüße

       

      Jens

        • 1. Re: PowerShell Script direkt nach dem Hochfahren per eScript ausführen
          nordin.markow Apprentice

          Was macht denn das Powershell Script? Weil der Fehler scheint ja vom Script zu kommen.

          • 2. Re: PowerShell Script direkt nach dem Hochfahren per eScript ausführen
            JensErtel Apprentice

            Wie kommst du darauf das es am PowerShell Script liegt?

             

            Der Client wirft mir einen Fehler zurück beim starten der ExecHostServer64.exe, bzw. beim RPC server. Hingegen wenn ich es später starte funktioniert es wie gewohnt. Meines Wissens startet das PowerShell Script erst dann, wenn der Server erfolgreich gestartet wurde.

             

            Anbei ein Auszug, wie es normaler weise sein sollte:

             

            NISRV Log:

            02:01:32.984 2        -> CallScript('C:\Program Files (x86)\Common Files\enteo\RepositoryCache\207498\rev\1\Extern$\Get-ProcessConsoleSession.ps1','')/x64/TS

            02:01:32.984 2        ExecHostClient32.dll: starting Execution Host Server Process "C:\Program Files (x86)\NetInst\ExecHostServer64.exe".

            02:01:33.016 2        ExecHostClient32.dll: RPC Server (pipe name 'ExecHost_8104') was started.

            02:01:33.296 2        ExecHostClient32.dll: RPC client (pipe name 'ExecHost_8104') was started and the server is listening.

            02:01:33.296 0        xniTools: Got dwDepotId from xniFPS for 'C:\Program Files (x86)\Common Files\enteo\RepositoryCache\207498\rev\1\Extern$\Get-ProcessConsoleSession.ps1': 0

            02:01:33.296 2        ExecHostClient32.dll: Calling script C:\Program Files (x86)\Common Files\enteo\RepositoryCache\207498\rev\1\Extern$\Get-ProcessConsoleSession.ps1.

            02:01:47.274 2        xniTools: NiReport-> "Executing action Get-ProcessConsoleSession"

            02:01:48.272 0        xniTools: NiGetVar-> Trying to access NetInstall-Variable [_ProcessListNI]

            02:01:48.272 0        xniTools: NiGetVar-> NetInstall-Variable [_ProcessListNI] successfully read.

            02:01:52.687 2        xniTools: NiReport-> "Process winword.exe not found for console / rdp-tcp#0 user"

            02:01:52.874 2        xniTools: NiReport-> "Process excel.exe not found for console / rdp-tcp#0 user"

            02:01:52.921 2        xniTools: NiReport-> "Process outlook.exe not found for console / rdp-tcp#0 user"

            02:01:53.015 2        xniTools: NiReport-> "Process powerpnt.exe not found for console / rdp-tcp#0 user"

            02:01:53.077 2        xniTools: NiReport-> "Process onenote.exe not found for console / rdp-tcp#0 user"

            02:01:53.124 2        xniTools: NiReport-> "Process mspub.exe not found for console / rdp-tcp#0 user"

            02:01:53.186 2        xniTools: NiReport-> "Process msaccess.exe not found for console / rdp-tcp#0 user"

            02:01:53.249 2        xniTools: NiReport-> "Process lync.exe not found for console / rdp-tcp#0 user"

            02:01:53.296 2        xniTools: NiReport-> "Process winproj.exe not found for console / rdp-tcp#0 user"

            02:01:53.358 2        xniTools: NiReport-> "Process visio.exe not found for console / rdp-tcp#0 user"

            02:01:53.358 0        xniTools: NiSetVar-> [0] successfully assigned to NetInstall-Variable [_RC].

            02:01:53.795 2        ExecHostClient32.dll: Script C:\Program Files (x86)\Common Files\enteo\RepositoryCache\207498\rev\1\Extern$\Get-ProcessConsoleSession.ps1 has been called.

            02:01:53.795 2        ExecHostClient32.dll: RPC Server will be terminated.

             

            Der Auszug aus dem ExecutionHostServer Log:

            02:01.33.156  2 ExecHostServer64.exe  starting RPC server.

            02:01.33.172  1 ExecHostServer64.exe  Listening for incoming connections.

            02:01.53.795  2 ExecHostServer64.exe  Stopping RPC server. Termination event was set.

            02:01.54.310  1 ExecHostServer64.exe  Listening stopped.

             

            Und wenn es funktioniert, habe ich auch ein ExecutionHostRPCserverRPC Log:

            02:01.53.795  2 ExecHostServer64.exe  QuitServer.

            • 3. Re: PowerShell Script direkt nach dem Hochfahren per eScript ausführen
              SitzRieSe Expert

              Hi Jens,

               

              ich kenne das Verhalten und hab bisher noch keine gute "Lösung" dafür. Als Workaround, versuch es mal mit einem Sleep vorweg, das hilft bei mir!

               

              Gruß

               

              Alex

              • 4. Re: PowerShell Script direkt nach dem Hochfahren per eScript ausführen
                _Mel_ Master

                meine erste vermutung wäre gewesen, daß das RPC system noch nicht voll initialisiert ist.

                kann aber nicht sein, weil der installer um soweit zu kommen schon mit dem core service per rpc kommuniziert haben muß.

                 

                eventuell hat das rpc system ein problem, wenn zu dem zeitpunkt gerade viele prozesse ihre rpc interfaces hochfahren.

                 

                mach doch mal ein ticket dafür auf, auch wenn dsm da wahrscheinlich auch nur sowas wie "kurz warten und es nochmal versuchen" machen kann.