PowerShell peut-il être utilisé dans l'environnement de récupération Windows?

10

J'ai essayé d'accéder à PowerShell à partir de l'invite de commandes dans l'environnement de récupération Windows sans succès. Je peux y exécuter des VBScripts sans problème et je me demande maintenant s'il existe un moyen d'exécuter mes commandes PowerShell à partir de là également.

PowerShell peut-il être utilisé dans WinRE, ou suis-je coincé au mieux avec le support VBScript / JScript?

Veuillez noter qu'il s'agit de WinRE et non de WinPE!

ÉDITER

EBGreen avait commenté l' ajout de composants supplémentaires à WinPE qui permettraient l'utilisation de PowerShell dans cet environnement. La même approche pourrait-elle être adoptée avec WinRE?

Riaan
la source
Vous pouvez démarrer powershell à partir de la ligne de commande à start powershellpartir de l'invite de commande. Est-ce que cela fonctionne dans WinRE?
George Duckett
J'ai essayé les deux start powershellet à powershellpartir de l'invite de commandes WinRE sans succès - dit que ce sont des commandes inconnues. Ils fonctionnent bien dans Windows cependant. Je me demande si cela a quelque chose à voir avec la dépendance de PowerShell sur .Net
Riaan
Ok, dernière suggestion, essayez de naviguer vers l'exe PowerShell et de l'exécuter. À partir d'ici, Path to Powershell.exe (v 2.0) Je suppose que ça va ressembler à quelque chose, C:\Windows\System32\WindowsPowerShell\v1.0mais vous devrez peut-être d'abord rechercher dans Windows.
George Duckett
J'avais d'abord essayé d'exécuter la powershellcommande à partir de son répertoire sans succès. J'ai eu le même résultat que George Duckett ci-dessous.
Riaan

Réponses:

7

Vous pouvez le faire, mais vous aurez besoin d'une installation de Windows 8 et de Windows 8 ADK avec Windows PE (c'est un téléchargement assez important). Je suis assez certain que vous pouvez utiliser cette image Win RE sur une installation de Windows 7 une fois que vous l'avez lancée, mais je ne suis pas sûr à 100%.

Il existe plusieurs autres moyens pour y parvenir, notamment la création d'une image Windows PE avec les outils d'environnement de récupération installés, mais c'est probablement la méthode la plus simple et entraînera la disponibilité de PowerShell chaque fois que votre machine entre dans l'environnement de récupération. avoir à démarrer à l'aide d'un support amovible.

Trouvez votre WinRE.wim

J'ai utilisé Tout pour trouver le mien. C'était caché C:\Recovery\67c45205-df4a-11e1-8fd9-9103ad6af7ef. Cela peut aussi être vrai pour vous. Pour y jeter un œil, vous devrez désactiver Hide Protected System Files. Ce paramètre se cache dans l'Explorateur sousView, Options, Change Folder and Search Options, View tab.

Afficher les goodies

Modifier les autorisations

Vous devrez jouer avec les autorisations pour voir même les autorisations sur ce dossier. Jouer avec des autorisations rend toujours un peu nerveux, mais allez-y si vous osez. J'ai simplement ajouté mon nom d'utilisateur aux autorisations de sécurité avec un contrôle total.

Cliquez avec le bouton droit sur Récupération, sélectionnez les propriétés

Propriétés ouvertes

Ouvrez l'onglet Sécurité

Cliquez sur l'onglet sécurité

Cliquez sur Avancé

Vous savez, si vous avez besoin de cette aide, vous ne devriez probablement pas le faire en fait ...

Cliquez sur Ajouter

Jouer avec des autorisations de sécurité peut causer de graves douleurs

Sélectionnez le principal

Mais les captures d'écran sont amusantes et me donnent tout

Ajoutez votre nom d'utilisateur (ou administrateur si vous souhaitez travailler avec lui en tant qu'administrateur)

Maintenant, vous connaissez mon vrai nom super secret, zomg!

Copier WinRE.wim

J'ai choisi de copier le fichier .wim afin de pouvoir travailler avec, mais je suppose que vous pouvez également travailler directement avec lui. Si vous avez choisi de travailler directement avec elle, modifiez la commande de manière appropriée. J'ai copié le mien C:\winre\.

Ajouter PowerShell à l'image

Maintenant que nous avons un .wim avec lequel travailler, nous pouvons ajouter les composants nécessaires pour PowerShell. Vous aurez besoin des composants appropriés de Windows ADK, y compris Windows PE.

Montez l'image

Recherchez les outils de déploiement et d'imagerie, cliquez avec le bouton droit et exécutez en tant qu'administrateur

Sérieusement, si vous ne pouviez pas trouver cela par vous-même, revenez maintenant

Créez un dossier pour monter l'image

Au moins, je ne laisse pas les gens copier et coller ce genre de choses

Exécutez cette commande pour monter l'image: Les captures d'écran sont parfaites pour empêcher le copier-coller!

Ajoutez les packages requis

Il y a un peu de va-et-vient impliqués dans les commandes suivantes, et les choses doivent être faites dans l'ordre. Nous devons installer les packages suivants:

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

Nous devrons également installer des packages en-us (substitut de votre langue préférée) pour chacun des packages ci-dessus.

