Unblock-File

インターネットからダウンロードされたファイルのブロックを解除します。

構文

Unblock-File
       [-Path] <String[]>
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Unblock-File
       -LiteralPath <String[]>
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

説明

このコマンドレットは、Windows および macOS プラットフォームでのみ機能します。

この Unblock-File コマンドレットを使用すると、インターネットからダウンロードされたファイルを開くことができます。 PowerShell 実行ポリシーが RemoteSigned の場合でも実行できるように、インターネットからダウンロードされた PowerShell スクリプト ファイルのブロックが 解除されます。 既定では、信頼されていないファイルからコンピューターを保護するために、これらのファイルはブロックされています。

コマンドレットを使用する前に 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

コマンドレットの実行前に確認を求めるメッセージが表示されます。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LiteralPath

ブロックを解除するファイルを指定します。 Path とは異なり、LiteralPath パラメーターの値は、型指定されたとおりに使用されます。 ワイルドカードとして解釈される文字はありません。 パスにエスケープ文字が含まれている場合は、単一引用符 (') で囲みます。 単一引用符は、エスケープ シーケンスとして文字を解釈しないように PowerShell に指示します。

Type:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Path

ブロックを解除するファイルを指定します。 ワイルドカード文字がサポートされています。

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:True

-WhatIf

コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

入力

String

このコマンドレットにファイル パスをパイプできます。

出力

None

このコマンドレットは、出力を返しません。

メモ

  • PowerShell 7 で macOS のサポートが追加されました。
  • このコマンドレットは Unblock-File 、ファイル システム ドライブでのみ機能します。
  • Unblock-Fileは、エクスプローラーの [プロパティ] ダイアログ ボックスの [ブロック解除] ボタンと同じ操作を実行します。
  • ブロックされていないファイルでコマンドレットを使用 Unblock-File した場合、コマンドはブロック解除されたファイルに影響を与えず、コマンドレットはエラーを生成しません。