10

Я попытался получить доступ к PowerShell из командной строки в среде восстановления Windows, но безуспешно. Я могу запускать VBScripts там без проблем, и теперь мне интересно, есть ли какой-нибудь способ запустить мои команды PowerShell оттуда также.

Можно ли использовать PowerShell в WinRE или я в лучшем случае застрял с поддержкой VBScript/JScript?

Обратите внимание, что речь идет о WinRE, а не о WinPE!

РЕДАКТИРОВАТЬ

EBGreen прокомментировал добавление в WinPE дополнительных компонентов , которые позволят использовать PowerShell в этой среде. Можно ли использовать тот же подход с WinRE?

3 ответа3

7

Вы можете сделать это, но вам понадобится установить Windows 8 и Windows 8 ADK с Windows PE (это довольно большая загрузка). Я вполне уверен, что вы можете использовать этот образ Win RE при установке Windows 7, как только вы его запустите, но я не уверен на 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.

Показать вкусности

Изменить разрешения

Вам придется возиться с разрешениями, чтобы даже увидеть разрешения для этой папки. Неразбериха с разрешениями всегда заставляет немного нервничать, но, если вы решитесь, продвигайтесь вперед. Я просто добавил свое имя пользователя в разрешения безопасности с полным контролем.

Щелкните правой кнопкой мыши Recovery, выберите свойства

Открытые свойства

Откройте вкладку «Безопасность»

Нажмите вкладку безопасности

Нажмите Дополнительно

Знаешь, если тебе нужна такая большая помощь, тебе, вероятно, не стоит делать это на самом деле ...

Нажмите кнопку Добавить

Возиться с разрешениями безопасности может вызвать серьезную боль

Выберите принципала

Но скриншоты веселые и дают мне всю информацию

Добавьте свое имя пользователя (или администратора, если вы хотите работать с ним как администратор)

Теперь ты знаешь мое супер секретное настоящее имя, зомг!

Скопируйте WinRE.wim

Я решил скопировать .wim, чтобы я мог работать с ним, но я полагаю, что вы могли бы работать и с ним напрямую. Если вы решили работать с ним напрямую, измените команду соответствующим образом. Я скопировал мой в C:\winre\ .

Добавьте PowerShell к изображению

Теперь, когда у нас есть .wim для работы, мы можем добавить необходимые компоненты для PowerShell. Вам понадобятся соответствующие компоненты Windows ADK, включая Windows PE.

Смонтировать изображение

Найдите Deployment and Imaging Tools, щелкните правой кнопкой мыши и запустите от имени администратора.

Серьезно, если вы не можете найти это по своему усмотрению сейчас

Создайте папку для монтирования образа

По крайней мере, я не позволяю людям копировать и вставлять эти вещи

Запустите эту команду, чтобы смонтировать образ:Скриншоты отлично подходят для предотвращения копирования и вставки!

Добавьте необходимые пакеты

Там немного вперед и назад участвуют в следующих командах, и все должно быть сделано по порядку. Нам нужно установить следующие пакеты:

  • WinPE-WMI
  • WinPE-NetFX4
  • WinPE-Scripting
  • WinPE-PowerShell3
  • WinPE-DismCmdlets
  • 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 и замените его новым. Теперь запустите msconfig и откройте вкладку Boot. Проверьте Safe Boot и выберите Alternate Shell . Перезагрузитесь и попробуйте.

Трололол Вы застряли в безопасной загрузке сейчас!Я перезапустил три раза, прежде чем понял, что эта настройка палки ...

Boom! PowerShell в Windows RE

Start PowerShell и наслаждайтесь!

Ааа, красивый синий PowerShell ...Сладкая победа.

Чтобы выйти из безопасного режима, вам нужно запустить msconfig из командной строки и снять флажок Safe Boot.

2
  1. Windows PowerShell требует Microsoft .NET Framework. [ источник ]
  2. Среда восстановления Windows основана на Windows PE. [ источник ]
  3. Windows PE не поддерживает .NET Framework. [ источник ]

Поэтому PowerShell нельзя использовать в WinRE.

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 может работать.


Я также попробовал другой файл powershell.exe в system32, но не получил никакого сообщения (никто didn't recognise the command или что-то в этом роде.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .