可以在Windows恢复环境中使用PowerShell吗?


10

我试图从Windows恢复环境中的命令提示符访问PowerShell,但没有成功。我可以在那里毫无问题地运行VBScript,现在我想知道是否还有某种方法可以从那里运行我的PowerShell命令。

可以在WinRE中使用PowerShell吗,还是我充其量只能使用VBScript / JScript支持?

请注意,这是关于WinRE而不是WinPE的!

编辑

EBGreen曾评论过要在WinPE添加其他组件,以允许在该环境中使用PowerShell。WinRE是否可以采用相同的方法?


您可以从命令行start powershell通过命令提示符启动powershell 。这在WinRE中有效吗?
乔治·达基特

我已经尝试过这两种方法start powershellpowershell但都没有从WinRE命令提示符中尝试过-说这些是未知命令。不过,它们在Windows中可以正常工作。我想知道这是否与PowerShell对.Net的依赖性有关
Riaan 2012年

好的,最后的建议是,尝试导航到Powershell exe并运行它。从这里开始,Powershell.exe(v 2.0)的路径我想它将是类似的东西,C:\Windows\System32\WindowsPowerShell\v1.0但是您可能需要首先在Windows中搜索。
乔治·达基特

最初,我曾尝试powershell从其目录运行命令,但没有成功。我和下面的乔治·达克特有相同的结果。
Riaan

Answers:


7

您可以执行此操作,但需要安装Windows 8和带有 Windows PE 的Windows 8 ADK (下载量很大)。我相当确定您可以在Windows 7安装中使用此Win RE映像,但我不确定100%正确。

您可能还有其他几种方法可以完成此操作,包括使用安装了恢复环境工具构建Windows PE映像,但这可能是最简单的方法,并且只要您的计算机进入恢复环境,就会使PowerShell可用。必须使用可移动媒体启动它。

找到您的WinRE.wim

我用万物找到我的。它恰好藏在里面C:\Recovery\67c45205-df4a-11e1-8fd9-9103ad6af7ef。这对您也可能是正确的。要查看,您必须禁用Hide Protected System Files。此设置潜伏在资源管理器中View, Options, Change Folder and Search Options, View tab.

取消隐藏好东西

更改权限

您将不得不弄乱权限,甚至看不到此文件夹的权限。权限混乱总是会让您有些紧张,但是如果您敢的话,请勇往直前。我只是将用户名添加到具有完全控制权限的安全权限中。

右键单击恢复,选择属性

开放属性

打开安全选项卡

点击安全标签

点击高级

知道,如果您需要这么多帮助,您实际上不应该这样做。

点击添加

遇到安全权限会导致严重的痛苦

选择校长

但是屏幕截图很有趣,可以给我全部代表

添加您的用户名(如果要以管理员身份使用,则为管理员)

现在,您知道我的超级秘密真实姓名,zomg!

复制WinRE.wim

我选择复制.wim,以便可以使用它,但是我想您也可以直接使用它。如果选择直接使用它,请适当修改命令。我将我的副本复制到C:\winre\

将PowerShell添加到映像

现在,我们可以使用.wim,我们可以为PowerShell添加必要的组件。您将需要Windows ADK(包括Windows PE)的适当组件。

挂载图像

找到部署和映像工具,右键单击并以管理员身份运行

严重的是,如果您现在找不到自己,现在就回头

创建一个文件夹来挂载映像

至少我不允许别人复制和粘贴这些东西

运行以下命令来挂载映像: 屏幕截图非常适合防止复制和粘贴!

添加所需的软件包

有一个小来回参与下面的命令,事情为了完成。我们需要安装以下软件包:

  • WinPE-WMI
  • WinPE-NetFX4
  • WinPE脚本
  • WinPE-PowerShell3
  • WinPE-DismCmdlet
  • WinPE-StorageWMI
  • WinPE-HTA

我们还必须为上述每个软件包都安装en-us(用您的首选语言代替)软件包。

