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 Unblock-File
cmdlet umożliwia otwieranie plików pobranych z Internetu. Odblokuje pliki skryptów programu PowerShell, które zostały pobrane z Internetu, aby można było 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 Unblock-File
polecenia cmdlet przejrzyj plik i jego źródło i sprawdź, czy jest bezpieczny do otwarcia.
Unblock-File
Wewnętrznie polecenie cmdlet usuwa alternatywny strumień danych Zone.Identifier, 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 PowerShellTips.chm
plik.
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 C:\Downloads
katalogu, których 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 pobierz pliki ze strumieniem 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 zostały podpisane cyfrowo.
Trzecie polecenie używa Unblock-File
polecenia cmdlet do 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 ścieżki, wartość 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 znaki pojedynczego cudzysłowu ('
). 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 po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie zostało uruchomione.
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
Unblock-File
cmdlet 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 Eksplorator plików.- Jeśli używasz
Unblock-File
polecenia cmdlet w pliku, który nie jest zablokowany, polecenie nie ma wpływu na odblokowany plik i polecenie cmdlet nie generuje błędów.