O PowerShell pode ser usado no ambiente de recuperação do Windows?

10

Tentei acessar o PowerShell no prompt de comando no ambiente de recuperação do Windows sem êxito. Eu sou capaz de executar VBScripts lá sem problemas e agora estou pensando se há alguma maneira de executar meus comandos do PowerShell a partir daí.

O PowerShell pode ser usado no WinRE ou estou com o suporte do VBScript / JScript na melhor das hipóteses?

Observe que se trata do WinRE e não do WinPE!

EDITAR

A EBGreen comentou sobre a adição de componentes adicionais ao WinPE que permitiriam o uso do PowerShell dentro desse ambiente. A mesma abordagem poderia ser adotada com o WinRE?

Riaan
fonte
Você pode iniciar o PowerShell na linha de comando com start powershello prompt de comando. Isso funciona no WinRE?
George Duckett
Eu tentei os dois start powershelle powershellno prompt de comando do WinRE sem sucesso - diz que esses são comandos desconhecidos. Eles funcionam bem no Windows. Eu me pergunto se isso tem alguma coisa a ver com a dependência do PowerShell em .Net
Riaan
Ok, sugestão final, tente navegar para o exe do PowerShell e executá-lo. A partir daqui, Path to Powershell.exe (v 2.0) Acho que será algo parecido, C:\Windows\System32\WindowsPowerShell\v1.0mas talvez você precise pesquisar primeiro no Windows.
George Duckett
Inicialmente, tentei executar o powershellcomando a partir do diretório sem sucesso. Eu tive o mesmo resultado que George Duckett abaixo.
Riaan #

Respostas:

7

Você pode fazer isso, mas precisará de uma instalação do Windows 8 e do Windows 8 ADK com Windows PE (é um download bastante grande). Estou bastante certo de que você pode usar esta imagem do Win RE em uma instalação do Windows 7 depois de executá-la, mas não tenho 100% de certeza.

Existem algumas outras maneiras pelas quais você pode conseguir isso, incluindo a criação de uma imagem do Windows PE com as ferramentas do ambiente de recuperação instaladas, mas esse provavelmente é o método mais fácil e fará com que o PowerShell esteja disponível sempre que sua máquina entrar no ambiente de recuperação. tendo que inicializar usando mídia removível.

Encontre o seu WinRE.wim

Eu usei Tudo para encontrar o meu. Por acaso estava escondido C:\Recovery\67c45205-df4a-11e1-8fd9-9103ad6af7ef. Isso pode ser verdade para você também. Para dar uma olhada, você terá que desativar Hide Protected System Files. Essa configuração está oculta no Explorer emView, Options, Change Folder and Search Options, View tab.

Mostrar os presentes

Alterar as permissões

Você precisará mexer nas permissões para até mesmo ver as permissões nessa pasta. Mexer nas permissões sempre deixa um pouco nervoso, mas siga em frente se tiver coragem. Eu simplesmente adicionei meu nome de usuário às permissões de segurança com controle total.

Clique com o botão direito do mouse em Recuperação, selecione propriedades

Propriedades abertas

Abra a guia Segurança

Clique na guia segurança

Clique em Avançado

Sabe, se você precisar de tanta ajuda, provavelmente não deveria estar fazendo isso na verdade ...

Clique em Adicionar

Mexer com permissões de segurança pode causar sérias dores

Selecionar Principal

Mas as capturas de tela são divertidas e me dão todo o rep

Adicione seu nome de usuário (ou administrador, se você quiser trabalhar com ele como administrador)

Agora você sabe meu nome verdadeiro super secreto, zomg!

Copiar WinRE.wim

Decidi copiar o .wim para poder trabalhar com ele, mas suponho que você também pudesse trabalhar diretamente com ele. Se você optar por trabalhar diretamente com ele, modifique o comando adequadamente. Eu copiei o meu para C:\winre\.

Adicione o PowerShell à imagem

Agora que temos um .wim para trabalhar, podemos adicionar os componentes necessários para o PowerShell. Você precisará dos componentes apropriados do Windows ADK, incluindo o Windows PE.

Monte a imagem

Encontre Ferramentas de Implantação e Criação de Imagens, clique com o botão direito do mouse e execute como Administrador

Sério, se você não conseguir encontrar isso por conta própria, volte agora

Crie uma pasta para montar a imagem

Pelo menos eu não estou permitindo que as pessoas copiem e colem essas coisas

Execute este comando para montar a imagem: As capturas de tela são ótimas para evitar copiar e colar!

Adicione os pacotes necessários

Há um pouco de ir e vir nos comandos a seguir, e as coisas precisam ser feitas em ordem. Precisamos instalar os seguintes pacotes:

  • WinPE-WMI
  • WinPE-NetFX4
  • Script WinPE
  • WinPE-PowerShell3
  • WinPE-DismCmdlets
  • WinPE-StorageWMI
  • WinPE-HTA

Também teremos de instalar pacotes en-us (substitua o seu idioma preferido) para cada um dos pacotes acima.

