none
PS-Snapin nicht registriert wenn über Script gestartet (W2k8 R2 x64) RRS feed

  • Frage

  • Hallo,

     

    habe folgendes Problem:

    Wenn ich das Windows.ServerBackup Snapin auf dem Server direkt lade (Add ...) funktioniert alles wunderbar.

    Führe ich dies jedoch über ein Script aus, welches unter dem gleichen User!! läuft, so bekomme ich, dass das PS-Snapin ist nicht installiert ist.

    Ein "get-pssnapin -registered" zeigt mir lokal auf dem System auch das Snapin Windows.ServerBackup korrekt an. Beim Ausführen des Scripts fehlt dieses jedoch dann.

    Ich hatte schon herausgefunden, dass das Snapin nicht in der x64 Bit Powershell ist, deshalb habe ich im Scriptaufruf auch explizit die x86 Powershell aufgerufen. Jedoch ohne erfolg.

    UC4 läuft lokal unter "Local System" meldet sich vor ausführen des Scripts jedoch ganz regulär als der entsprechende User an.

    Hat hier jemand noch eine Idee ? ... mir gingen sie jetzt aus :(

    Scriptaufruf aus UC4:

    C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe C:\Scripts\WindowsServerBackup\Full-Server-Backup.ps1 <arg1> <arg2> <arg3>

     

    Verwendetes System:

    Win2k8 R2 x64

    Aktuellste Patches selbstredend :)

     

     

    Mittwoch, 3. August 2011 14:29

Antworten

  • Hallo,

    Ich hatte schon herausgefunden, dass das Snapin nicht in der x64 Bit Powershell ist, deshalb habe ich im Scriptaufruf auch explizit die x86 Powershell aufgerufen. Jedoch ohne erfolg.

    C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe C:\Scripts\WindowsServerBackup\Full-Server-Backup.ps1 <arg1> <arg2> <arg3>

    wenn Du diesen Aufruf im Taskplaner hast, startest Du eine 64-Bit-Powershell. Da der Taskplaner 64-Bit ist, sieht der dort die 64-Bit-Variante der PowerShell.

    Wenn Du mit einem 64-Bit-Aufruf, die 32-Bit-PowerShell startem willst, liegt die hier:
    C:\WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe


    Grüße aus Berlin schickt Robert
    MVP Exchange Server
    Mittwoch, 3. August 2011 16:19
  • Also die Lösung war doch recht simpel .. wenn man mal ein wenig Zeit hat sich damit zu beschäftigen :P

    Da UC4 als 32 bit appl. ausgeführt wurde, konnte er das snap-in nicht sehen. (Da dies nur für die 64bit zur verf. steht)

    Hab jetzt den UC4 executor auf 64 bit abgeändert und schon läufts.

     

    Verwirrend fand ich jedoch, dass in Win64 die Powershell unter system32 die 64bit version ist und unter syswow64 die 32bit version ... War wohl ein Programmierer betrunken? :P

     

    wo man sich gerade befindet kann man übrigens rausfinden über:

    if ([System.IntPtr]::Size -eq 8){64}else{32}  

    • Als Antwort markiert technik-hd Dienstag, 9. August 2011 08:41
    Dienstag, 9. August 2011 08:41

Alle Antworten

  • Hallo,

    Ich hatte schon herausgefunden, dass das Snapin nicht in der x64 Bit Powershell ist, deshalb habe ich im Scriptaufruf auch explizit die x86 Powershell aufgerufen. Jedoch ohne erfolg.

    C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe C:\Scripts\WindowsServerBackup\Full-Server-Backup.ps1 <arg1> <arg2> <arg3>

    wenn Du diesen Aufruf im Taskplaner hast, startest Du eine 64-Bit-Powershell. Da der Taskplaner 64-Bit ist, sieht der dort die 64-Bit-Variante der PowerShell.

    Wenn Du mit einem 64-Bit-Aufruf, die 32-Bit-PowerShell startem willst, liegt die hier:
    C:\WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe


    Grüße aus Berlin schickt Robert
    MVP Exchange Server
    Mittwoch, 3. August 2011 16:19
  • das Windows.ServerBackup ist beim Ausführen dann anscheinend weder in der syswow64 noch system32 powershell.

    UC4 wird als x32 bit applikation lokal ausgeführt. Von demher müsste es passen. ... tuts aber leider nicht :/

    Donnerstag, 4. August 2011 12:16
  • Also die Lösung war doch recht simpel .. wenn man mal ein wenig Zeit hat sich damit zu beschäftigen :P

    Da UC4 als 32 bit appl. ausgeführt wurde, konnte er das snap-in nicht sehen. (Da dies nur für die 64bit zur verf. steht)

    Hab jetzt den UC4 executor auf 64 bit abgeändert und schon läufts.

     

    Verwirrend fand ich jedoch, dass in Win64 die Powershell unter system32 die 64bit version ist und unter syswow64 die 32bit version ... War wohl ein Programmierer betrunken? :P

     

    wo man sich gerade befindet kann man übrigens rausfinden über:

    if ([System.IntPtr]::Size -eq 8){64}else{32}  

    • Als Antwort markiert technik-hd Dienstag, 9. August 2011 08:41
    Dienstag, 9. August 2011 08:41
  • Moin,

    Hab jetzt den UC4 executor auf 64 bit abgeändert und schon läufts.

    Verwirrend fand ich jedoch, dass in Win64 die Powershell unter system32 die 64bit version ist und unter syswow64 die 32bit version ... War wohl ein Programmierer betrunken? :P

    also eigentlich das, was ich Dir am 3.8. schon schrieb:

    wenn Du diesen Aufruf im Taskplaner hast, startest Du eine 64-Bit-Powershell. Da der Taskplaner 64-Bit ist, sieht der dort die 64-Bit-Variante der PowerShell.
    Wenn Du mit einem 64-Bit-Aufruf, die 32-Bit-PowerShell startem willst, liegt die hier:
    C:\WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe

    wo man sich gerade befindet kann man übrigens rausfinden über:

    if ([System.IntPtr]::Size -eq 8){64}else{32}  

    Oder einfach in den Taskmanager schauen, der zeigt das auch an. ;)


    Grüße aus Berlin schickt Robert
    MVP Exchange Server
    Dienstag, 9. August 2011 16:55