Unterschied zwischen PowerShell Console und PowerShell ISE
-
21-12-2019 - |
Frage
Was sind die Unterschiede zwischen PowerShell Console und PowerShell ISE?Ich stelle diese Frage im Zusammenhang mit Profilen in PowerShell.Weil PowerShell Console und PowerShell ISE beide unterschiedliche Profile haben.
Lösung
Aus Unterschiede zwischen der ISE- und der PowerShell-Konsole:-
Begrenzte Unterstützung für interaktive Konsolen -Apps, probieren Sie CMD.exe und versuchen Sie es mit CMD.exe /k
a) cmd.exe /c dir funktioniert jedoch immer noch, weitere Informationen finden Sie hier http://blogs.msdn.com/powershell/archive/2009/02/04/console-application-non-support-in-the-ise.aspx
Die Ausgabe der Konsolenanwendung ist nicht farbenfroh
Standardmäßig STA
a) Versuchen Sie es mit $host.Runspace.ApartmentState
b) Powershell ist standardmäßig MTA (ApartmentState wird als „Unbekannt“ angezeigt), kann aber im Sta-Modus mit Powershell -sta gestartet werden.
c) ISE ist immer STA
Keine Unterstützung für die [Konsole] -Klasse, versuchen Sie [Konsole] :: BackgroundColor = 'White'.
A) Im Allgemeinen sollten Skripte die Host-API (Schreibhost anstelle der [Konsolen] -Klasse verwenden, damit sie sowohl in der Konsole, ISE, Remoting als auch in anderen Shells arbeiten.
Eingeschränkte (nahe Null) Unterstützung für $host.UI.RawUI.Wir unterstützen nur die Farben und den Titel
a) Die Farben werden besser in $psISE.Options eingestellt, da Sie diese auf jede beliebige Farbe einstellen können, nicht nur auf Konsolenfarben
Individuell/einfach mehr.Siehe gc-Funktion:mehr
a) Die ISE verfügt über keinen Pager
Start-Transcript funktioniert in der ISE nicht
Einige Unterschiede in der Thread-Kultur
a) Wenn Sie sich in einer nicht konsolen unterstützten Kultur (z. B. Arabisch) befinden, hat ISE die Get-Kultur als AR-SA, und Powershell.exe wird als En-US (oder einen anderen Fallback) eine Kartkultur haben (oder einen anderen Fallback)
Vorschläge funktionieren in der ISE nicht
a) Zum Beispiel in „C:\Programme\Internet Explorer“, wenn Sie iexplore.exe ausführen
b) Sie sehen dies nur in PowerShell.exe. Vorschlag [3, Allgemein]:Der Befehl iexplore.exe wurde nicht gefunden, existiert aber am aktuellen Ort.Windows Powershe LL lädt die Befehle nicht standardmäßig vom aktuellen Standort.Wenn Sie diesem Befehl vertrauen, geben Sie stattdessen ". Iexplore.exe" ein.
Weitere Einzelheiten finden Sie unter „get-help about_Command_Precedence“.
Die ISE führt ein anderes Profil aus
a) Das ISE-Profil befindet sich in Microsoft.PowerShellISE_profile.ps1 und Powershell befindet sich in Microsoft.PowerShell_profile.ps1
B) http://msdn.microsoft.com/en-us/library/bb613488(VS.85).aspx
C) http://www.leeholmes.com/blog/TheStoryBehindTheNamingAndLocationOfPowerShellProfiles.aspx
d) Sie können das in $profile.CurrentUserAllHosts gespeicherte gemeinsame Profil verwenden, um es in beiden Shells auszuführen
Nur die ISE verfügt über $psISE
a) Es erhält Zugriff auf http://psisecream.codeplex.com/, Und http://blogs.msdn.com/powershell/archive/2008/12/29/powershell-ise-can-do-a-lot-more-than-you-think.aspx