Comece com isso:

dism /image:C:\winre\mount /add-package /packagepath:"C:\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-WMI.cab

Em seguida, execute o seguinte:

dism /image:C:\winre\mount /add-package /packagepath:"C:\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\en-us\WinPE-WMI_en-us.cab

Agora pressione Upduas vezes para recuperar o primeiro comando e substitua o WMI pelo NetFX4. Repita isso até ter instalado todos os componentes necessários, juntamente com o idioma necessário. Lembre-se de fazer isso em ordem.

Termine a imagem

Agora que todos os pacotes estão no lugar, precisamos confirmar nossas alterações e finalizar nosso WinRE.wim. A partir daí, podemos criar um .iso, testá-lo no Hyper-V e copiar o WinRE.wim para o nosso arquivo de recuperação, para que tenhamos acesso ao PowerShell na próxima vez que o sistema travar.

Desmontar e confirmar

Execute o seguinte comando para desmontar a imagem e confirmar as alterações: O comando acima sugou para digitar, então eu vou deixar C + P deslizar sobre esse ...

Várias coisas podem dar errado aqui, e as mensagens de erro são terrivelmente enganosas. Verifique se não há erros de digitação e se nãonada aberto relacionado a esses arquivos, nem mesmo ao Explorer.

Substitua o WinRE.wim original e teste

Faça um backup do seu WinRE.wim original e substitua-o pelo novo. Agora execute o msconfig e abra a guia Boot. Marque Safe Boote selecione Alternate Shell. Reinicie e tente.

TROLOLOL Você está preso na inicialização segura agora!  Reiniciei três vezes antes de perceber que essa configuração fica ...

Estrondo! PowerShell no Windows RE

Start PowerShell e aproveitar!

Ahh, o lindo PowerShell azul ... Doce vitória.

Para sair do modo de segurança, você precisará executar o msconfig na linha de comando e desmarcar a Inicialização segura.

Tanner Faulkner
fonte
1
lento ... aplauso
William Jackson
Obrigado pela resposta extensa, Tanner! Isso é exatamente o que eu precisava.
Riaan
1
Caso sua imagem do WinRE esteja em uma dessas partições de recuperação OEM, você pode usar o Visual BCD Editor para dar uma olhada na entrada de inicialização Recovery e encontrar o caminho para a imagem.
29412 Bob
1
Sete anos depois, no "PE for win10", isso ainda é bastante válido, mas os pacotes foram renomeados, diminuindo os números. Use em WinPE-PowerShellvez de WinPE-PowerShell3e WinPE-NetFXno lugar de WinPE-NetFX4. Na WinPE-HTAverdade, nunca foi necessário e nem mesmo está relacionado ao PS. Não o adicione se você não executar o HTA Apps. StorageWMI e DismCmdlets são módulos para PS; você não precisa deles se não precisar deles. Eles substituem diskpart e dism. O guia oficial do MS
papo
2
  1. O Windows PowerShell requer o Microsoft .NET Framework. [ fonte ]
  2. O Ambiente de Recuperação do Windows é baseado no Windows PE. [ fonte ]
  3. O Windows PE não oferece suporte ao .NET Framework. [ fonte ]

Portanto, o PowerShell não pode ser usado no WinRE.

William Jackson
fonte
Sim, eu pensei que era provavelmente por causa dessas dependências do MS.Net. Esta resposta é definitivamente válida para instalações padrão não modificadas. Obrigado William!
Riaan
0

Certo, tentei muitas coisas e cheguei à conclusão de que não vai funcionar. A resposta de William fornece evidências para apoiar isso.


Anotei onde está o PowerShell. Na minha máquina está dentro c:\windows\system32\windowspowershell\v1.0\powershell.exee dentro c:\windows\syswow64\windowspowershell\v1.0\powershell.exe.

O atalho nas ferramentas administrativas aponta para o syswow64.

Eu então reiniciei no modo de recuperação e cheguei ao prompt de comando.

A primeira coisa que notei é que não consigo cacessar a unidade.

Então, corri diskparte digitei o comando list volpara obter uma lista de unidades disponíveis. Na minha máquina, minha unidade C foi chamada de unidade D no console de recuperação.

Então eu saí diskpartdigitando e exit, no console de comando d:, digitei , seguido por cd\windows\syswow64\windowspowershell\v1.0.

Observe que, se você fizer isso por etapas, usar dirpara confirmar os nomes das pastas não mostrará tudo (a v1.0pasta).

Uma vez lá, cruzei os dedos e digitei powershell, apenas para receber a mensagem:

The subsystem needed to support the image type is not present

Pesquisei a mensagem de erro acima por um tempo, mas não consegui encontrar nada que indicasse que o PowerShell pudesse funcionar.


Eu também tentei o outro powershell.exe no system32, mas não recebi nenhuma mensagem (nada didn't recognise the commandou nada).

insira a descrição da imagem aqui

George Duckett
fonte
Isso não funciona. Obrigado George.
Riaan