Unblock-File
Odblokuje pliki pobrane z Internetu.
Składnia
Unblock-File
[-Path] <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Unblock-File
-LiteralPath <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Opis
To polecenie cmdlet działa tylko na platformach Windows i macOS.
Polecenie cmdlet Unblock-File
umożliwia otwieranie plików pobranych z Internetu. Odblokuje pliki skryptów programu PowerShell, które zostały pobrane z Internetu, dzięki czemu można je uruchomić, nawet jeśli zasady wykonywania programu PowerShell są RemoteSigned. Domyślnie te pliki są blokowane w celu ochrony komputera przed niezaufanych plików.
Przed użyciem polecenia cmdlet Unblock-File
przejrzyj plik i jego źródło i sprawdź, czy jest bezpieczny do otwarcia.
Wewnętrznie polecenie cmdlet Unblock-File
usuwa Zone.Identifier alternatywny strumień danych, który ma wartość 3
wskazującą, że został pobrany z Internetu.
Aby uzyskać więcej informacji na temat zasad wykonywania programu PowerShell, zobacz about_Execution_Policies.
To polecenie cmdlet zostało wprowadzone w programie Windows PowerShell 3.0.
Przykłady
Przykład 1. Odblokowywanie pliku
To polecenie odblokuje plik PowerShellTips.chm
.
PS C:\> Unblock-File -Path C:\Users\User01\Documents\Downloads\PowerShellTips.chm
Przykład 2. Odblokowywanie wielu plików
To polecenie odblokuje wszystkie pliki w katalogu C:\Downloads
, którego nazwy obejmują "PowerShell". Nie uruchamiaj polecenia takiego jak ten, dopóki nie potwierdzisz, że wszystkie pliki są bezpieczne.
PS C:\> dir C:\Downloads\*PowerShell* | Unblock-File
Przykład 3. Znajdowanie i odblokowywanie skryptów
To polecenie pokazuje, jak znaleźć i odblokować skrypty programu PowerShell.
Pierwsze polecenie używa parametru Stream polecenia cmdlet Get-Item pobierania plików za pomocą strumienia Zone.Identifier.
Drugie polecenie pokazuje, co się stanie po uruchomieniu zablokowanego skryptu w sesji programu PowerShell, w której zasady wykonywania są RemoteSigned. Zasady RemoteSigned uniemożliwiają uruchamianie skryptów pobranych z Internetu, chyba że są podpisane cyfrowo.
Trzecie polecenie używa polecenia cmdlet Unblock-File
w celu odblokowania skryptu, aby można go było uruchomić w sesji.
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
Parametry
-Confirm
Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.
Typ: | SwitchParameter |
Aliasy: | cf |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-LiteralPath
Określa pliki do odblokowania. W przeciwieństwie do Pathwartość parametru LiteralPath jest używana dokładnie tak, jak jest typowana. Znaki nie są interpretowane jako symbole wieloznaczne. Jeśli ścieżka zawiera znaki ucieczki, należy ująć ją w pojedynczy cudzysłów ('
). Pojedyncze znaki cudzysłowu informują program PowerShell, aby nie interpretował żadnych znaków jako sekwencji ucieczki.
Typ: | String[] |
Aliasy: | PSPath, LP |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-Path
Określa pliki do odblokowania. Obsługiwane są symbole wieloznaczne.
Typ: | String[] |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | True |
-WhatIf
Pokazuje, co się stanie, jeśli polecenie cmdlet zostanie uruchomione. Polecenie cmdlet nie jest uruchamiane.
Typ: | SwitchParameter |
Aliasy: | wi |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
Dane wejściowe
Możesz przekazać ścieżkę pliku do tego polecenia cmdlet.
Dane wyjściowe
None
To polecenie cmdlet nie zwraca żadnych danych wyjściowych.
Uwagi
- Dodano obsługę systemu macOS w programie PowerShell 7.
- Polecenie cmdlet
Unblock-File
działa tylko na dyskach systemu plików. -
Unblock-File
wykonuje tę samą operację co przycisk Odblokuj w oknie dialogowym właściwości w Eksploratorze plików. - Jeśli używasz polecenia cmdlet
Unblock-File
w pliku, który nie jest zablokowany, polecenie nie ma wpływu na odblokowany plik i polecenie cmdlet nie generuje błędów.