AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1652170
Accepted
LPChip
LPChip
Asked: 2021-05-29 04:38:24 +0800 CST2021-05-29 04:38:24 +0800 CST 2021-05-29 04:38:24 +0800 CST

O Powershell ISE congela durante a execução do script se a conexão RDP for perdida

  • 772

Eu tenho um script powershell que depende do ISE (não funciona direito no console normal) devido ao uso de formulários.

Quando o script é executado, às vezes pode levar até 10 minutos para que o script seja concluído. No entanto, isso não é realmente um problema... Mas se o Powershell ISE estiver aberto e a conexão RDP for perdida (por exemplo, outro usuário se conectar à sessão), o PowerShell ISE não responderá e o script não funcionará mais. Eu tive o mesmo no meu computador local com instâncias diferentes. Por exemplo, se eu bloquear meu pc, isso também acontece.

Estranhamente, ainda posso clicar com o botão direito do mouse na entrada da barra de tarefas do powershell ISE e obter o pop-up. Eu posso fechar daqui bem, mesmo que o [x] não funcione mais. Se eu fechar dessa forma e o script tiver alterações nele, o Powershell ISE me perguntará se quero salvar minhas alterações e o fará, mas qualquer outra forma de interação parece impossível.

Alguém sabe o que posso fazer para corrigir o problema? Existe alguma maneira de atualizar o PowerShell ISE?

O servidor é o Windows Server 2016, meu pc é o Windows 10 Pro x64 v2004

powershell
  • 1 1 respostas
  • 974 Views

