Bisakah PowerShell digunakan dalam Lingkungan Pemulihan Windows?

10

Saya telah mencoba mengakses PowerShell dari Command Prompt di Lingkungan Pemulihan Windows tanpa hasil. Saya dapat menjalankan VBScripts di sana tanpa masalah, dan saya sekarang bertanya-tanya apakah ada beberapa cara untuk menjalankan perintah PowerShell saya dari sana juga.

Dapatkah PowerShell digunakan dalam WinRE, atau saya terjebak dengan dukungan VBScript / JScript terbaik?

Harap dicatat bahwa ini tentang WinRE dan bukan WinPE!

EDIT

EBGreen telah berkomentar tentang menambahkan komponen tambahan ke WinPE yang akan memungkinkan penggunaan PowerShell dalam lingkungan itu. Bisakah pendekatan yang sama diambil dengan WinRE?

Riaan
sumber
Anda dapat memulai PowerShell dari baris perintah dengan start powershelldari command prompt. Apakah ini berfungsi di WinRE?
George Duckett
Saya sudah mencoba keduanya start powershelldan powershelldari WinRE Command Prompt tanpa hasil - mengatakan itu adalah perintah yang tidak dikenal. Mereka bekerja dengan baik dalam Windows. Saya ingin tahu apakah ini ada hubungannya dengan ketergantungan PowerShell pada .Net
Riaan
Oke, saran terakhir, coba navigasikan ke exe PowerShell dan jalankan. Dari sini, Path to Powershell.exe (v 2.0) Saya kira itu akan menjadi sesuatu seperti C:\Windows\System32\WindowsPowerShell\v1.0tetapi Anda mungkin perlu mencari di windows terlebih dahulu.
George Duckett
Saya awalnya mencoba menjalankan powershellperintah dari direktori tersebut tanpa hasil. Saya memiliki hasil yang sama dengan George Duckett di bawah ini.
Riaan

Jawaban:

7

Anda dapat melakukan ini, tetapi Anda akan memerlukan instalasi Windows 8 dan Windows 8 ADK dengan Windows PE (ini unduhan yang agak besar). Saya cukup yakin Anda dapat menggunakan gambar Win RE ini pada instalasi Windows 7 setelah Anda melakukannya, tapi saya tidak 100% yakin.

Ada beberapa cara lain yang dapat Anda lakukan, termasuk membangun gambar PE Windows dengan alat lingkungan pemulihan yang diinstal, tetapi ini mungkin metode yang paling mudah, dan akan membuat PowerShell tersedia kapan pun mesin Anda memasuki lingkungan pemulihan vs. harus boot ke sana menggunakan media yang dapat dilepas.

Temukan WinRE.wim Anda

Saya menggunakan Segalanya untuk menemukan milik saya. Kebetulan bersembunyi di C:\Recovery\67c45205-df4a-11e1-8fd9-9103ad6af7ef. Ini mungkin berlaku untuk Anda juga. Untuk melihatnya Anda harus menonaktifkan Hide Protected System Files. Pengaturan ini bersembunyi di Explorer di bawahView, Options, Change Folder and Search Options, View tab.

Perlihatkan barangnya

Ubah izinnya

Anda harus mengacaukan izin untuk melihat izin pada folder ini. Bercak dengan izin selalu membuat sedikit gugup, tetapi terus maju jika Anda berani. Saya cukup menambahkan nama pengguna saya ke izin keamanan dengan kontrol penuh.

Klik kanan Pemulihan, pilih properti

Properti terbuka

Buka tab Keamanan

Klik tab keamanan

Klik Tingkat Lanjut

Ya tahu, jika Anda membutuhkan banyak bantuan ini Anda mungkin seharusnya tidak melakukan ini sebenarnya ...

Klik Tambah

Bercak dengan izin keamanan dapat menyebabkan rasa sakit yang serius

Pilih Kepala Sekolah

Tapi tangkapan layar itu menyenangkan dan memberi saya semua perwakilan

Tambahkan nama pengguna Anda (atau Administrator jika Anda ingin menggunakannya sebagai admin)

Sekarang Anda tahu nama asli super rahasia saya, zomg!

Salin WinRE.wim

Saya memilih untuk menyalin .wim agar saya bisa bekerja dengannya, tetapi saya kira Anda juga bisa bekerja dengannya. Jika Anda memilih untuk bekerja dengannya secara langsung, ubah perintah dengan tepat. Saya menyalin milik saya ke C:\winre\.

Tambahkan PowerShell ke gambar

Sekarang kita memiliki .wim untuk bekerja, kita dapat menambahkan komponen yang diperlukan untuk PowerShell. Anda akan memerlukan komponen Windows ADK yang sesuai, termasuk Windows PE.

Pasang gambar

Temukan Alat Penyebaran dan Pencitraan, klik kanan, dan jalankan sebagai Administrator

Serius, jika Anda tidak dapat menemukan ini di giliran Anda sendiri sekarang

Buat folder untuk memasang gambar

Setidaknya saya tidak membiarkan orang menyalin dan menempelkan hal ini

Jalankan perintah ini untuk memasang gambar: Tangkapan layar bagus untuk mencegah salin dan tempel!

Tambahkan paket yang diperlukan

Ada sedikit bolak-balik yang terlibat dalam perintah berikut, dan hal - hal harus dilakukan secara berurutan. Kami perlu menginstal paket-paket berikut:

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

Kami juga harus menginstal paket en-us (ganti dengan bahasa pilihan Anda) untuk masing-masing paket di atas.

