stefanwey
Goto Top

Powershell - Import-Module FailoverClusters als Lokaler System User(Service)

Powershell
Windows Server 2008 R2
Script als Service

Hallo Zusammen

Ich möchte in einem Dienst(Service) ein Powershell Script aus führen, leider funktioniert der Modul Import nicht.
Der Dienst wird dabei von Lokalen System ausgeführt und nicht dem Administrator(Hier funktioniert es).
Weiss jemand von euch an was das liegen könnte?

Script:
"BBFailoverCluster.ps1"
#Import-Module FailoverClusters
Import-Module C:\Windows\System32\WindowsPowerShell\v1.0\Modules\FailoverClusters -verbose

Fehler Meldung:
Import-Module : Das angegebene Modul "FailoverClusters" wurde nicht geladen, da
 in keinem Modulverzeichnis eine gltige Moduldatei gefunden wurde.
Bei C:\Program Files (x86)\*****\BBFailoverCluster.ps1:8 Zeichen:14
+ Import-Module <<<<  FailoverClusters
    + CategoryInfo          : ResourceUnavailable: (FailoverClusters:String) [ 
   Import-Module], FileNotFoundException
    + FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Comm 
   ands.ImportModuleCommand


Ich habe herausgefunden das unter dem System Account nicht alle Module vorhanden sind, im Vergleich die Auflistung des Administrators:

Account: Lokales System
ModuleType Name                      ExportedCommands                          
---------- ----                      ----------------                          
Manifest   BitsTransfer              {}                                        
Manifest   PSDiagnostics             {}                                        
Manifest   TroubleshootingPack       {}                                        

Account: Administrator
ModuleType Name                      ExportedCommands                          
---------- ----                      ----------------                          
Manifest   ADRMS                     {}                                        
Manifest   AppLocker                 {}                                        
Manifest   BestPractices             {}                                        
Manifest   BitsTransfer              {}                                        
Manifest   FailoverClusters          {}                                        
Manifest   PSDiagnostics             {}                                        
Manifest   ServerManager             {}                                        
Manifest   TroubleshootingPack       {}         

Die Module sind jedoch unter C:\Windows\System32\WindowsPowerShell\v1.0\Modules vorhanden und sollten für den den User Lokales System ersichtlich sein.

Das wechseln des Service User, des Dienstes auf Administrator hat nichts gebracht:

Es gibt nur eine kleinen Unterschied, die Umgebungsvariable $env:PSModulePath wird leicht anders dargestellt:

Administrator:
C:\Users\administrator.FRAG\Documents\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules\

Lokales System:
WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules\

Vielen Dank und Freundliche Grüsse

Stefan

Content-Key: 174675

Url: https://administrator.de/contentid/174675

Ausgedruckt am: 28.03.2024 um 20:03 Uhr

Mitglied: stefanwey
stefanwey 14.10.2011 um 14:40:31 Uhr
Goto Top
Das Probelm des Ganzen sache war, das Powershell als ChildProzess auch 32bit verwendet(für den Import wird 64bit gebraucht).

Folgendes funktioniert nicht:
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe  
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

Powershell über folgende Konsole ausführen und es Funktioniert :

C:\Windows\Sysnative\WindowsPowerShell\v1.0\powershell.exe