Чи можна PowerShell використовувати в середовищі відновлення Windows?


10

Я намагався отримати доступ до PowerShell з командного рядка в середовищі відновлення Windows без успіху. Я можу без проблем запускати VBScripts там, і мені зараз цікаво, чи є якийсь спосіб запускати мої команди PowerShell і звідти.

Чи можна використовувати PowerShell в WinRE, чи я в кращому випадку застряг у підтримці VBScript / JScript?

Зверніть увагу, що це стосується WinRE, а не WinPE!

EDIT

EBGreen прокоментувала додавання додаткових компонентів до WinPE, що дозволило б використовувати PowerShell в цьому середовищі. Чи міг би бути такий самий підхід із WinRE?


Ви можете запустити командний панель з командного рядка з start powershellкомандного рядка. Чи працює це у WinRE?
Джордж Дакетт

Я спробував і те, start powershellі powershellз командного рядка WinRE без успіху - говорить, що це невідомі команди. Хоча вони добре працюють і в Windows. Цікаво, чи це пов’язане із залежністю PowerShell від .Net
Riaan

Добре, остаточна пропозиція, спробуйте перейти до програми Exe Shell та запустіть її. Звідси, Path to Powershell.exe (v 2.0), мабуть, це буде щось на кшталт, C:\Windows\System32\WindowsPowerShell\v1.0але вам, можливо, потрібно спочатку шукати у Windows.
Джордж Дакетт

Я спочатку не намагався запустити powershellкоманду зі свого каталогу. Я мав той самий результат, що і Джордж Дакетт нижче.
Riaan

Відповіді:


7

Ви можете це зробити, але вам знадобиться встановити Windows 8 та Windows 8 ADK з Windows PE (це досить велике завантаження). Я впевнений, що ви можете використовувати це зображення Win RE в інсталяції Windows 7, як тільки ви його запустите, але я не впевнений на 100%.

Існує кілька інших способів, як ви можете це досягти, включаючи створення образу Windows PE із встановленими інструментами середовища відновлення, але це, мабуть, найпростіший метод, і це призведе до того, що PowerShell буде доступний щоразу, коли ваша машина потрапляє у середовище відновлення vs. завантажувати його за допомогою знімних носіїв.

Знайдіть свій WinRE.wim

Я використовував Все, щоб знайти своє. Це трапилося, що він ховався C:\Recovery\67c45205-df4a-11e1-8fd9-9103ad6af7ef. Це може бути справедливо і для вас. Для огляду вам доведеться відключити Hide Protected System Files. Цей параметр ховається в Провіднику підView, Options, Change Folder and Search Options, View tab.

Відкрийте смаколики

Змініть дозволи

Вам доведеться возитися з дозволами, щоб навіть побачити дозволи в цій папці. Возитися з дозволами завжди змушує нервувати, але попереду, якщо ти наважишся. Я просто додав своє ім’я користувача до дозволів безпеки з повним контролем.

Клацніть правою кнопкою миші Відновлення, виберіть властивості

Відкрити властивості

Відкрийте вкладку Безпека

Перейдіть на вкладку безпеки

Клацніть Додатково

Я знаю, якщо вам потрібна така допомога, ви, мабуть, не повинні цього робити насправді ...

Натисніть Додати

Возитися з дозволами безпеки може спричинити серйозні болі

Виберіть Основний

Але скріншоти - це весело і дають мені всі представники

Додайте своє ім’я користувача (або Адміністратор, якщо ви хочете працювати з ним як адміністратор)

Тепер ви знаєте моє суперпотаємне справжнє ім’я, зомг!

Скопіюйте WinRE.wim

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

Додайте PowerShell до зображення

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

Змонтуйте зображення

Знайдіть інструменти розгортання та обробки зображень, клацніть правою кнопкою миші та запустіть як адміністратор

Серйозно, якщо ви не змогли зараз знайти це самостійно

Створіть папку для монтажу зображення

Принаймні я не дозволяю людям копіювати та вставляти цей матеріал

Виконайте цю команду, щоб змонтувати зображення: Скріншоти чудово підходять для запобігання копіювання та вставки!

Додайте необхідні пакети

Наступні команди трохи вперед і назад беруть участь, і все потрібно робити по порядку. Нам потрібно встановити наступні пакети:

  • WinPE-WMI
  • WinPE-NetFX4
  • WinPE-сценарій
  • 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. Перезавантажте і спробуйте.

TROLOLOL Ви зараз застрягли в безпечному завантаженні!  Я три рази перезапустив, перш ніж зрозумів, що ця настройка дотримується ...

Бум! PowerShell в Windows RE

Start PowerShell і насолоджуйтесь!

Ах, прекрасна синя PowerShell ... Солодка перемога.

Щоб вийти з безпечного режиму, вам доведеться запустити msconfig з командного рядка та зніміть прапорець Safe Boot.


1
повільний ... плескати
Вільям Джексон

Дякую за обширну відповідь, Таннер! Це саме те, що мені було потрібно.
Riaan

1
На випадок, якщо ваше зображення WinRE знаходиться в одному з цих розділів відновлення OEM, ви можете скористатися Visual BCD Editor, щоб ознайомитись із записом завантажувальної програми Recovery і знайти шлях до зображення.
Боб

1
Через 7 років на "PE for win10" це все ще цілком справедливо, але пакунки були перейменовані, скидаючи номери. Використовуйте WinPE-PowerShellзамість WinPE-PowerShell3і WinPE-NetFXзамість WinPE-NetFX4. Це WinPE-HTAнасправді ніколи не було необхідним, і це навіть не пов'язано з PS. Не додайте його, якщо ви не запускаєте HTA Apps. StorageWMI і DismCmdlets - це модулі для PS, вони вам не потрібні, якщо вони вам не потрібні. Вони підміняють diskpart і dism. Офіційний посібник з MS
папо

2
  1. Windows PowerShell вимагає Microsoft .NET Framework. [ джерело ]
  2. Середовище відновлення Windows базується на Windows PE. [ джерело ]
  3. Windows PE не підтримує .NET Framework. [ джерело ]

Тому PowerShell не можна використовувати в WinRE.


Так, я думав, що це, мабуть, через ті залежності MS.Net. Ця відповідь безумовно справедлива для немодифікованих встановлень за замовчуванням. Дякую Вільяму!
Riaan

0

Правильно, я спробував багато речей і прийшов до висновку, що це не вийде. Відповідь Вільяма дає підтвердження цьому.


Я зробив помітку, де знаходиться патрон. На моїй машині він знаходиться 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.exe в system32, але не отримав повідомлення взагалі (ні didn't recognise the commandабо нічого).

введіть тут опис зображення


Це не працює. Дякую Джорджу.
Riaan
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.