Mulai dengan ini:

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

Kemudian jalankan ini:

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

Sekarang tekan Updua kali untuk mengingat perintah pertama, dan ganti WMI dengan NetFX4. Ulangi ini sampai Anda telah menginstal semua komponen yang diperlukan bersama dengan bahasa yang diperlukan. Ingatlah untuk melakukan ini secara berurutan.

Selesaikan gambar

Sekarang semua paket sudah ada, kita perlu mengkomit perubahan kita dan menyelesaikan WinRE.wim kita. Dari sana kita dapat membangun .iso, mengujinya di Hyper-V, dan menyalin WinRE.wim ke file pemulihan kami sehingga kami memiliki akses ke PowerShell saat berikutnya sistem crash.

Lepas dan komit

Jalankan perintah berikut untuk turun dari gambar dan melakukan perubahan: Perintah di atas tersedot untuk mengetik, jadi saya akan membiarkan C + P slide yang satu itu ...

Beberapa hal bisa salah di sini, dan pesan kesalahannya sangat menyesatkan. Pastikan tidak ada kesalahan ketik dan Anda tidak memiliki apa pun yang terbuka terkait dengan file-file ini, bahkan Explorer.

Ganti WinRE.wim asli dan uji

Buat cadangan WinRE.wim asli Anda dan gantilah dengan yang baru. Sekarang jalankan msconfig dan buka tab Boot. Periksa Safe Bootdan pilih Alternate Shell. Nyalakan ulang dan cobalah.

TROLOLOL Anda terjebak dalam boot aman sekarang!  Saya memulai kembali tiga kali sebelum saya menyadari pengaturan ini menempel ...

Ledakan! PowerShell di Windows RE

Start PowerShell dan nikmati!

Ahh, PowerShell biru yang indah ... Kemenangan manis.

Untuk keluar dari safe mode, Anda harus menjalankan msconfig dari baris perintah dan hapus centang Safe Boot.

Tanner Faulkner
sumber
1
lambat ... tepuk tangan
William Jackson
Terima kasih atas jawaban yang luas, Tanner! Inilah yang saya butuhkan.
Riaan
1
Kalau-kalau gambar WinRE Anda berada di salah satu partisi pemulihan OEM, Anda dapat menggunakan Visual BCD Editor untuk melihat entri boot Pemulihan dan menemukan path ke gambar.
Bob
1
7 tahun kemudian, pada "PE for win10" ini masih cukup valid, tetapi paket diganti namanya, dengan nomor yang menurun. Gunakan WinPE-PowerShellsebagai ganti WinPE-PowerShell3dan WinPE-NetFXsebagai ganti WinPE-NetFX4. Itu WinPE-HTAsebenarnya tidak pernah diperlukan dan bahkan tidak terkait PS. Jangan menambahkannya jika Anda tidak menjalankan Aplikasi HTA. StorageWMI dan DismCmdlets adalah modul untuk PS, Anda tidak membutuhkannya jika Anda tidak membutuhkannya. Mereka mengganti diskpart dan disk. Panduan MS resmi
papo
2
  1. Windows PowerShell membutuhkan Microsoft .NET Framework. [ sumber ]
  2. Lingkungan Pemulihan Windows didasarkan pada Windows PE. [ sumber ]
  3. Windows PE tidak mendukung .NET Framework. [ sumber ]

Oleh karena itu, PowerShell tidak dapat digunakan di WinRE.

William Jackson
sumber
Ya, saya pikir itu mungkin karena ketergantungan MS.Net tersebut. Jawaban ini jelas valid untuk pemasangan default yang tidak dimodifikasi. Terima kasih William!
Riaan
0

Benar, saya mencoba banyak hal dan sampai pada kesimpulan itu tidak akan berhasil. Jawaban William memberikan bukti untuk mendukung hal ini.


Saya membuat catatan di mana PowerShell berada. Di mesin saya ada di c:\windows\system32\windowspowershell\v1.0\powershell.exedan di c:\windows\syswow64\windowspowershell\v1.0\powershell.exe.

Cara pintas dalam alat administratif menunjuk ke syswow64.

Saya kemudian restart ke mode pemulihan dan sampai ke command prompt.

Hal pertama yang saya perhatikan adalah saya tidak bisa sampai ke cdrive.

Jadi, saya berlari diskpartkemudian memasukkan perintah list voluntuk mendapatkan daftar drive yang tersedia. Di komputer saya, drive C saya disebut drive D saya di konsol pemulihan.

Jadi saya keluar diskpartdengan mengetik exit, lalu di konsol perintah yang diketik d:, diikuti oleh cd\windows\syswow64\windowspowershell\v1.0.

Perhatikan bahwa jika Anda melakukannya secara bertahap, gunakan diruntuk mengonfirmasi nama folder itu tidak menunjukkan semuanya (yaitu v1.0folder).

Sesampai di sana saya menyilangkan jari dan mengetik powershell, hanya untuk menerima pesan:

The subsystem needed to support the image type is not present

Saya googled pesan kesalahan di atas sebentar, tetapi tidak dapat menemukan apa pun yang menunjukkan PowerShell mungkin berfungsi.


Saya juga mencoba powershell.exe lain di system32 tetapi tidak mendapat pesan sama sekali (tidak didn't recognise the commandatau apa pun.

masukkan deskripsi gambar di sini

George Duckett
sumber
Ini tidak berhasil. Terima kasih George.
Riaan