Unblock-File
Hebt die Blockierung von Dateien auf, die aus dem Internet heruntergeladen wurden.
Syntax
ByPath (Standard)
Unblock-File
[-Path] <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ByLiteralPath
Unblock-File
-LiteralPath <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Beschreibung
Dieses Cmdlet funktioniert nur auf den plattformen Windows und macOS.
Mit dem Unblock-File Cmdlet können Sie Dateien öffnen, die aus dem Internet heruntergeladen wurden. Es entsperrt PowerShell-Skriptdateien, die aus dem Internet heruntergeladen wurden, damit Sie sie ausführen können, auch wenn die PowerShell-Ausführungsrichtlinie RemoteSigned ist. Standardmäßig werden diese Dateien blockiert, um den Computer vor nicht vertrauenswürdigen Dateien zu schützen.
Bevor Sie das Unblock-File Cmdlet verwenden, überprüfen Sie die Datei und deren Quelle, und stellen Sie sicher, dass sie geöffnet werden kann.
Intern entfernt das Unblock-File Cmdlet den alternativen Datenstrom Zone.Identifier , der einen Wert aufweist, um 3 anzugeben, dass er aus dem Internet heruntergeladen wurde.
Weitere Informationen zu PowerShell-Ausführungsrichtlinien finden Sie unter about_Execution_Policies.
Dieses Cmdlet wurde in Windows PowerShell 3.0 eingeführt.
Beispiele
Beispiel 1: Aufheben der Blockierung einer Datei
Mit diesem Befehl wird die Blockierung der PowerShellTips.chm Datei aufgehoben.
PS C:\> Unblock-File -Path C:\Users\User01\Documents\Downloads\PowerShellTips.chm
Beispiel 2: Aufheben der Blockierung mehrerer Dateien
Mit diesem Befehl werden alle Dateien im C:\Downloads Verzeichnis aufgehoben, deren Namen "PowerShell" enthalten. Führen Sie einen Befehl wie diesen erst aus, wenn Sie überprüft haben, ob alle Dateien sicher sind.
PS C:\> dir C:\Downloads\*PowerShell* | Unblock-File
Beispiel 3: Suchen und Aufheben der Blockierung von Skripts
Dieser Befehl zeigt, wie Sie PowerShell-Skripts suchen und aufheben.
Der erste Befehl verwendet den Stream-Parameter des Get-Item Cmdlets zum Abrufen von Dateien mit dem Zone.Identifier-Stream .
Der zweite Befehl zeigt, was passiert, wenn Sie ein blockiertes Skript in einer PowerShell-Sitzung ausführen, in der die Ausführungsrichtlinie RemoteSigned ist. Die RemoteSigned-Richtlinie verhindert, dass Skripts ausgeführt werden, die aus dem Internet heruntergeladen werden, es sei denn, sie sind digital signiert.
Der dritte Befehl verwendet das Unblock-File Cmdlet, um die Blockierung des Skripts aufzuheben, damit es in der Sitzung ausgeführt werden kann.
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
Parameter
-Confirm
Fordert Sie zur Bestätigung auf, bevor Sie das Cmdlet ausführen.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | False |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | Cf |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-LiteralPath
Gibt die zu entsperrenden Dateien an. Im Gegensatz zu Path wird der Wert des LiteralPath-Parameters genau so verwendet, wie er eingegeben wurde. Es werden keine Zeichen als Wildcards interpretiert. Wenn der Pfad Escapezeichen enthält, schließen Sie ihn in einfache Anführungszeichen (') ein. Einfache Anführungszeichen signalisieren PowerShell, dass keine Zeichen als Escapesequenzen interpretiert werden sollen.
Parametereigenschaften
| Typ: | String[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | PSPath, EP |
Parametersätze
ByLiteralPath
| Position: | Named |
| Obligatorisch.: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
-Path
Gibt die zu entsperrenden Dateien an. Wildcardzeichen werden unterstützt.
Parametereigenschaften
| Typ: | String[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | True |
| Nicht anzeigen: | False |
Parametersätze
ByPath
| Position: | 0 |
| Obligatorisch.: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-WhatIf
Zeigt, was passiert, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | False |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | Wi |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
CommonParameters
Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.
Eingaben
String
Sie können einen Dateipfad an dieses Cmdlet weiterleiten.
Ausgaben
None
Dieses Cmdlet gibt keine Ausgabe zurück.
Hinweise
- Unterstützung für macOS wurde in PowerShell 7 hinzugefügt.
- Das
Unblock-FileCmdlet funktioniert nur auf Dateisystemlaufwerken. -
Unblock-Fileführt denselben Vorgang wie die Schaltfläche " Blockierung aufheben" im Dialogfeld "Eigenschaften " im Datei-Explorer aus. - Wenn Sie das
Unblock-FileCmdlet für eine Datei verwenden, die nicht blockiert ist, hat der Befehl keine Auswirkungen auf die nicht blockierte Datei, und das Cmdlet generiert keine Fehler.