Unblock-File

Sblocca i file scaricati da Internet.

Sintassi

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

Descrizione

Questo cmdlet funziona solo sulle piattaforme Windows e macOS.

Il Unblock-File cmdlet consente di aprire i file scaricati da Internet. Sblocca i file di script di PowerShell scaricati da Internet in modo da poterli eseguire, anche quando i criteri di esecuzione di PowerShell sono RemoteSigned. Per impostazione predefinita, questi file vengono bloccati per proteggere il computer da file non attendibili.

Prima di usare il Unblock-File cmdlet, esaminare il file e l'origine e verificare che sia sicuro aprirlo.

Internamente, il Unblock-File cmdlet rimuove il flusso di dati alternativo Zone.Identifier , che ha un valore di 3 per indicare che è stato scaricato da Internet.

Per altre informazioni sui criteri di esecuzione di PowerShell, vedere about_Execution_Policies.

Questo cmdlet è stato introdotto in Windows PowerShell 3.0.

Esempio

Esempio 1: Sbloccare un file

Questo comando sblocca il PowerShellTips.chm file.

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

Esempio 2: Sbloccare più file

Questo comando sblocca tutti i file nella C:\Downloads directory i cui nomi includono "PowerShell". Non eseguire un comando simile al seguente prima di avere verificato che tutti i file siano sicuri.

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

Esempio 3: Trovare e sbloccare gli script

Questo comando illustra come trovare e sbloccare gli script di PowerShell.

Il primo comando usa il parametro Stream del cmdlet Get-Item recupera i file con il flusso Zone.Identifier .

Il secondo comando mostra cosa accade quando si esegue uno script bloccato in una sessione di PowerShell in cui il criterio di esecuzione è RemoteSigned. Il criterio RemoteSigned impedisce l'esecuzione di script scaricati da Internet, a meno che non siano firmati digitalmente.

Il terzo comando usa il Unblock-File cmdlet per sbloccare lo script in modo che possa essere eseguito nella sessione.

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

Parametri

-Confirm

Richiede conferma prima di eseguire il cmdlet.

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

-LiteralPath

Specifica i file da sbloccare. A differenza di Path, il valore del parametro LiteralPath viene usato esattamente come viene tipizzato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, racchiuderlo tra virgolette singole ('). Le virgolette singole indicano a PowerShell di non interpretare alcun carattere come sequenze di escape.

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

-Path

Specifica i file da sbloccare. I carattere jolly sono supportati.

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

-WhatIf

Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.

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

Input

String

È possibile inviare tramite pipe un percorso di file a questo cmdlet.

Output

None

Questo cmdlet non restituisce output.

Note

  • Il supporto per macOS è stato aggiunto in PowerShell 7.
  • Il Unblock-File cmdlet funziona solo nelle unità del file system.
  • Unblock-Fileesegue la stessa operazione del pulsante Sblocca nella finestra di dialogo Proprietà in Esplora file.
  • Se si usa il Unblock-File cmdlet in un file non bloccato, il comando non ha alcun effetto sul file sbloccato e il cmdlet non genera errori.