Commencez par ceci:

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

Exécutez ensuite ceci:

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

Appuyez maintenant Updeux fois pour rappeler la première commande et remplacez WMI par NetFX4. Répétez cette opération jusqu'à ce que vous ayez installé tous les composants requis ainsi que la langue requise. N'oubliez pas de le faire dans l'ordre.

Terminer l'image

Maintenant que tous les packages sont en place, nous devons valider nos modifications et terminer notre WinRE.wim. De là, nous pouvons créer un .iso, le tester dans Hyper-V et copier le WinRE.wim dans notre fichier de récupération afin que nous ayons accès à PowerShell la prochaine fois que le système se bloque.

Démonter et valider

Exécutez la commande suivante pour démonter l'image et valider les modifications: La commande ci-dessus n'a pas réussi à taper, donc je vais laisser C + P glisser sur celle-ci ...

Plusieurs choses peuvent mal se passer ici, et les messages d'erreur sont terriblement trompeurs. Assurez-vous qu'il n'y a pas de fautes de frappe et que vous n'avez rien ouvert lié à ces fichiers, pas même Explorer.

Remplacez WinRE.wim d'origine et testez

Faites une sauvegarde de votre WinRE.wim d'origine et remplacez-le par le nouveau. Exécutez maintenant msconfig et ouvrez l'onglet Boot. Vérifiez Safe Bootet sélectionnez Alternate Shell. Redémarrez et essayez.

TROLOLOL Vous êtes coincé dans un coffre-fort maintenant!  J'ai redémarré trois fois avant de réaliser ce réglage.

Boom! PowerShell dans Windows RE

Start PowerShell et apprécie!

Ahh, la belle PowerShell bleue ... Douce victoire.

Pour sortir du mode sans échec, vous devrez exécuter msconfig à partir de la ligne de commande et décochez Safe Boot.

Tanner Faulkner
la source
1
slow ... clap
William Jackson
Merci pour la réponse détaillée, Tanner! C'est exactement ce dont j'avais besoin.
Riaan
1
Juste au cas où votre image WinRE se trouve dans l'une de ces partitions de récupération OEM, vous pouvez utiliser Visual BCD Editor pour jeter un œil à l'entrée de démarrage de récupération et trouver le chemin d'accès à l'image.
Bob
1
7 ans plus tard, sur "PE for win10", cela est encore tout à fait valable, mais les packages ont été renommés, laissant tomber les nombres. Utilisez WinPE-PowerShellau lieu de WinPE-PowerShell3et WinPE-NetFXà la place de WinPE-NetFX4. Ce WinPE-HTAn'était en fait jamais nécessaire et ce n'est même pas lié au PS. Ne l'ajoutez pas si vous n'exécutez pas les applications HTA. StorageWMI et DismCmdlets sont des modules pour PS, vous n'en avez pas besoin si vous n'en avez pas besoin. Ils remplacent diskpart et dism. Le guide officiel de la SEP
Papo
2
  1. Windows PowerShell nécessite Microsoft .NET Framework. [ source ]
  2. L'environnement de récupération Windows est basé sur Windows PE. [ source ]
  3. Windows PE ne prend pas en charge le .NET Framework. [ source ]

Par conséquent, PowerShell ne peut pas être utilisé dans WinRE.

William Jackson
la source
Oui, je pensais que c'était probablement à cause de ces dépendances MS.Net. Cette réponse est certainement valable pour les installations par défaut non modifiées. Merci William!
Riaan
0

Bon, j'ai essayé beaucoup de choses et je suis arrivé à la conclusion que ça ne marcherait pas. La réponse de William fournit des preuves à l'appui de cela.


J'ai noté où se trouve PowerShell. Sur ma machine, c'est dedans c:\windows\system32\windowspowershell\v1.0\powershell.exeet dedans c:\windows\syswow64\windowspowershell\v1.0\powershell.exe.

Le raccourci dans les outils d'administration pointe vers celui de syswow64.

J'ai ensuite redémarré en mode de récupération et suis arrivé à l'invite de commande.

La première chose que j'ai remarquée est que je ne peux pas accéder au clecteur.

J'ai donc couru diskpartpuis entré la commande list volpour obtenir une liste des disques disponibles. Sur ma machine, mon lecteur C était appelé mon lecteur D dans la console de récupération.

J'ai donc quitté diskparten tapant exit, puis dans la console de commande tapé d:, suivi de cd\windows\syswow64\windowspowershell\v1.0.

Notez que si vous le faites par étapes, en utilisant dirpour confirmer les noms de dossier, il ne montre pas tout (à savoir le v1.0dossier).

Une fois là-bas, j'ai croisé les doigts et tapé powershell, seulement pour recevoir le message:

The subsystem needed to support the image type is not present

J'ai googlé un peu le message d'erreur ci-dessus, mais je n'ai rien trouvé qui pourrait indiquer que PowerShell pourrait fonctionner.


J'ai également essayé l'autre powershell.exe dans system32 mais n'ai reçu aucun message du tout (non didn't recognise the commandou rien.

entrez la description de l'image ici

George Duckett
la source
Ça ne marche pas. Merci George.
Riaan