从此开始:

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

然后运行:

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

现在按Up两次以调用第一个命令,并将WMI替换为NetFX4。重复此过程,直到您安装了所有必需的组件以及所需的语言。请记住要按顺序执行此操作。

完成图像

现在所有软件包都已就绪,我们需要提交更改并完成WinRE.wim。从那里我们可以构建一个.iso,在Hyper-V中对其进行测试,然后将WinRE.wim复制到我们的恢复文件中,以便下次系统崩溃时可以访问PowerShell。

卸载并提交

运行以下命令以卸载映像并提交更改: 上面的命令很难输入,因此我将让C + P在该命令上滑动...

这里有几处可能出错,并且错误消息极具误导性。确保没有错别字,并且没有打开与这些文件相关的文件,甚至没有与Explorer相关的文件。

替换原始的WinRE.wim并测试

备份原始WinRE.wim,然后将其替换为新的WinRE.wim。现在运行msconfig并打开“启动”选项卡。检查Safe Boot并选择Alternate Shell。重新启动并尝试一下。

TROLOLOL您现在处于安全启动状态! 我重新启动了3次,直到意识到此设置仍然有效...

繁荣!Windows RE中的PowerShell

Start PowerShell 享受!

啊,美丽的蓝色PowerShell ...胜利!

要退出安全模式,您必须从命令行运行msconfig并取消选中“安全启动”。


1
慢...拍手
威廉·杰克逊

感谢您的广泛回答,Tanner!这正是我所需要的。
Riaan

1
万一您的WinRE映像位于这些OEM恢复分区之一中,则可以使用Visual BCD编辑器查看Recovery引导项并找到该映像的路径。
鲍勃

1
7年后,在“ PE for win10”上,它仍然很有效,但是软件包被重命名,删除了数字。使用WinPE-PowerShell代替WinPE-PowerShell3WinPE-NetFX代替WinPE-NetFX4。该WinPE-HTA竟是从来没有必要的,它甚至不是PS相关。如果您不运行HTA Apps,请不要添加它。StorageWMI和DismCmdlet是PS的模块,如果不需要它们,则不需要它们。它们替代了diskpart和dism。官方MS指南
papo

2
  1. Windows PowerShell需要Microsoft .NET Framework。[ 来源 ]
  2. Windows恢复环境基于Windows PE。[ 来源 ]
  3. Windows PE不支持.NET Framework。[ 来源 ]

因此,不能在WinRE中使用PowerShell。


是的,我认为可能是由于那些MS.Net依赖关系。对于默认的未修改安装,此答案绝对有效。谢谢威廉!
里亚安(Riaan)2012年

0

是的,我尝试了很多东西,得出的结论是行不通的。威廉的回答提供了支持这一点的证据。


我记下了powershell的位置。在我的机器上,它在c:\windows\system32\windowspowershell\v1.0\powershell.exe和中c:\windows\syswow64\windowspowershell\v1.0\powershell.exe

管理工具中的快捷方式指向syswow64。

然后,我重新启动进入恢复模式,并进入命令提示符。

我注意到的第一件事是我无法c开车。

因此,我运行diskpart然后输入命令list vol以获取可用驱动器列表。在我的计算机上,恢复控制台中的C驱动器称为D驱动器。

因此,我diskpart通过键入退出exit,然后在命令控制台中键入d:,然后键入cd\windows\syswow64\windowspowershell\v1.0

请注意,如果您分阶段进行操作,则dir用于确认文件夹名称的内容不会显示所有内容(即v1.0文件夹)。

powershell到达那里后,我用手指指着并打字,只收到消息:

The subsystem needed to support the image type is not present

我在上面的错误消息中搜索了一下,但是找不到任何表明Powershell可以工作的东西。


我也尝试了system32中的另一个powershell.exe,但根本没有收到任何消息(没有didn't recognise the command或没有。

在此处输入图片说明


这行不通。谢谢乔治。
里亚安(Riaan)2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.