6 Replies Latest reply on Nov 1, 2011 8:13 PM by NicoS1

    Powershell: EnteoScriptPSSnapin is not registered yet

    TorstenStreng Expert
      Hallo,

      wenn ich mit "CallScript" ein Powershell Script ausführen lassen möchte, erhalte ich folgende Fehler:

      10:24:07.975 2        -> CallScript('C:\enteocache\RepositoryCache\1214\rev\4\Extern$\Application_Server.ps1')/x64/TS
      10:24:07.975 1         xniTools: disabled X64 filesystem redirection for execution of CallScript command
      10:24:31.523 E         Warning (Module:Powershell, Severity:0x03): Script error: System.Management.Automation.PSArgumentException: No snap-ins have been registered for Windows PowerShell version 2.
         at System.Management.Automation.PSSnapInReader.GetMshSnapinRootKey(RegistryKey versionRootKey, String psVersion)
         at System.Management.Automation.PSSnapInReader.Read(String psVersion, String mshsnapinId)
         at System.Management.Automation.Runspaces.MshConsoleInfo.AddPSSnapIn(String mshSnapInID)
         at System.Management.Automation.Runspaces.RunspaceConfigForSingleShell.DoAddPSSnapIn(String name, PSSnapInException& warning)
         at System.Management.Automation.Runspaces.RunspaceConfiguration.AddPSSnapIn(String name, PSSnapInException& warning)
         at EnteoPowershellHost.ConfigureAndCreateRunspace()
         at EnteoPowershellHost.RunSafe()
         at EnteoPowershellHost.Run()
      10:24:31.523 1         SWMSRT: Checking if policies should run for the trigger 'Time based trigger'.
      10:24:33.788 2         Powershell: EnteoScriptPSSnapin is not registered yet
      10:24:33.804 2         xniTools: Powershell-Snapin 'EnteoScriptPSSnapin' needed to interact with NetInstall is not registered yet

      10:24:33.820 2         -> InstallAssembly('C:\Program Files (x86)\NetInst\Enteo.Powershell.ScriptCmdlet.dll','C:\Program Files (x86)\NetInst\Enteo.Powershell.ScriptCmdlet.dll',rExecuteInstallerClass,'')/x64/TS
      10:24:33.820 1          disabled X64 filesystem redirection for execution of this command
      10:24:33.851 1          xniTools: Checking if a .NET Framework version equal or higher than 1.1.0 installed
      10:24:33.914 1          xniTools: Checking if a .NET Framework version equal or higher than 2.0.0 installed
      10:24:33.914 2          xniTools: Framework version would be sufficient, but C:\Windows\Microsoft.NET\Framework\v3.0\installutil.exe doesn't exist
      10:24:33.914 2          xniTools: Framework version would be sufficient, but C:\Windows\Microsoft.NET\Framework\v3.5\installutil.exe doesn't exist
      10:24:33.929 1          xniTools: Executing the installer class of the assembly ...
      10:24:33.929 1          xniTools: This machine is a x64 hardware so check first if the 64Bit framework version is installed
      10:24:33.945 1          xniTools: Checking if a .NET Framework version equal or higher than 2.0.50727 installed
      10:24:33.945 2          xniTools: Framework version would be sufficient, but C:\Windows\Microsoft.NET\Framework64\v3.0\installutil.exe doesn't exist
      10:24:33.945 2          xniTools: Framework version would be sufficient, but C:\Windows\Microsoft.NET\Framework64\v3.5\installutil.exe doesn't exist
      10:24:33.960 1          xniTools: Executing the InstallUtil.exe
      10:24:33.960 1          xniTools:        Executable: C:\Windows\Microsoft.NET\Framework64\v2.0.50727\InstallUtil.exe
      10:24:33.976 1          xniTools: Working-Directory: C:\Program Files (x86)\NetInst\
      10:24:33.976 1          xniTools:        Parameters:  /ShowCallStack "C:\Program Files (x86)\NetInst\Enteo.Powershell.ScriptCmdlet.dll"
      10:24:33.992 1          xniTools: InstallUtil is up and running (ProcessId=520)
      10:24:33.992 1          xniTools: Waiting for process ...
      10:24:37.273 1          xniTools: Process finished.
      10:24:37.273 1          xniTools: Executing the installer class of the assembly finished.
      10:24:37.320 E         Warning (Module:Powershell, Severity:0x03): Script error: System.Management.Automation.PSArgumentException: No snap-ins have been registered for Windows PowerShell version 2.
         at System.Management.Automation.PSSnapInReader.GetMshSnapinRootKey(RegistryKey versionRootKey, String psVersion)
         at System.Management.Automation.PSSnapInReader.Read(String psVersion, String mshsnapinId)
         at System.Management.Automation.Runspaces.MshConsoleInfo.AddPSSnapIn(String mshSnapInID)
         at System.Management.Automation.Runspaces.RunspaceConfigForSingleShell.DoAddPSSnapIn(String name, PSSnapInException& warning)
         at System.Management.Automation.Runspaces.RunspaceConfiguration.AddPSSnapIn(String name, PSSnapInException& warning)
         at EnteoPowershellHost.ConfigureAndCreateRunspace()
         at EnteoPowershellHost.RunSafe()
         at EnteoPowershellHost.Run()
      10:24:37.320 1         SWMSRT: Checking if policies should run for the trigger 'Time based trigger'.
      10:24:37.461 2         Powershell: EnteoScriptPSSnapin is not registered yet
      10:24:37.476 E         Warning (Module:xniTools, Severity:0x03): Unable to execute the Powershell script. Error code 1017
      The system has attempted to load or restore a file into the registry, but the specified file is not in a registry file format.
      10:24:37.476 1         SWMSRT: Checking if policies should run for the trigger 'Time based trigger'.

      Was sagen die Profi's?

      ;-)
      T.
        • 1. Re: Powershell: EnteoScriptPSSnapin is not registered yet
          Frank.Scholer Master
          Hallo Torsten,

          schau die mal den Thread [URL="http://forum.enteo.com/showthread.php?t=14178"]hier an - der Peter hatte genau dasselbe Problem...

          HTH, Gruß Frank
          • 2. Re: Powershell: EnteoScriptPSSnapin is not registered yet
            TorstenStreng Expert
            Hallo Frank,

            danke für den Hinweis. Bin zwar ein Stück weiter gekommen aber dann läuft's in den nächsten Fehler:

            12:27:36.588 2        -> ExecuteEx('C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe /ShowCallStack /Logfile="c:\enteocache\NiLogs\Enteo.Powershell.ScriptCmdlet_InstallUtil.log" "C:\Program Files (x86)\NetInst\Enteo.Powershell.ScriptCmdlet.dll"','_Return','')/?/x64/TS
            12:27:36.604 1         disabled X64 filesystem redirection for execution of this command
            12:27:36.604 2         Command line logging has been enabled.
            12:27:36.604 2         To disable it, enable the flag 'Do not log command line parameters' of the command
            12:27:36.620 2         Execute: 'C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe /ShowCallStack /Logfile="c:\enteocache\NiLogs\Enteo.Powershell.ScriptCmdlet_InstallUtil.log" "C:\Program Files (x86)\NetInst\Enteo.Powershell.ScriptCmdlet.dll"'
            12:27:36.620 2         Waiting for process...

            12:27:36.791 1        Evaluating condition "not __Return_='0'"
            12:27:36.807 2        Condition FALSE  -> skipping IF part
            12:27:36.807 2        Skipping command : ExitProcEx

            12:27:36.823 2        -> RegModify('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell','ExecutionPolicy','RemoteSigned',reUseX64Hive+mrReplace)/TS
            12:27:36.823 1         No action needed

            12:27:36.838 2        -> CallScript('C:\enteocache\RepositoryCache\1214\rev\4\Extern$\Application_Server.ps1')/TS
            12:27:57.730 E         Warning (Module:Powershell, Severity:0x03): Script error: The term 'Add-WindowsFeature' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
            At C:\enteocache\RepositoryCache\1214\rev\4\Extern$\Application_Server.ps1:28 char:19
            + Add-WindowsFeature <<<<  Application-Server | out-file -filepath C:\Windows\Temp\Application-Server.log
            12:27:57.730 1         SWMSRT: Checking if policies should run for the trigger 'Time based trigger'.
            12:27:57.746 2         Powershell: Powershell script returned with errors

            Laut Internet Recherche zu der Fehlermeldung muss vor dem "Add-WindowsFeature" der "Import-Module ServerManager" abgesetzt werden. Das ist klar und auch vorhanden. Das Script ist ja nur ein Zweizeiler.

            Import-Module Servermanager
            Add-WindowsFeature Application-Server | out-file -filepath C:\Windows\Temp\Application-Server.log


            Von daher....ich glaube ich belasse bei "ExecuteEx" anstatt "CallScript". Dann funzt es auch.

            Gruß
            Torsten
            • 3. Re: Powershell: EnteoScriptPSSnapin is not registered yet
              Frank.Scholer Master
              Hi Torsten,

              Von daher....ich glaube ich belasse bei "ExecuteEx" anstatt "CallScript". Dann funzt es auch.


              Wer wird denn so schnell die Flinte ins Korn werfen wollen? ;-) - es wird bestimmt mal Situationen geben, wo das gut brauchen kannst (oder es womöglich garnicht anders geht), daher wäre doch jetzt ein guter Zeitpunkt, sich da mal durchzuwühlen...

              Also, ich denke, das geht auf die Bretter, weil du jetzt ja mit der 32-bittigen PowerShell unterwegs bist... für die gibt's das Modul "ServerManager" im Modules-Verzeichnis nicht.

              Leider kann man das 64-bittige Modul in der 32-bittige PowerShell nicht importieren (gerade ausprobiert :-( ), daher bist du momentan wohl tatsächlich in ner Sackgasse.

              Cool wäre aber, wenn du einen Feature Request an FrontRange stellst, dass es möglich sein soll, unter einem 64-bittigen OS auch den 64-bittigen Script-Host (also die PowerShell) per "CallScript"-Befehl zu verwenden... das wird man sicher zukünftig auch öfters haben wollen/brauchen.

              Grüße Frank
              • 4. Re: Powershell: EnteoScriptPSSnapin is not registered yet
                TorstenStreng Expert
                Hi Frank,

                Wer wird denn so schnell die Flinte ins Korn werfen wollen? ;-)



                das ist einfach der begrenzten Zeit geschuldet. Kennst Du doch ;-)

                Ja das mit dem Feature Request werde ich dann mal machen.

                Grüße
                Torsten
                • 5. Re: Powershell: EnteoScriptPSSnapin is not registered yet
                  phumbert Specialist
                  Da ich ja bereits feststellen musste, dass das PowerShell SnapIn tatsächlich unter 64bit PowerShell registriert wird, könnte man ja ggf. mal versuchen den CallScript als x64-Ausführung zu kennzeichnen, vielleicht funktionierts ja so? Ein Versuch wäre es zumindest wert.

                  Also in etwa so:

                  CallScript('C:\enteocache\RepositoryCache\1214\rev\4\Extern$\Application_Server.ps1')/x64/TS
                  • 6. Re: Powershell: EnteoScriptPSSnapin is not registered yet
                    NicoS1 Master
                    Hallo,

                    ich hab den Thread nur halbwegs überflogen. Aber sehe ich das richtig, dass du auf einem 64 Bit Host, einen CallScript machen willst, der aber nur in einer 32-Bit PowerShell Session ausgeführt wird, da DSM im 32 Bit Modus läuft?

                    Als erstes fände ich den Vorschlag von Phumbert gar nicht schlecht, zumindest ums mal zu probieren.

                    Ansonsten kommst du an die 64 Bits Sachen nur über eine Remote Session ran. Ich persönlich hab einen Server den ich für Scriptingaufgaben benutze, der läuft noch auf Win2003, 32 Bit. Da wir auf Exchange 2010 umgestellt hatten, hab ich das Problem gehabt, dass man die Exchange Add Ins benötigt, und es die nur für 64 Bit Systeme gibt.

                    Aber man kann über Remote Sessions arbeiten. Theoretisch müsste man via Execute (64 Bit) Remote Sessions aktivieren, dann den CallScript durchführen (inkl. Remote Session Verbindung auf sich selbst und Session Import), und hinterher die Remote Sessions ggf. wieder deaktivieren.

                    Aber, da würde ich vorher auch einfach zum ExecuteEx greifen