1 respostas

  • Voted
  1. Best Answer
    postanote
    2021-05-29T13:32:10+08:002021-05-29T13:32:10+08:00

    Quanto a isso...

    Eu tenho um script powershell que depende do ISE (não funciona direito no console normal) devido ao uso de formulários.

    O PowerShell.exe não pode exibir formulários nativamente, por design. Para poder exibir o formulário, precisamos adicionar uma linha de código no topo do nosso script para dar suporte à renderização do formulário WinForm/WPF.

    O ISE usa powershell_ise.exe, não powershell.exe ou pwsh.exe (PowerShell Core).

    Seu código UX/UI nunca deve depender de um editor de código para ser executado.

    Add-Type -AssemblyName  Microsoft.VisualBasic,
                            PresentationCore,
                            PresentationFramework,
                            System.Drawing,
                            System.Windows.Forms,
                            WindowsBase,
                            WindowsFormsIntegration
    
    [System.Windows.Forms.Application]::EnableVisualStyles()
    

    Isso está bem documentado nos arquivos de ajuda do PowerShell, em toda a web. O ISE carrega automaticamente módulos/namespaces UX/UI, o host do console não.

    Você não precisa de tudo na lista dependendo do que está fazendo na implementação de UX/UI/Form.

    No entanto, não prejudica / impacta em nada carregar todos os itens acima e garante a flexibilidade que cada um traz. Veja os documentos de cada um deles.

    Quanto a isso...

    Quando o script é executado, às vezes pode levar até 10 minutos para que o script seja concluído

    ... este não é um problema de UX/UI, é nosso código de back-end e levaria muito tempo, se você tivesse um UX/UI ou não.

    Quanto a isso...

    Mas se o Powershell ISE estiver aberto e a conexão RDP for perdida (por exemplo, outro usuário se conectar à sessão), o PowerShell ISE não responderá

    ... se o seu código de back-end parar/travar, então sua UX/UI não tem ideia do que está acontecendo e espera que seu código de back-end diga a ele para fazer algo. UX/UI não é um monitor de código e não tem ideia do que seu código de back-end está fazendo. UX/UI é apenas uma exibição de resultados. Se não obtiver uma ação/evento para responder, ele será bloqueado, por design. Além disso, por padrão, o logon do RDS/RDP em um servidor não é mais do que duas conexões por vez, o que inclui o console. Portanto, a menos que você compre e implante uma licença RDS completa por licença de conexão necessária, você ficará preso ao que vê.

    O ISE (ou outro editor de código) é um editor/designer para seus scripts, não a execução de seu script. Embora você possa testar seu código lá, isso é para fins de depuração, não para produção.

    Você escreve o código no ISE/VSCode, etc., mas seu ambiente de execução/execução de destino é o host do console. Nenhum usuário deve ter que abrir um editor de código para executar seu código.

    Quanto a isso...

    Alguém sabe o que posso fazer para corrigir o problema? Existe alguma maneira de atualizar o PowerShell ISE?

    ...

    1. Não execute este código no ISE, a menos que você o esteja projetando/depurando/testando?
    2. Adicione o namespace UX/UI à parte superior do seu script.
    3. Não há atualização do ISE. De acordo com o MS, a versão atual do Windows PowerShell 5x e o ISE associado são depreciados. Ou seja, não há mais trabalho em nenhum deles, além de correções de bugs/segurança.

    A MS afirmou que, embora não haja mais trabalho no PowerShell v5x e no ISE; O WinPS e o ISE serão o que são hoje e estarão em versões completas do OS/.Net no futuro próximo. Assim, aqueles que preferem PSv5 e ISE podem continuar usando.

    Roteiro do PowerShell 6.0: CoreCLR, retrocompatibilidade e muito mais!

    ***Futuro do Windows PowerShell

    O Windows PowerShell 5.1, muito parecido com o .NET Framework 4.x, continuará sendo > um componente interno com suporte do Windows 10 e do Windows Server 2016.

    No entanto, provavelmente não receberá atualizações de recursos importantes ou correções de bugs de prioridade menor***.

    Com > PowerShell Core, estamos abordando ativamente os bugs que podem ter existido em versões anteriores do Windows PowerShell. Estamos até abertos a contribuições para que essas correções de bugs possam ser feitas por membros de nossa comunidade.

    Não há alterações nos ciclos de suporte para a versão de envio do Windows Management Framework (WMF).

    Assim, todo esforço no PowerShell Core multiplataforma (atualmente conhecido como PowerShell v7 para Windows/OSX/Linux).

    Não há ISE para PowerShell Core. O editor do núcleo do PowerShell é o Visual Studio Code e, para usar o PowerShell com o VSCode, você precisa instalar a extensão do PowerShell.

    bem, você pode realmente usar o ISE com Powershell Core, via PowerShell RunSpaces, se desejar. Veja como:

    https://old.ironmansoftware.com/using-powershell-core-6-and-7-in-the-windows-powershell-ise

    No entanto, com o VSCode, você pode ter vários shells abertos no mesmo editor ao mesmo tempo, o que tem suas vantagens.

    YouTube

    'PowerShell para VSCode' https://www.youtube.com/results?search_query=powershel+for+vscode

    Ainda assim, nenhuma das opções acima evita a necessidade do namespace da GUI ou de outras referências em seus scripts. Você sempre deve usá-los em qualquer editor de código que esteja usando por padrão quando estiver usando coisas de UX/UI.

    Por fim, para scripts de longa duração, você deve realmente analisar o uso de trabalhos em segundo plano do PowerShell.

    'Scripts de longa execução do PowerShell Jobs'

    https://duckduckgo.com/?q=%27powershell+jobs+long+running+scripts%27&t=h_&ia=web

    • 2

relate perguntas

  • Como colocar string variável em array no powershell?

  • Powershell e regex: lista de arquivos "backup ao salvar" do Notepad ++. Editar nome, classificar por lastwritetime

  • Adicionando cor de primeiro plano ao perfil do Powershell?

  • Não é possível ativar o Microsoft Print to PDF depois de desativado

  • Posso fazer com que este script do PowerShell aceite vírgulas?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 Por que uma conexão de Internet gigabit/s via cabo (coaxial) não oferece velocidades simétricas como fibra? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve