次の方法で共有


Unblock-File

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

構文

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

説明

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

Unblock-File コマンドレットを使用する前に、ファイルとそのソースを確認し、安全に開くことができることを確認します。

内部的には、 Unblock-File コマンドレットは、インターネットからダウンロードされたことを示す値 "3" を持つ Zone.Identifier 代替データ ストリームを削除します。

PowerShell 実行ポリシーの詳細については、「about_Execution_Policies」を参照してください。

このコマンドレットは、Windows PowerShell 3.0 で導入されました。

例 1: ファイルのブロックを解除する

PS C:\> Unblock-File -Path C:\Users\User01\Documents\Downloads\PowerShellTips.chm

このコマンドにより、PowerShellTips.chm ファイルのブロックが解除されます。

例 2: 複数のファイルのブロックを解除する

PS C:\> dir C:\Downloads\*PowerShell* | Unblock-File

このコマンドは、C:\Downloads ディレクトリ内の名前に "PowerShell" が含まれるすべてのファイルのブロックを解除します。 すべてのファイルが安全であることを確認するまで、次のようなコマンドを実行しないでください。

例 3: スクリプトの検索とブロック解除

The first command uses the *Stream* parameter of the Get-Item cmdlet get files with the Zone.Identifier stream.Although you could pipe the output directly to the **Unblock-File** cmdlet (Get-Item * -Stream "Zone.Identifier" -ErrorAction SilentlyContinue | ForEach {Unblock-File $_.FileName}), it is prudent to review the file and confirm that it is safe before unblocking.
PS C:\> Get-Item * -Stream "Zone.Identifier" -ErrorAction SilentlyContinue
   FileName: C:\ps-test\Start-ActivityTracker.ps1

Stream                   Length
------                   ------
Zone.Identifier              26

The second command shows what happens when you run a blocked script in a PowerShell session in which the execution policy is **RemoteSigned**. The RemoteSigned policy prevents you from running scripts that are downloaded from the Internet unless they are digitally signed.
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

The third command uses the **Unblock-File** cmdlet to unblock the script so it can run in the session.
PS C:\> Get-Item C:\ps-test\Start-ActivityTracker.ps1 | Unblock-File

このコマンドは、PowerShell スクリプトを見つけてブロックを解除する方法を示します。

パラメーター

-Confirm

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

型:SwitchParameter
Aliases:cf
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-LiteralPath

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

型:String[]
Aliases:PSPath
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-Path

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

型:String[]
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:True

-WhatIf

コマンドレットを実行した場合の動作を示します。 コマンドレットは実行されません。

型:SwitchParameter
Aliases:wi
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

String

ファイルパスを Unblock-Fileにパイプできます。

出力

None

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

メモ

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