PowerShell を使用してファイルのブロックを解除する
Windows ベースのオペレーティング システムを使用している場合、次のメッセージが表示されることがあります。
This file came from another computer and might be blocked to help protect this computer.
たとえば、インターネットからダウンロードしたファイルを開こうとすると、警告が表示されることがあります。 この記事では、PowerShell を使用してインターネットからダウンロードしたファイルのブロックを解除して許可する方法について説明します。
PowerShell を使用してファイルのブロックを解除する
この記事では、PowerShell 3.0 で導入された PowerShell ネイティブ コマンドレット Unblock-File
を使用します。
Unblock-File
コマンドレットを使用すると、インターネットからダウンロードしたファイルを開くことができます。 さらに、インターネットからダウンロードした Windows PowerShell スクリプト ファイルのブロックを解除して、Windows PowerShell 実行ポリシーが RemoteSigned
に設定されている場合でも実行できるようにします。
これらのファイルは、信頼できないファイルからコンピューターを保護するために、デフォルトでブロックされています。
基本的な構文:
Unblock-File [-Path*] <String[]> [-Confirm] [-WhatIf] [<CommonParameters>]
内部的に、Unblock-File
コマンドレットは Zone.Identifier
代替データ ストリームを削除します。これは、インターネットからダウンロードしたことを示す 3
の値を持っています。 Windows PowerShell 実行ポリシーの詳細については、about_Execution_Policies を参照してください。
パラメーター
Unblock-File
コマンドレットで使用できるパラメーターの一部を次に示します。
-
-Confirm
: このパラメーターは、コマンドレットを実行する前に確認を求めます。 -
-LiteralPath
: ブロックを解除するファイルを指定します。Path
とは異なり、LiteralPath
パラメーターの値は入力されたとおりに使用されます。 ワイルドカードとして解釈される文字はありません。パスにエスケープ文字が含まれている場合は、一重引用符で囲みます。 単一引用符は、文字をエスケープ シーケンスとして解釈しないように Windows PowerShell に指示します。
-
-Path
: ブロックを解除するファイルを指定します。 ワイルドカード文字がサポートされています。 -
-WhatIf
: コマンドレットを実行するとどうなるかを示します。 コマンドレットは実行されません。
例
ブロックされたファイルのファイル パスを指定して、Unblock-File
コマンドレットを使用できます。
Unblock-File -Path C:\Downloads\SampleFile.exe
主に、プロセスを自動化するか、一括処理する必要があるため、PowerShell を使用しています。 パイプラインで Unblock-File
コマンドを使用できるため、フォルダー内のすべてのコンテンツを照会した後に、このコマンドを使用できます。
クエリが実行されると、Unblock-File
コマンドですべてのファイルが処理されます。
dir -Path "C:\Downloads" -Recurse | Unblock-File
さらに、Unblock-File
コマンドレットは、ファイル システム ドライブでのみ機能します。 Unblock-File
コマンドレットは、ファイル エクスプローラーの [プロパティ] ダイアログ ボックスの [ブロック解除] ボタンと同じ操作を実行します。
したがって、ブロックされていないファイルで Unblock-File
コマンドレットを使用しても、コマンドはブロックされていないファイルに影響を与えず、コマンドレットはエラーを生成しません。
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn