PowerShellスクリプトは、繰り返しのタスクを自動化し、システムの構成にいくつかの変更を加えるために使用されます。しかし、時々、Windowsに気づきました Windows 11/10でPowerShellスクリプトを実行できません。 この問題はイライラする可能性があります .ps1 スクリプトを使用すると、多くのタスクを簡単に実行できます。この投稿では、この問題について話し、問題を解決するために何ができるかを確認します。
FIXはWindows 11/10でPowerShellスクリプトを実行できません
Windows 11/10でPowerShellスクリプトを実行できない場合は、以下のソリューションに従ってください。
- 管理者としてPowerShellを起動します
- 実行ポリシーをバイパスします
- 実行ポリシーを無制限に設定します
- レジストリエディターまたはグループポリシーエディターを使用したPowerShellスクリプトの実行を有効にする
それらについて詳しく話しましょう。
このシステムで実行されたスクリプトが無効になっているため、ロードできません
1]管理者としてPowerShellを起動します
WindowsDefenderの起動時間スキャン
まず、あなたが直面している問題が実際に問題であるかどうかを確認する必要があります。起動する場合 管理者としてのPowerShell [スタート]メニューで検索して、PowerShellを右クリックして、[ 管理者として実行します。 次に、スクリプトを実行してみて、それが役立つかどうかを確認してください。
2]実行ポリシーをバイパスします
PowerShellの実行ポリシーは、不正なスクリプトまたは有害なスクリプトが実行されるのを防ぐ安全機能です。 「制限された」または「リモート装備」などのデフォルトのポリシーは、明示的に許可または署名されていない限り、スクリプトをブロックできます。ただし、次のコマンドを実行すると、現在のセッションのこれらの制限を一時的にバイパスでき、セキュリティ設定を永久に変更せずにスクリプトを実行できます。
powershell -ExecutionPolicy ByPass -File ScriptFileName.ps1
ここでの問題は、スケジュールされたタスクやRunbookなどの自動化されたプロセスが非対話セッションで動作する場合、この方法が機能しないことです。これらの環境は、一時的なオーバーライドを無視し、継続的なセキュリティを確保する厳格なグループポリシー設定を強制します。
3]実行ポリシーを無制限に設定します
前述のように、前述のメソッドは、スタンドアロンスクリプトを実行するときにのみ機能しますが、スクリプトがスケジュールされている場合、メソッドは効果がありません。したがって、実行ポリシーを無制限に設定する必要があります。ただし、これにより、システムにアクセスできる場合、誰でもコンピューターで悪意のあるスクリプトを実行できるため、システムが脆弱になります。
実行ポリシーを無制限に設定するには、PowerShellで次のコマンドを実行します。
エラー0x80070bc2
Set-ExecutionPolicy unrestricted
システムの設定への変更であるため、「Y」または「A」を押してアクションを確認するように求められます。
しかし、同じことを試したとき、次のエラーメッセージに遭遇しました。
Set-ExecutionPolicy:Windows PowerShellは実行ポリシーを正常に更新しましたが、設定は、より具体的な範囲で定義されたポリシーによってオーバーライドされます。オーバーライドにより、シェルは現在の効果を保持します
RemoteSignedの実行ポリシー。 「Get -ExecutionPolicy -List」と入力して、実行ポリシー設定を表示します。
このエラーが発生した場合、コマンドを実行する必要があります-9A35C9C41917B53CBA5FBCCEB1979ECEF16D578システムが変更を登録したかどうか、問題とは何かを知る。私の場合、Currentuserは「リモート署名」に設定されていたことがわかりました。 localmachine スコープは役に立ちません。
したがって、次のコマンドも実行する必要があります。
リーダーウィンドウ8DD8D8F3A61D772648DA439E2FD7BFEE8E1D1B35E
最後に、問題が解決したかどうかを確認します。
4]レジストリエディターまたはグループポリシーエディターを使用したPowerShellスクリプトの実行を有効にする
また、RegEditまたはGpeditを使用してPowerShellスクリプト実行を有効にすることもできます。まず、同じことを使用してみましょう グループポリシーエディター 。開きます グループポリシーエディター [スタート]メニューで検索します。そして、次の場所に移動します。
コンピューター構成>管理テンプレート> Windowsコンポーネント> Windows PowerShell
探す スクリプトの実行をオンにします そして、それをダブルクリックします。に設定します 有効、 そして、次の実行ポリシーのいずれかを使用できます。
- AllSigned: これにより、署名されたスクリプトのみが許可されます
- RemoteSigned: これにより、ローカルおよびリモートで署名されたスクリプトのみが可能になります。
- 無制限: これにより、すべてのスクリプトが可能になります。
最後に、クリックします 適用> OK。
InternetExplorerでWebサイトをブロックする
今、私たちはを使用します レジストリエディター。 しかし、変更を加える前に、aを作成します レジストリのバックアップ 。次に、次の場所に移動します。
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows
次に、を右クリックします Windows フォルダー、および選択 新しい>キー。 これに名前を付けます 「Powershell」。 その後、空きスペースを右クリックして選択する必要があります new> dword(32ビット)値、 名前を付けてください 「EnableScripts」。 をダブルクリックします enableScripts 値データを1に設定します。
繰り返しますが、スペースを右クリックして選択します 新しい>文字列値、 名前を付けてください 「 executionPolicy 「
次に、executionPolicyをダブルクリックして、値データを設定します 無制限。 に設定することもできます AllSigned、RemoteSigned、 そして 無制限。
うまくいけば、この投稿の助けを借りて、問題を解決できるようになることを願っています。
読む: Windows PowerShell ISEの使用方法 - 初心者のチュートリアル
Windows 11でシェルスクリプトを実行するにはどうすればよいですか?
Windows 11でシェルスクリプト(Bashなど)を実行するには、最初にMicrosoftストアからLinux用のWindowsサブシステムをインストールし、Linux端子(Ubuntuなど)を開き、CDを使用してスクリプトのフォルダーに移動し、Bash ScriptName.shを入力します。 PowerShellスクリプトの場合、管理者としてPowerShellを起動するには、Set-ExecutionPolicy RemoteSigned
(一時的または永続的に)を使用してスクリプトを許可し、\ ScriptName.ps1で実行します。
また読む: PowerShellスクリプト(PS1)ファイルをWindowsにIEXPRESSでexeに変換します 。