Udostępnij za pośrednictwem


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

String

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.