¿Se puede usar PowerShell dentro del entorno de recuperación de Windows?

10

He intentado acceder a PowerShell desde el símbolo del sistema en el entorno de recuperación de Windows sin éxito. Puedo ejecutar VBScripts allí sin problemas, y ahora me pregunto si también hay alguna forma de ejecutar mis comandos de PowerShell desde allí.

¿Se puede usar PowerShell dentro de WinRE, o estoy atascado con el soporte de VBScript / JScript en el mejor de los casos?

¡Tenga en cuenta que se trata de WinRE y no de WinPE!

EDITAR

EBGreen había comentado acerca de agregar componentes adicionales a WinPE que permitirían el uso de PowerShell dentro de ese entorno. ¿Se podría tomar el mismo enfoque con WinRE?

Riaan
fuente
Puede iniciar powershell desde la línea de comandos start powershelldesde el símbolo del sistema. ¿Funciona esto en WinRE?
George Duckett
He intentado ambos start powershelly powershelldesde el símbolo del sistema WinRE sin éxito, dice que son comandos desconocidos. Sin embargo, funcionan bien en Windows. Me pregunto si esto tiene algo que ver con la dependencia de PowerShell en .Net
Riaan
Ok, sugerencia final, intente navegar al PowerShell Exe y ejecutarlo. Desde aquí, Path to Powershell.exe (v 2.0) Supongo que será algo así, C:\Windows\System32\WindowsPowerShell\v1.0pero es posible que primero deba buscar en Windows.
George Duckett
Inicialmente intenté ejecutar el powershellcomando desde su directorio sin éxito. Tuve el mismo resultado que George Duckett a continuación.
Riaan

Respuestas:

7

Puede hacer esto, pero necesitará una instalación de Windows 8 y el ADK de Windows 8 con Windows PE (es una descarga bastante grande). Estoy bastante seguro de que puede usar esta imagen de Win RE en una instalación de Windows 7 una vez que la ponga en marcha, pero no estoy 100% seguro.

Hay algunas otras formas en que puede lograr esto, incluida la creación de una imagen de Windows PE con las herramientas del entorno de recuperación instaladas, pero este es probablemente el método más fácil y dará como resultado que PowerShell esté disponible cada vez que su máquina ingrese al entorno de recuperación vs. tener que arrancar usando medios extraíbles.

Encuentra tu WinRE.wim

Usé todo para encontrar el mío. Resultó estar escondido en C:\Recovery\67c45205-df4a-11e1-8fd9-9103ad6af7ef. Esto también puede ser cierto para usted. Para echar un vistazo, tendrás que desactivar Hide Protected System Files. Esta configuración está al acecho en Explorer bajoView, Options, Change Folder and Search Options, View tab.

Mostrar las golosinas

Cambiar los permisos

Tendrá que meterse con los permisos para ver incluso los permisos en esta carpeta. Jugar con los permisos siempre se pone un poco nervioso, pero sigue adelante si te atreves. Simplemente agregué mi nombre de usuario a los permisos de seguridad con control total.

Haga clic derecho en Recuperación, seleccione propiedades

Propiedades abiertas

Abra la pestaña Seguridad

Haga clic en la pestaña de seguridad

Haga clic en avanzado

Ya sabes, si necesitas tanta ayuda, probablemente no deberías estar haciendo esto en realidad ...

Haga clic en Agregar

Jugar con los permisos de seguridad puede causar serios dolores

Seleccionar director

Pero las capturas de pantalla son divertidas y me dan toda la representación

Agregue su nombre de usuario (o administrador si desea trabajar con él como administrador)

¡Ahora sabes mi verdadero nombre súper secreto, zomg!

Copiar WinRE.wim

Elegí copiar el .wim para poder trabajar con él, pero supongo que también podrías trabajar con él directamente. Si elige trabajar con él directamente, modifique el comando adecuadamente. Copié el mío a C:\winre\.

Agregar PowerShell a la imagen

Ahora que tenemos un .wim para trabajar, podemos agregar los componentes necesarios para PowerShell. Necesitará los componentes apropiados de Windows ADK, incluido Windows PE.

Monta la imagen

Encuentre herramientas de implementación e imágenes, haga clic derecho y ejecútelo como administrador

En serio, si no puedes encontrar esto por tu cuenta, regresa ahora

Crea una carpeta para montar la imagen

Al menos no dejo que la gente copie y pegue estas cosas

Ejecute este comando para montar la imagen: ¡Las capturas de pantalla son excelentes para evitar copiar y pegar!

Agregue los paquetes requeridos

Hay un poco de un lado a otro implicado en los siguientes comandos, y las cosas tienen que ser hecho en orden. Necesitamos instalar los siguientes paquetes:

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

También tendremos que instalar paquetes en-us (sustituto de su idioma preferido) para cada uno de los paquetes anteriores.

