Udostępnij za pośrednictwem


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 Get-Item cmdlet 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

W tym przykładzie jest pobierany bieżący katalog C: dysku. 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 C: dysku. Symbol wieloznaczny (*) reprezentuje wszystkie elementy w kontenerze, a nie tylko kontener.

Get-Item C:\*

W programie PowerShell użyj pojedynczej gwiazdki (*), aby pobrać 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ść C:\Windows LastAccessTime katalogu. LastAccessTime to tylko jedna właściwość 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 pokazano zawartość klucza rejestru Microsoft.PowerShell . To polecenie cmdlet można użyć z dostawcą rejestru programu PowerShell, aby uzyskać klucze rejestru i podklucze, ale musisz użyć Get-ItemProperty polecenia cmdlet , 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 (*), aby określić zawartość 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 element l in la---

Przykład 9: dane wyjściowe dla systemów operacyjnych innych niż Windows

W programie PowerShell 7.1 w systemach Get-Item Unix polecenie cmdlet 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

Uwaga

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 wartość 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

Uwaga

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 polecenia 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 nazwę domeny lub wzorzec nazwy, który ma być zgodny z właściwością DNSNameList certyfikatów pobierane przez polecenie cmdlet. Wartość tego parametru może mieć Unicode wartość 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 z Document Encryption 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ść C:\Windows katalogu.

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żka . Dostawca systemu plików jest jedynym zainstalowanym dostawcą programu PowerShell, który obsługuje 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ść C:\Windows katalogu.

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ść LiterałuPath 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 ścieżka nazwy parametru 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 z Server Authentication 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 można pobierać alternatywne strumienie danych z katalogów i 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

String

Możesz potokować ciąg zawierający ścieżkę do tego polecenia cmdlet.

Dane wyjściowe

AliasInfo

Polecenie cmdlet zwraca ten typ podczas uzyskiwania Alias: dostępu do dysku.

X509StoreLocation

X509Store

X509Certificate2

Polecenie cmdlet zwraca te typy podczas uzyskiwania Cert: dostępu do dysku.

DictionaryEntry

Polecenie cmdlet zwraca ten typ podczas uzyskiwania Env: dostępu do dysku.

DirectoryInfo

FileInfo

Polecenie cmdlet zwraca te typy podczas uzyskiwania dostępu do dysków systemu plików.

FunctionInfo

FilterInfo

Polecenie cmdlet zwraca te typy podczas uzyskiwania Function: dostępu do dysków.

RegistryKey

Polecenie cmdlet zwraca ten typ podczas uzyskiwania dostępu do dysków rejestru.

PSVariable

Polecenie cmdlet zwraca ten typ podczas uzyskiwania Variable: dostępu do dysków.

WSManConfigContainerElement

WSManConfigLeafElement

Polecenie cmdlet zwraca te typy podczas uzyskiwania WSMan: dostępu do dysków.

Uwagi

Program PowerShell zawiera następujące aliasy dla programu 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 polecenia Get-ChildItem.

Aby nawigować po rejestrze, użyj tego polecenia cmdlet, aby uzyskać klucze rejestru i Get-ItemProperty 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.