Unblock-File
インターネットからダウンロードされたファイルのブロックを解除します。
構文
ByPath (既定)
Unblock-File
[-Path] <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ByLiteralPath
Unblock-File
-LiteralPath <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
説明
このコマンドレットは、Windows および macOS プラットフォームでのみ機能します。
Unblock-File コマンドレットを使用すると、インターネットからダウンロードしたファイルを開くことができます。 インターネットからダウンロードされた PowerShell スクリプト ファイルのブロックが解除されるため、PowerShell 実行ポリシーが RemoteSigned されている場合でも実行できます。 既定では、これらのファイルは、信頼されていないファイルからコンピューターを保護するためにブロックされます。
Unblock-File コマンドレットを使用する前に、ファイルとそのソースを確認し、安全に開くことができることを確認します。
内部的には、Unblock-File コマンドレットは、Zone.Identifier 代替データ ストリームを削除します。これは、インターネットからダウンロードされたことを示す値が 3 です。
PowerShell 実行ポリシーの詳細については、「about_Execution_Policies」を参照してください。
このコマンドレットは、Windows PowerShell 3.0 で導入されました。
例
例 1: ファイルのブロックを解除する
このコマンドは、PowerShellTips.chm ファイルのブロックを解除します。
PS C:\> Unblock-File -Path C:\Users\User01\Documents\Downloads\PowerShellTips.chm
例 2: 複数のファイルのブロックを解除する
このコマンドは、名前に "PowerShell" が含まれる C:\Downloads ディレクトリ内のすべてのファイルのブロックを解除します。 すべてのファイルが安全であることを確認するまで、次のようなコマンドを実行しないでください。
PS C:\> dir C:\Downloads\*PowerShell* | Unblock-File
例 3: スクリプトの検索とブロック解除
このコマンドは、PowerShell スクリプトを見つけてブロックを解除する方法を示します。
最初のコマンドでは、Get-Item コマンドレットの Stream パラメーターを使用して、Zone.Identifier ストリームを含むファイルを取得します。
2 番目のコマンドは、実行ポリシーが RemoteSigned されている PowerShell セッションでブロックされたスクリプトを実行した場合の動作を示しています。 RemoteSigned ポリシーを使用すると、デジタル署名されていない限り、インターネットからダウンロードされたスクリプトを実行できなくなります。
3 番目のコマンドでは、Unblock-File コマンドレットを使用してスクリプトのブロックを解除し、セッションで実行できるようにします。
PS C:\> Get-Item * -Stream "Zone.Identifier" -ErrorAction SilentlyContinue
FileName: C:\ps-test\Start-ActivityTracker.ps1
Stream Length
------ ------
Zone.Identifier 26
PS C:\> C:\ps-test\Start-ActivityTracker.ps1
C:\ps-test\Start-ActivityTracker.ps1 : File C:\ps-test\Start-ActivityTracker.ps1 cannot
be loaded. The file C:\ps-test\Start-ActivityTracker.ps1 is not digitally signed. The script
will not execute on the system. For more information, see about_Execution_Policies.
At line:1 char:1
+ C:\ps-test\Start-ActivityTracker.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : SecurityError: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
PS C:\> Get-Item C:\ps-test\Start-ActivityTracker.ps1 | Unblock-File
パラメーター
-Confirm
コマンドレットを実行する前に確認を求めるメッセージが表示されます。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | False |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | cf |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-LiteralPath
ブロックを解除するファイルを指定します。
Pathとは異なり、LiteralPath パラメーターの値は、型指定されたとおりに使用されます。 ワイルドカードとして解釈される文字はありません。 パスにエスケープ文字が含まれている場合は、単一引用符 (') で囲みます。 単一引用符は、エスケープ シーケンスとして文字を解釈しないように PowerShell に指示します。
パラメーターのプロパティ
| 型: | String[] |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | PSPath, LP |
パラメーター セット
ByLiteralPath
| 配置: | Named |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-Path
ブロックを解除するファイルを指定します。 ワイルドカード文字がサポートされています。
パラメーターのプロパティ
| 型: | String[] |
| 規定値: | None |
| ワイルドカードのサポート: | True |
| DontShow: | False |
パラメーター セット
ByPath
| 配置: | 0 |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-WhatIf
コマンドレットを実行した場合の動作を示します。 コマンドレットは実行されません。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | False |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | ウィスコンシン |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
CommonParameters
このコマンドレットでは、一般的なパラメーター -Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction、-WarningVariable の各パラメーターがサポートされています。 詳細については、about_CommonParametersを参照してください。
入力
String
このコマンドレットにファイル パスをパイプできます。
出力
None
このコマンドレットは出力を返しません。
メモ
- PowerShell 7 で macOS のサポートが追加されました。
-
Unblock-Fileコマンドレットは、ファイル システム ドライブでのみ機能します。 -
Unblock-Fileは、エクスプローラーの [プロパティ] ダイアログ ボックスの [のブロック解除] ボタンと同じ操作を実行します。 - ブロックされていないファイルで
Unblock-Fileコマンドレットを使用する場合、コマンドはブロック解除されたファイルに影響を与えません。また、コマンドレットはエラーを生成しません。