Diferença entre o Console do PowerShell e o PowerShell ISE
-
21-12-2019 - |
Pergunta
Quais são as diferenças entre o Console do PowerShell e o PowerShell ISE.Estou fazendo esta pergunta no contexto de Perfis no PowerShell.Porque o PowerShell Console e o PowerShell ISE têm perfis diferentes.
Solução
De Diferenças entre o console ISE e o PowerShell:-
Suporte limitado para aplicativos de console interativo, tente cmd.exe e, em seguida, tente cmd.exe /k
a) cmd.exe /c dir ainda funciona e mais informações estão disponíveis aqui http://blogs.msdn.com/powershell/archive/2009/02/04/console-application-non-support-in-the-ise.aspx
A saída do aplicativo de console não é colorida
STA por padrão
a) Experimente $host.Runspace.ApartmentState
b) powershell é MTA por padrão (ApartmentState aparece como Unknown), mas pode ser iniciado no modo sta com powershell -sta.
c) ISE é sempre STA
Nenhum suporte para a classe [console], tente [console] :: BackgroundColor = 'White'.
a) Em geral, os scripts devem usar a API do host (host de gravação, em vez da classe [console], para que eles trabalhem no console, ISE, remoto e outras conchas.
Suporte limitado (quase zero) em $host.UI.RawUI.Só apoiamos as cores e o título
a) As cores são melhor definidas em $psISE.Options, porque você pode defini-las para qualquer cor, não apenas para as cores do console
Personalizado/muito simples mais.Veja a função gc:mais
a) O ISE não possui pager
Start-Transcript não funciona no ISE
Algumas diferenças de cultura de thread
a) Se você estiver em uma cultura não console (por exemplo, árabe), o ISE terá a cultura como AR-SA, e PowerShell.exe terá a cultura como en-US (ou algum outro retorno)
Sugestões não funcionam no ISE
a) Por exemplo, em C:\Arquivos de Programas\Internet Explorer" se você executar iexplore.exe
b) Você só verá isso na sugestão do PowerShell.exe [3,Geral]:O comando iexplore.exe não foi encontrado, mas existe no local atual.Windows PowerShe LL não carrega comandos do local atual por padrão.Se você confia nesse comando, digite ". Iexplore.exe".
Consulte "get-help about_Command_Precedence" para obter mais detalhes.
O ISE executa um perfil diferente
a) O perfil ISE está em Microsoft.PowerShellISE_profile.ps1 e o powershell está em 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) Você pode usar o perfil comum, armazenado em $profile.CurrentUserAllHosts para fazê-lo rodar em ambos os shells
Somente o ISE tem $psISE
a) tem acesso a http://psisecream.codeplex.com/, e http://blogs.msdn.com/powershell/archive/2008/12/29/powershell-ise-can-do-a-lot-more-than-you-think.aspx