目次
あなたのような読者が、MUOを支えています。当サイトのリンクを使って購入された場合、アフィリエイト報酬を得ることがあります。続きを読む
PowerShellでいくつかのコマンドを実行しているときに、突然、次のようなエラーメッセージが表示されました、
この問題の原因は何なのか、どうすれば解決できるのか、疑問に思っていませんか?この問題を解決するための簡単な方法をご紹介します。
潜ってみましょう!
1.PowerShellを管理者モードで実行する
現在、適切な管理者権限を持たずにPowerShellを実行していませんか?もしそうなら、おそらくそこに問題があるのでしょう。
そこで、管理者モードでツールを実行するための手順をご紹介します:
それでも解決しない場合は、Windows PowerShellを開くさまざまな方法を確認してください。ただし、管理者権限でツールを実行する方法を示している方法のみに注目する必要があります。
2.PowerShellで実行ポリシーを変更する
場合によっては、実行ポリシーを変更することで解決することもあります。しかし、解決策を探る前に、まず実行ポリシーとは何か、どのように機能するのかを説明します。
実行ポリシーとは何か、どのように機能するのか?
実行ポリシーは、デバイス上でPowerShellスクリプトを実行する方法を制御するセキュリティ機能です。実行ポリシーは、実行可能なスクリプトと実行を避けるべきスクリプトの種類を決定するものです。このポリシーは、自由に設定できるのが最大の特徴です。
実行ポリシーを設定する際に選択できるオプションは以下の通りです:
- 制限されています:このポリシーでは、PowerShell スクリプトの実行を禁止しています。
- 無制限:任意のスクリプトの実行を許可しますが、疑わしいスクリプトを実行すると警告メッセージが表示されます。
- RemoteSigned:このポリシーでは、オンラインでダウンロードしたスクリプトを実行するときにデジタル署名が必要です。ただし、ローカルスクリプトには署名は必要ありません。
- ByPass(バイパス):このポリシーでは、任意のスクリプトを制限なく実行できます。f}Unrestricted"ポリシーとは異なり、"ByPass"ポリシーでは、疑わしいスクリプトを実行しても警告メッセージが表示されることはありません。そのため、このポリシーは常に正当なスクリプトを実行する場合にのみ適用してください。
- AllSigned:このポリシーは、信頼できる発行者によって署名されたスクリプトのみを実行します。
さて、PowerShellを定期的に使用している場合、実行ポリシーを時々変更したくなることがあると思います。しかし、実行ポリシーによっては、PowerShellスクリプトを実行する際にエラーメッセージが表示されることがあります。
例えば、有効にすることで
この問題を解決するためには、単純に実行ポリシを
実行ポリシーを変更する際に追加しなければならないPowerShellコマンドをすべて調べてみましょう:
- CurrentUser: このポリシーは、デバイスに現在ログインしている人のすべてのPowerShellセッションにのみ適用されます。
- LocalMachineです:デバイスにアカウントを持っているすべてのユーザーに適用されます。このポリシーは、管理者権限を持つローカルユーザーのみ設定可能です。
- Process(プロセス):現在の PowerShell セッションにのみ適用されます。つまり、新しいセッションを開始する場合は、ポリシーを再度実行する必要があります。
- MachinePolicy:このポリシーは、デバイスにアカウントを持っているすべてのユーザーに適用されます。ただし、適切な権限を持つネットワーク管理者のみが設定することができます。しかし、ローカル管理者がローカルグループポリシーエディターを使用してこの実行ポリシーを設定することが可能な場合が多いです。
- UserPolicy です:特定のユーザが実行するすべてのPowerShellセッションとスクリプトに適用されます。
それでは、関連するポリシーを実行して、「PowerShellがロードできない」という問題に対処する方法を説明します。
実行ポリシーを“Unrestricted“に変更する方法
目の前の問題に対処する最善の方法は、実行ポリシーを"unrestricted."に変更することです。しかしその前に、各実行ポリシーがどのように設定されているかを確認する必要があります。
ここでは、実行ポリシーがどのように設定されているかを確認する手順を説明します:
Get-ExecutionPolicy-List
これで、さまざまなユーザーやシステムに対して実行ポリシーがどのように設定されているかがわかるはずです。
に実行方針を変更することができます。 Set-ExecutionPolicy Unrestricted-ScopeCurrentUser
実行ポリシーを次のように変更します。 Set-ExecutionPolicy Unrestricted-Scopeローカルマシン
コマンドの実行が終了したら、PowerShellを終了し、PCを再起動すると、この変更が保存されます。
実行ポリシーを“ByPass“に変更する方法
実行ポリシーを"ByPass"にすることで、どんなPowerShellスクリプトでも手間なく実行できるようになります。しかし、バグのあるファイルを実行してしまう可能性もあることを忘れないでください。そのため、信頼できるPowerShellファイルを実行する場合にのみ、常にこの実行ポリシーを設定してください。
に実行方針を変更するには、次のようにします。 Set-ExecutionPolicy ByPass-ScopeCurrentUser (セットエクスキューションポリシー バイパス -スコープ カレントユーザー
と実行ポリシーを変更することで Set-ExecutionPolicy ByPass-ScopeLocalMachine(実行ポリシー バイパス -スコープ ローカルマシン
終了後、PowerShellを終了し、デバイスを再起動します。
3.ローカルグループポリシーエディターで実行ポリシーを変更する
ローカルグループポリシーエディタ(LGPE)を使えば、実行ポリシーを簡単に変更することも可能です。実際、このツールは、様々なシステム設定やPCのトラブルシューティングにも役立ちます。
主な目的は、PowerShellスクリプトを問題なく実行できるように実行ポリシーを変更することであることを忘れないでください。そして、そうすることで、あなたは
ここでは、LGPEで実行ポリシーを変更する方法を説明します:
有効] ボックスをチェックします。そこから、[実行ポリシー]ドロップダウンメニューをクリックし、[ローカルスクリプトとリモート署名付きスクリプトを許可する]を選択します。このオプションは、以前発見した"RemoteSigned"オプションと似ています。
すべてのスクリプトを制限なく実行したい場合は、"実行ポリシー"のドロップダウンメニューから「すべてのスクリプトを許可」オプションを選択します。
そこで、「適用」をクリックし、「OK」をクリックして、これらの変更を保存します。
4.レジストリエディタを使った実行ポリシーの変更
他の方法で改善されなかった場合は、レジストリエディターを使用して実行ポリシーを変更してみてください。ただし、レジストリキーを編集する際には注意が必要です。もし間違ったキーを編集してしまうと、PCにダメージを与えてしまうかもしれません。
では、レジストリエディターで実行ポリシーを変更する方法を説明します:
HKEY_LOCAL_MACHINE ⇄SOFTWARE ⇄Microsoft ⇄PowerShell ⇄1 ⒸShellIds ⒸMicrosoft.PowerShell
右側にあるExecutionPolicyの値を探します。
値が不足している場合は、以下の手順で作成してください:
ExecutionPolicyの値をダブルクリックします。次に、"値のデータ"セクションに RemoteSigned と入力します。これにより、PowerShellはローカルスクリプトと署名付きスクリプトを実行できるようになります。
または、"Value data"セクションにByPassと入力します。これにより、PowerShellは制限なく任意のスクリプトを実行できるようになります。
f}値データ"の部分にお好みの値を入力したら、OKを押して変更を保存してください。最後にレジストリエディタを閉じてから、デバイスを再起動します。
PowerShell スクリプトを制限なく実行する
Windows PowerShellで突然特定のコマンドを実行できなくなると、かなりイライラすることがあります。しかし、もしあなたが
さて、PowerShellはしばしば他の問題を引き起こすのでしょうか?さて、あなたを助けることができる解決策がもっとあります。