Ich habe ein Powershell-Skript, das innerhalb der Powershell-ISE ausgeführt und kompiliert wird. Allerdings muss ich es in eine EXE komprimieren, damit die Benutzer, die meine Anwendung verwenden, es leicht öffnen können. Um dies zu tun, habe ich gefunden, dass ich entweder Primalcript oder Primalforms verwenden sollte. Das Problem besteht darin, dass bestimmte Cmdlets Fehlermeldungen bei einem dieser beiden Programme ausgeben, wenn ich versuche, das Skript auszuführen.Premalscript/Primalforms erkennt keine Powershell-Cmdlets
Zum Beispiel die Zeile:
$freeRam = Get-CimInstance -ClassName win32_operatingsystem |
Select-Object -expand FreePhysicalMemory
gibt diese in PrimalScript:
ERROR: Get-CimInstance : The term 'Get-CimInstance' 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:\Users\sieredzkian\Desktop\New folder\User_Launched_Application_3.ps1:166 char:31 + $freeRam = Get-CimInstance <<<< -ClassName win32_operatingsystem | Select-Object -expand FreePhysicalMemory + CategoryInfo : ObjectNotFound: (Get-CimInstance:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException
Während in Powershell es läuft ...
Warum kann es nicht die Cmdlets finden? Es tut dies auch für ein paar andere Cmdlets wie Out-GridView
EDIT: Mein ursprüngliches Problem wurde durch die Verwendung von primalscript 2011 verursacht, wo nur Powershell V2 unterstützt wurde. Ich konnte das beheben, indem ich die Testversion von primalscript 2016 installierte. Dies ermöglichte mir, powershell V3 zu verwenden, wie ich es in der ISE verwendete.
Haben Sie eine Powershell-Versionspräferenz festgelegt? Primalscript (2016) sollte Code bis Powershell v5 kompilieren. – Martin