Windows回復環境でPowerShellを使用できますか?


10

Windows回復環境のコマンドプロンプトからPowerShellにアクセスしようとしましたが、成功しませんでした。ここで問題なくVBScriptを実行でき、PowerShellコマンドをそこから実行する方法があるかどうか疑問に思っています。

PowerShellをWinRE内で使用できますか、それともVBScript / JScriptのサポートに困っていますか?

これはWinREに関するものであり、WinPEに関するものではないことに注意してください。

編集

EBGreenは、WinPEにコンポーネントを追加して、その環境内でPowerShellを使用できるようにすることについてコメントしていました。WinREでも同じアプローチをとることができますか?


start powershellコマンドプロンプトからコマンドラインからPowerShellを起動できます。これはWinREで機能しますか?
George Duckett 2012年

私は両方start powershellを試しましたがpowershell、WinREコマンドプロンプトからは成功しませんでした。これらは不明なコマンドであると述べています。ただし、Windowsでは問題なく動作します。これはPowerShellの.Netへの依存関係と関係があるのでしょうか
Riaan

さて、最後の提案ですが、powershell exeに移動して実行してみてください。ここから、Powershell.exeへのパス(v 2.0)のようになると思いC:\Windows\System32\WindowsPowerShell\v1.0ますが、最初にウィンドウで検索する必要があるかもしれません。
George Duckett、2012年

最初はpowershellそのディレクトリからコマンドを実行しようとしましたが、成功しませんでした。以下のジョージ・ダケットと同じ結果が得られました。
リアーン2012年

回答:


7

これを行うことはできますが、Windows 8のインストールとWindows PEを備えWindows 8 ADK が必要になります(かなり大きなダウンロードです)。この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.

グッズを再表示

権限を変更する

このフォルダのアクセス許可を表示するためにも、アクセス許可を変更する必要があります。パーミッションをいじるのはいつも少し緊張しますが、勇気があるなら前に進んでください。私は自分のユーザー名をフルコントロールでセキュリティ権限に追加しただけです。

リカバリを右クリックし、プロパティを選択します

プロパティを開く

[セキュリティ]タブを開きます

[セキュリティ]タブをクリックします

Advancedをクリックします

ええと、もしあなたがこれだけの助けを必要とするなら、あなたはおそらくこれを実際にやるべきではないでしょう...

追加をクリックします

セキュリティ権限をいじると、深刻な痛みを引き起こす可能性があります

プリンシパルを選択

でもスクリーンショットは楽しいし、担当者全員に教えてくれる

ユーザー名(管理者として使用する場合は管理者)を追加します

さて、あなたは私の超秘密の実名、zomgを知っています!

WinRE.wimをコピー

.wimをコピーして操作できるように選択しましたが、直接操作することもできます。直接操作する場合は、コマンドを適切に変更してください。私をにコピーしましたC:\winre\

イメージにPowerShellを追加する

使用する.wimができたので、PowerShellに必要なコンポーネントを追加できます。Windows PEを含むWindows ADKの適切なコンポーネントが必要です。

イメージをマウントする

展開およびイメージングツールを見つけて右クリックし、管理者として実行します

真剣に、あなたが今自分のターンでこれを見つけることができなかった場合

イメージをマウントするフォルダを作成します

少なくとも私は人々にこのものをコピーして貼り付けることを許可していません

次のコマンドを実行して、イメージをマウントします。 スクリーンショットはコピーアンドペーストを防止するのに最適です。

必要なパッケージを追加する

そこは、次のコマンドに関与前後の小さな背中やだ、と物事が持っている順序で実行されるように。次のパッケージをインストールする必要があります。

  • 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

Up2回押して最初のコマンドを呼び出し、WMIをNetFX4に置き換えます。必要な言語とともに必要なすべてのコンポーネントをインストールするまで、これを繰り返します。これを順番に行うことを忘れないでください。

画像を完成させる

すべてのパッケージが準備できたので、変更をコミットしてWinRE.wimを終了する必要があります。そこから.isoをビルドし、Hyper-Vでテストし、WinRE.wimをリカバリファイルにコピーして、次にシステムがクラッシュしたときにPowerShellにアクセスできるようにします。

アンマウントしてコミット

次のコマンドを実行して、イメージをマウント解除し、変更をコミットします。 上記のコマンドはタイプするのが面倒なので、C + Pでスライドさせます...

ここでいくつかのことがうまくいかないことがあり、エラーメッセージはひどく誤解を招くものです。入力ミスがないことを確認し、これらのファイルに関連して何も開いていないことを確認してください。

元のWinRE.wimを置き換えてテストする

元のWinRE.wimのバックアップを作成し、新しいものに置き換えます。ここでmsconfigを実行し、[ブート]タブを開きます。をチェックSafe Bootして選択しますAlternate Shell。再起動して試してください。

TROLOLOLセーフブートで立ち往生しています。 この設定が続くことに気づく前に、3回再起動しました...

ブーム!Windows REのPowerShell

Start PowerShell そしてお楽しみください!

ああ、美しい青いPowerShell ...甘い勝利。

セーフモードを終了するには、コマンドラインからmsconfigを実行し、[セーフブート]をオフにする必要があります。


1
遅い...拍手
ウィリアム・ジャクソン

幅広い回答をありがとう、タナー!これはまさに私が必要としたものです。
リアーン2012年

1
WinREイメージがこれらのOEMリカバリパーティションの1つにある場合に備えて、Visual BCDエディターを使用して、リカバリブートエントリを確認し、イメージへのパスを見つけることができます。
ボブ

1
7年後の「PE for win10」では、これはまだかなり有効ですが、パッケージの名前が変更され、数が減りました。使用WinPE-PowerShellの代わりにWinPE-PowerShell3WinPE-NetFXの代わりにWinPE-NetFX4。これWinPE-HTAは実際には決して必要ではなく、PSにも関係していません。HTAアプリを実行していない場合は追加しないでください。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に依存しているためだと思いました。この回答は、デフォルトの変更されていないインストールに間違いなく有効です。ウィリアム、ありがとう!
リアーン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、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.