Comience con esto:

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

Entonces ejecuta esto:

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

Ahora presione Updos veces para recuperar el primer comando y reemplace WMI con NetFX4. Repita esto hasta que haya instalado todos los componentes necesarios junto con el idioma requerido. Recuerda hacer esto en orden.

Termina la imagen

Ahora que todos los paquetes están en su lugar, necesitamos confirmar nuestros cambios y finalizar nuestro WinRE.wim. Desde allí podemos construir un .iso, probarlo en Hyper-V y copiar el WinRE.wim a nuestro archivo de recuperación para que tengamos acceso a PowerShell la próxima vez que el sistema se bloquee.

Desmontar y comprometer

Ejecute el siguiente comando para desmontar la imagen y confirmar los cambios: El comando anterior apestaba a escribir, así que dejaré que C + P se deslice sobre ese ...

Varias cosas pueden salir mal aquí, y los mensajes de error son terriblemente engañosos. Asegúrese de que no haya errores tipográficos y que no tenga nada abierto relacionado con estos archivos, ni siquiera Explorer.

Reemplace WinRE.wim original y pruebe

Haga una copia de seguridad de su WinRE.wim original y reemplácelo con el nuevo. Ahora ejecute msconfig y abra la pestaña Arranque. Verificar Safe Booty seleccionar Alternate Shell. Reinicia y pruébalo.

TROLOLOL ¡Estás atrapado en un arranque seguro ahora!  Reinicié tres veces antes de darme cuenta de que esta configuración se mantiene ...

¡Auge! PowerShell en Windows RE

Start PowerShell ¡y disfrutar!

Ahh, la hermosa PowerShell azul ... Dulce victoria.

Para salir del modo seguro, deberá ejecutar msconfig desde la línea de comandos y desmarcar el Arranque seguro.

Tanner Faulkner
fuente
1
lento ... aplauso
William Jackson
Gracias por la extensa respuesta, Tanner! Esto es exactamente lo que necesitaba.
Riaan
1
En caso de que su imagen WinRE esté en una de esas particiones de recuperación de OEM, puede usar Visual BCD Editor para echar un vistazo a la entrada de inicio de Recuperación y encontrar la ruta a la imagen.
Bob
1
7 años después, en "PE for win10" esto todavía es bastante válido, pero los paquetes fueron renombrados, bajando los números. Use en WinPE-PowerShelllugar de WinPE-PowerShell3y WinPE-NetFXen lugar de WinPE-NetFX4. En WinPE-HTArealidad, nunca fue necesario e incluso no está relacionado con PS. No lo agregue si no ejecuta las aplicaciones HTA. StorageWMI y DismCmdlets son módulos para PS, no los necesita si no los necesita. Sustituyen diskpart y dism. La guía oficial de EM
papo
2
  1. Windows PowerShell requiere Microsoft .NET Framework. [ fuente ]
  2. El entorno de recuperación de Windows se basa en Windows PE. [ fuente ]
  3. Windows PE no es compatible con .NET Framework. [ fuente ]

Por lo tanto, PowerShell no se puede usar en WinRE.

William Jackson
fuente
Sí, pensé que probablemente se debía a esas dependencias de MS.Net. Esta respuesta es definitivamente válida para instalaciones predeterminadas no modificadas. Gracias William!
Riaan
0

Bien, probé muchas cosas y llegué a la conclusión de que no funcionará. La respuesta de William proporciona evidencia para respaldar esto.


Tomé nota de dónde está PowerShell. En mi máquina está adentro c:\windows\system32\windowspowershell\v1.0\powershell.exey adentro c:\windows\syswow64\windowspowershell\v1.0\powershell.exe.

El acceso directo en las herramientas administrativas apunta al syswow64.

Luego reinicié en modo de recuperación y llegué al símbolo del sistema.

Lo primero que noté es que no puedo llegar al cdisco.

Entonces, ejecuté y diskpartluego ingresé el comando list volpara obtener una lista de unidades disponibles. En mi máquina, mi unidad C se llamaba mi unidad D en la consola de recuperación.

Así que salí diskpartescribiendo exit, luego escribí en la consola de comandos d:, seguido de cd\windows\syswow64\windowspowershell\v1.0.

Tenga en cuenta que si lo hace en etapas, dirpara confirmar los nombres de las carpetas no muestra todo (es decir, la v1.0carpeta).

Una vez allí, crucé los dedos y escribí powershell, solo para recibir el mensaje:

The subsystem needed to support the image type is not present

Busqué en Google el mensaje de error anterior por un momento, pero no pude encontrar nada que indicara que Powershell podría funcionar.


También probé el otro powershell.exe en system32 pero no recibí ningún mensaje ( didn't recognise the commandni nada ni nada.

ingrese la descripción de la imagen aquí

George Duckett
fuente
Esto no funciona Gracias George
Riaan