Get-Item
Pobiera element w określonej lokalizacji.
Składnia
Get-Item
[-Path] <string[]>
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-Stream <string[]>]
[<CommonParameters>]
Get-Item
-LiteralPath <string[]>
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-Stream <string[]>]
[<CommonParameters>]
Get-Item
[-Path] <string[]>
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-CodeSigningCert]
[-DocumentEncryptionCert]
[-SSLServerAuthentication]
[-DnsName <string>]
[-Eku <string[]>]
[-ExpiringInDays <int>]
[<CommonParameters>]
Get-Item
-LiteralPath <string[]>
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-CodeSigningCert]
[-DocumentEncryptionCert]
[-SSLServerAuthentication]
[-DnsName <string>]
[-Eku <string[]>]
[-ExpiringInDays <int>]
[<CommonParameters>]
Get-Item
[-Path] <string[]>
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[<CommonParameters>]
Get-Item
-LiteralPath <string[]>
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[<CommonParameters>]
Opis
Polecenie cmdlet Get-Item
pobiera element w określonej lokalizacji. Nie pobiera zawartości elementu w lokalizacji, chyba że używasz symbolu wieloznakowego (*
), aby zażądać całej zawartości elementu.
To polecenie cmdlet jest używane przez dostawców programu PowerShell do nawigowania po różnych typach magazynów danych.
Przykłady
Przykład 1. Pobieranie bieżącego katalogu
Ten przykład pobiera bieżący katalog. Kropka ('.') reprezentuje element w bieżącej lokalizacji (a nie jego zawartość).
Get-Item .
Directory: C:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 7/26/2006 10:01 AM ps-test
Przykład 2. Pobieranie wszystkich elementów w bieżącym katalogu
Ten przykład pobiera wszystkie elementy w bieżącym katalogu. Symbol wieloznaczny (*
) reprezentuje całą zawartość bieżącego elementu.
Get-Item *
Directory: C:\ps-test
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 7/26/2006 9:29 AM Logs
d---- 7/26/2006 9:26 AM Recs
-a--- 7/26/2006 9:28 AM 80 date.csv
-a--- 7/26/2006 10:01 AM 30 filenoext
-a--- 7/26/2006 9:30 AM 11472 process.doc
-a--- 7/14/2006 10:47 AM 30 test.txt
Przykład 3. Pobieranie bieżącego katalogu dysku
Ten przykład pobiera bieżący katalog dysku C:
. Pobrany obiekt reprezentuje tylko katalog, a nie jego zawartość.
Get-Item C:
Przykład 4. Pobieranie elementów na określonym dysku
Ten przykład pobiera elementy na dysku C:
. Symbol wieloznaczny (*
) reprezentuje wszystkie elementy w kontenerze, a nie tylko kontener.
Get-Item C:\*
W programie PowerShell użyj jednej gwiazdki (*
), aby uzyskać zawartość, zamiast tradycyjnej *.*
. Format jest interpretowany dosłownie, więc *.*
nie pobiera katalogów ani nazw plików bez kropki.
Przykład 5. Pobieranie właściwości w określonym katalogu
Ten przykład pobiera właściwość LastAccessTime katalogu C:\Windows
.
LastAccessTime jest tylko jedną właściwością katalogów systemu plików. Aby wyświetlić wszystkie właściwości katalogu, wpisz (Get-Item <directory-name>) | Get-Member
.
(Get-Item C:\Windows).LastAccessTime
Przykład 6. Wyświetlanie zawartości klucza rejestru
W tym przykładzie przedstawiono zawartość klucza rejestru Microsoft.PowerShell. Możesz użyć tego polecenia cmdlet z dostawcą rejestru programu PowerShell, aby uzyskać klucze rejestru i podklucze, ale musisz użyć polecenia cmdlet Get-ItemProperty
, aby uzyskać wartości rejestru i dane.
Get-Item HKLM:\Software\Microsoft\PowerShell\1\Shellids\Microsoft.PowerShell\
Przykład 7. Pobieranie elementów w katalogu z wykluczeniem
Ten przykład pobiera elementy w katalogu systemu Windows z nazwami, które zawierają kropkę (.
), ale nie zaczynają się od w*
. Ten przykład działa tylko wtedy, gdy ścieżka zawiera symbol wieloznaczny (*
) w celu określenia zawartości elementu.
Get-Item C:\Windows\*.* -Exclude "w*"
Przykład 8. Pobieranie informacji o twardych linkach
W programie PowerShell 6.2 dodano widok alternatywny w celu uzyskania informacji o twardych linkach. Aby uzyskać informacje o twardych linkach, należy przekazać dane wyjściowe do Format-Table -View childrenWithHardlink
Get-Item C:\Windows\System32\ntoskrnl.exe | Format-Table -view childrenWithHardLink
Directory: C:\Windows\System32
Mode LastWriteTime Length Name
---- ------------- ------ ----
la--- 5/12/2021 7:40 AM 10848576 ntoskrnl.exe
Właściwość Mode
identyfikuje hardlink przez l
w la---
Przykład 9: dane wyjściowe dla systemów operacyjnych innych niż Windows
W programie PowerShell 7.1 w systemach Unix polecenie cmdlet Get-Item
zapewnia dane wyjściowe podobne do systemu Unix:
PS> Get-Item /Users
Directory: /
UnixMode User Group LastWriteTime Size Name
-------- ---- ----- ------------- ---- ----
drwxr-xr-x root admin 12/20/2019 11:46 192 Users
Nowe właściwości, które są teraz częścią danych wyjściowych, to:
- UnixMode to uprawnienia do plików reprezentowane w systemie Unix
- użytkownik jest właścicielem pliku
- grupa jest właścicielem grupy
- rozmiar jest rozmiarem pliku lub katalogu reprezentowanego w systemie Unix
Nuta
Ta funkcja została przeniesiona z eksperymentalnego do głównego nurtu w programie PowerShell 7.1.
Parametry
-CodeSigningCert
Jest to parametr dynamiczny udostępniany przez dostawcę certyfikatów. Ten parametr i dostawca certyfikatów są dostępne tylko w systemie Windows.
Aby uzyskać certyfikaty, które mają Code Signing
w wartości właściwości EnhancedKeyUsageList, użyj parametru CodeSigningCert.
Aby uzyskać więcej informacji, zobacz about_Certificate_Provider.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Credential
Nuta
Ten parametr nie jest obsługiwany przez żadnych dostawców zainstalowanych w programie PowerShell. Aby personifikować innego użytkownika lub podnieść poziom poświadczeń podczas uruchamiania tego polecenia cmdlet, użyj Invoke-Command.
Typ: | PSCredential |
Position: | Named |
Domyślna wartość: | Current user |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-DnsName
Jest to parametr dynamiczny udostępniany przez dostawcę certyfikatów. Ten parametr i dostawca certyfikatów są dostępne tylko w systemie Windows.
Określa wzorzec nazwy domeny lub nazwy, który ma być zgodny z właściwością DNSNameList certyfikatów pobierane przez polecenie cmdlet. Wartość tego parametru może być Unicode
lub ASCII
. Wartości punycode są konwertowane na Unicode. Dozwolone są symbole wieloznaczne (*
).
Ten parametr został przywrócony w programie PowerShell 7.1
Aby uzyskać więcej informacji, zobacz about_Certificate_Provider.
Typ: | DnsNameRepresentation |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | True |
-DocumentEncryptionCert
Jest to parametr dynamiczny udostępniany przez dostawcę certyfikatów. Ten parametr i dostawca certyfikatów są dostępne tylko w systemie Windows.
Aby uzyskać certyfikaty, które mają Document Encryption
w wartości właściwości EnhancedKeyUsageList, użyj parametru DocumentEncryptionCert.
Aby uzyskać więcej informacji, zobacz about_Certificate_Provider.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Eku
Jest to parametr dynamiczny udostępniany przez dostawcę certyfikatów. Ten parametr i dostawca certyfikatów są dostępne tylko w systemie Windows.
Określa tekst lub wzorzec tekstu zgodny z właściwością EnhancedKeyUsageList certyfikatów pobierane przez polecenie cmdlet. Dozwolone są symbole wieloznaczne (*
). Właściwość EnhancedKeyUsageList zawiera przyjazną nazwę i pola identyfikatora OID EKU.
Ten parametr został przywrócony w programie PowerShell 7.1
Aby uzyskać więcej informacji, zobacz about_Certificate_Provider.
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | True |
-Exclude
Określa jako tablicę ciągów element lub elementy, które to polecenie cmdlet wyklucza w operacji. Wartość tego parametru kwalifikuje parametr Path. Wprowadź element ścieżki lub wzorzec, taki jak *.txt
. Dozwolone są symbole wieloznaczne. Parametr Exclude jest skuteczny tylko wtedy, gdy polecenie zawiera zawartość elementu, na przykład C:\Windows\*
, gdzie symbol wieloznaczny określa zawartość katalogu C:\Windows
.
Typ: | String[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | True |
-ExpiringInDays
Jest to parametr dynamiczny udostępniany przez dostawcę certyfikatów. Ten parametr i dostawca certyfikatów są dostępne tylko w systemie Windows.
Określa, że polecenie cmdlet powinno zwracać tylko certyfikaty wygasające lub przed określoną liczbą dni. Wartość zero (0
) pobiera certyfikaty, które wygasły.
Ten parametr został przywrócony w programie PowerShell 7.1
Aby uzyskać więcej informacji, zobacz about_Certificate_Provider.
Typ: | Int32 |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Filter
Określa filtr, aby zakwalifikować parametr ścieżki. Dostawca FileSystem jest jedynym zainstalowanym dostawcą programu PowerShell obsługującym filtry. Filtry są bardziej wydajne niż inne parametry. Dostawca stosuje filtr, gdy polecenie cmdlet pobiera obiekty, a nie program PowerShell filtruje obiekty po ich pobraniu. Ciąg filtru jest przekazywany do interfejsu API platformy .NET w celu wyliczenia plików. Interfejs API obsługuje tylko symbole wieloznaczne *
i ?
.
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | True |
-Force
Wskazuje, że to polecenie cmdlet pobiera elementy, do których nie można uzyskać dostępu, na przykład ukryte elementy. Implementacja różni się od dostawcy do dostawcy. Aby uzyskać więcej informacji, zobacz about_Providers. Nawet przy użyciu parametru Force polecenie cmdlet nie może zastąpić ograniczeń zabezpieczeń.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Include
Określa jako tablicę ciągów element lub elementy, które to polecenie cmdlet zawiera w operacji. Wartość tego parametru kwalifikuje parametr Path. Wprowadź element ścieżki lub wzorzec, taki jak *.txt
. Dozwolone są symbole wieloznaczne. Parametr Include jest skuteczny tylko wtedy, gdy polecenie zawiera zawartość elementu, na przykład C:\Windows\*
, gdzie symbol wieloznaczny określa zawartość katalogu C:\Windows
.
Typ: | String[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | True |
-LiteralPath
Określa ścieżkę do co najmniej jednej lokalizacji. Wartość 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.
Aby uzyskać więcej informacji, zobacz about_Quoting_Rules.
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 ścieżkę do elementu. To polecenie cmdlet pobiera element w określonej lokalizacji. Dozwolone są symbole wieloznaczne. Ten parametr jest wymagany, ale nazwa parametru Ścieżka jest opcjonalna.
Użyj kropki (.
), aby określić bieżącą lokalizację. Użyj symbolu wieloznakowego (*
), aby określić wszystkie elementy w bieżącej lokalizacji.
Typ: | String[] |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | True |
-SSLServerAuthentication
Jest to parametr dynamiczny udostępniany przez dostawcę certyfikatów. Ten parametr i dostawca certyfikatów są dostępne tylko w systemie Windows.
Aby uzyskać certyfikaty, które mają Server Authentication
w wartości właściwości EnhancedKeyUsageList, użyj parametru SSLServerAuthentication.
Aby uzyskać więcej informacji, zobacz about_Certificate_Provider.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Stream
Jest to parametr dynamiczny udostępniany przez dostawcę systemu plików. Ten parametr jest dostępny tylko w systemie Windows.
Pobiera określony alternatywny strumień danych z pliku. Wprowadź nazwę strumienia. Obsługiwane są symbole wieloznaczne. Aby pobrać wszystkie strumienie, użyj gwiazdki (*
). Ten parametr jest prawidłowy w katalogach, ale należy pamiętać, że katalogi nie mają domyślnie strumieni danych.
Ten parametr został wprowadzony w programie PowerShell 3.0. Od programu PowerShell 7.2 Get-Item
mogą pobierać alternatywne strumienie danych z katalogów, a także plików.
Aby uzyskać więcej informacji, zobacz about_FileSystem_Provider.
Typ: | String[] |
Position: | Named |
Domyślna wartość: | No alternate file streams |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | True |
Dane wejściowe
Możesz potokować ciąg zawierający ścieżkę do tego polecenia cmdlet.
Dane wyjściowe
Polecenie cmdlet zwraca ten typ podczas uzyskiwania dostępu do dysku Alias:
.
Polecenie cmdlet zwraca te typy podczas uzyskiwania dostępu do dysku Cert:
.
Polecenie cmdlet zwraca ten typ podczas uzyskiwania dostępu do dysku Env:
.
Polecenie cmdlet zwraca te typy podczas uzyskiwania dostępu do dysków systemu plików.
Polecenie cmdlet zwraca te typy podczas uzyskiwania dostępu do dysków Function:
.
Polecenie cmdlet zwraca ten typ podczas uzyskiwania dostępu do dysków rejestru.
Polecenie cmdlet zwraca ten typ podczas uzyskiwania dostępu do dysków Variable:
.
Polecenie cmdlet zwraca te typy podczas uzyskiwania dostępu do dysków WSMan:
.
Uwagi
Program PowerShell zawiera następujące aliasy dla Get-Item
:
- Wszystkie platformy:
gi
To polecenie cmdlet nie ma parametru Recurse, ponieważ pobiera tylko element, a nie jego zawartość.
Aby uzyskać zawartość elementu rekursywnie, użyj Get-ChildItem
.
Aby przejść przez rejestr, użyj tego polecenia cmdlet, aby uzyskać klucze rejestru i Get-ItemProperty
, aby uzyskać wartości rejestru i dane. Wartości rejestru są uważane za właściwości klucza rejestru.
To polecenie cmdlet jest przeznaczone do pracy z danymi udostępnianymi przez dowolnego dostawcę. Aby wyświetlić listę dostawców dostępnych w sesji, wpisz Get-PSProvider
. Aby uzyskać więcej informacji, zobacz about_Providers.