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 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

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 Unblock-File cmdlet działa tylko na dyskach systemu plików.
  • Unblock-Filewykonuje 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.