Get-Item

Ottiene l'elemento nel percorso specificato.

Sintassi

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

Descrizione

Il Get-Item cmdlet ottiene l'elemento nella posizione specificata. Non ottiene il contenuto dell'elemento nella posizione, a meno che non si usi un carattere jolly (*) per richiedere tutto il contenuto dell'elemento.

Questo cmdlet viene usato dai provider di PowerShell per spostarsi tra diversi tipi di archivi dati.

Esempio

Esempio 1: Ottenere la directory corrente

In questo esempio viene recuperata la directory corrente. Il punto ('.') rappresenta l'elemento nella posizione corrente (non il relativo contenuto).

Get-Item .

Directory: C:\

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----         7/26/2006  10:01 AM            ps-test

Esempio 2: Ottenere tutti gli elementi nella directory corrente

In questo esempio vengono restituiti tutti gli elementi nella directory corrente. Il carattere jolly (*) rappresenta tutto il contenuto dell'elemento corrente.

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

Esempio 3: Ottenere la directory corrente di un'unità

In questo esempio viene recuperata la directory corrente dell'unità C: . L'oggetto recuperato rappresenta solo la directory, non il relativo contenuto.

Get-Item C:

Esempio 4: Ottenere elementi nell'unità specificata

Questo esempio ottiene gli elementi nell'unità C: . Il carattere jolly (*) rappresenta tutti gli elementi nel contenitore, non solo il contenitore.

Get-Item C:\*

In PowerShell usare un singolo asterisco (*) per ottenere il contenuto anziché il tradizionale *.*. Il formato viene interpretato letteralmente, quindi *.* non recupererebbe directory o nomi file senza un punto.

Esempio 5: Ottenere una proprietà nella directory specificata

In questo esempio viene recuperata la proprietà LastAccessTime della C:\Windows directory . LastAccessTime è solo una proprietà delle directory del file system. Per visualizzare tutte le proprietà di una directory, digitare (Get-Item <directory-name>) | Get-Member.

(Get-Item C:\Windows).LastAccessTime

Esempio 6: Visualizzare il contenuto di una chiave del Registro di sistema

Questo esempio mostra il contenuto della chiave del Registro di sistema Microsoft.PowerShell . È possibile usare questo cmdlet con il provider del Registro di sistema di PowerShell per ottenere chiavi e sottochiavi del Registro di sistema, ma è necessario usare il Get-ItemProperty cmdlet per ottenere i valori e i dati del Registro di sistema.

Get-Item HKLM:\Software\Microsoft\Powershell\1\Shellids\Microsoft.Powershell\

Esempio 7: Ottenere elementi in una directory con un'esclusione

Questo esempio ottiene gli elementi nella directory di Windows con nomi che includono un punto (.), ma non iniziano con w*. Questo esempio funziona solo quando il percorso include un carattere jolly (*) per specificare il contenuto dell'elemento.

Get-Item C:\Windows\*.* -Exclude "w*"

Esempio 8: Recupero di informazioni sul collegamento rigido

In PowerShell 6.2 è stata aggiunta una visualizzazione alternativa per ottenere informazioni sul collegamento rigido. Per ottenere le informazioni sul collegamento rigido, inviare tramite pipe l'output a 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

La Mode proprietà identifica il collegamento hardlink da l in la---

Esempio 9: output per sistemi operativi non Windows

In PowerShell 7.1 nei sistemi Unix, il Get-Item cmdlet fornisce un output simile a Unix:

PS> Get-Item /Users

Directory: /

UnixMode    User  Group   LastWriteTime      Size  Name
--------    ----  -----   -------------      ----  ----
drwxr-xr-x  root  admin   12/20/2019 11:46   192   Users

Le nuove proprietà che fanno ora parte dell'output sono:

  • UnixMode è le autorizzazioni di file rappresentate in un sistema Unix
  • L'utente è il proprietario del file
  • Il gruppo è il proprietario del gruppo
  • Le dimensioni sono le dimensioni del file o della directory come rappresentato in un sistema Unix

Nota

Questa funzionalità è stata spostata da sperimentale a mainstream in PowerShell 7.1.

Parametri

-CodeSigningCert

Si tratta di un parametro dinamico reso disponibile dal provider di certificati . Questo parametro e il provider di certificati sono disponibili solo in Windows.

Per ottenere i certificati con Code Signing il valore della proprietà EnhancedKeyUsageList , usare il parametro CodeSigningCert .

Per altre informazioni, vedere about_Certificate_Provider.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Nota

Questo parametro non è supportato da alcun provider installato con PowerShell. Per rappresentare un altro utente o elevare le credenziali durante l'esecuzione di questo cmdlet, usare Invoke-Command.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-DnsName

Si tratta di un parametro dinamico reso disponibile dal provider di certificati . Questo parametro e il provider di certificati sono disponibili solo in Windows.

Specifica un nome di dominio o un modello di nome che deve corrispondere alla proprietà DNSNameList dei certificati che ottiene il cmdlet. Il valore di questo parametro può essere Unicode o ASCII. I valori Punycode vengono convertiti in Unicode. Sono consentiti caratteri jolly (*).

Questo parametro è stato reintrodotto in PowerShell 7.1

Per altre informazioni, vedere about_Certificate_Provider.

Type:DnsNameRepresentation
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-DocumentEncryptionCert

Si tratta di un parametro dinamico reso disponibile dal provider di certificati . Questo parametro e il provider di certificati sono disponibili solo in Windows.

Per ottenere i certificati con Document Encryption il valore della proprietà EnhancedKeyUsageList , usare il parametro DocumentEncryptionCert .

Per altre informazioni, vedere about_Certificate_Provider.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Eku

Si tratta di un parametro dinamico reso disponibile dal provider di certificati . Questo parametro e il provider di certificati sono disponibili solo in Windows.

Specifica il testo o un criterio di testo da associare alla proprietà EnhancedKeyUsageList dei certificati che ottiene il cmdlet. Sono consentiti caratteri jolly (*). La proprietà EnhancedKeyUsageList contiene il nome descrittivo e i campi OID dell'EKU.

Questo parametro è stato reintrodotto in PowerShell 7.1

Per altre informazioni, vedere about_Certificate_Provider.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Exclude

Specifica, come matrice di stringhe, un elemento o elementi esclusi dal cmdlet nell'operazione. Il valore di questo parametro qualifica il parametro Path . Immettere un elemento o un modello di percorso, ad esempio *.txt. I caratteri jolly sono consentiti. Il parametro Exclude è effettivo solo quando il comando include il contenuto di un elemento, ad esempio C:\Windows\*, dove il carattere jolly specifica il contenuto della C:\Windows directory.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-ExpiringInDays

Si tratta di un parametro dinamico reso disponibile dal provider di certificati . Questo parametro e il provider di certificati sono disponibili solo in Windows.

Specifica che il cmdlet deve restituire solo i certificati in scadenza o prima del numero di giorni specificato. Un valore zero (0) ottiene i certificati scaduti.

Questo parametro è stato reintrodotto in PowerShell 7.1

Per altre informazioni, vedere about_Certificate_Provider.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Filter

Specifica un filtro per qualificare il parametro Path . Il provider FileSystem è l'unico provider di PowerShell installato che supporta i filtri. I filtri sono più efficienti rispetto ad altri parametri. Il provider applica un filtro quando il cmdlet ottiene gli oggetti anziché filtrare gli oggetti di PowerShell dopo il recupero. La stringa di filtro viene passata all'API .NET per enumerare i file. L'API supporta * solo i caratteri jolly e ? .

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Force

Indica che questo cmdlet ottiene elementi a cui non è possibile accedere altrimenti, ad esempio elementi nascosti. L'implementazione varia a seconda del provider. Per altre informazioni, vedere about_Providers. Anche usando il parametro Force , il cmdlet non può eseguire l'override delle restrizioni di sicurezza.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Include

Specifica, come matrice di stringhe, un elemento o elementi inclusi nel cmdlet nell'operazione. Il valore di questo parametro qualifica il parametro Path . Immettere un elemento o un modello di percorso, ad esempio *.txt. I caratteri jolly sono consentiti. Il parametro Include è effettivo solo quando il comando include il contenuto di un elemento, ad esempio C:\Windows\*, dove il carattere jolly specifica il contenuto della C:\Windows directory.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-LiteralPath

Specifica un percorso di una o più posizioni. Il valore di LiteralPath viene usato esattamente come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, racchiuderlo tra virgolette singole. Le virgolette singole indicano a PowerShell di non interpretare alcun carattere come sequenze di escape.

Per altre informazioni, vedere about_Quoting_Rules.

Type:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Path

Specifica il percorso di un elemento. Questo cmdlet ottiene l'elemento nella posizione specificata. I caratteri jolly sono consentiti. Questo parametro è obbligatorio, ma il nome del parametro Path è facoltativo.

Usare un punto (.) per specificare la posizione corrente. Usare il carattere jolly (*) per specificare tutti gli elementi nella posizione corrente.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-SSLServerAuthentication

Si tratta di un parametro dinamico reso disponibile dal provider di certificati . Questo parametro e il provider di certificati sono disponibili solo in Windows.

Per ottenere i certificati con Server Authentication il valore della proprietà EnhancedKeyUsageList , usare il parametro SSLServerAuthentication .

Per altre informazioni, vedere about_Certificate_Provider.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Stream

Si tratta di un parametro dinamico reso disponibile dal provider FileSystem . Questo parametro è disponibile solo in Windows.

Ottiene il flusso di dati alternativo specificato dal file. Immettere il nome del flusso. Sono supportati caratteri jolly. Per ottenere tutti i flussi, usare un asterisco (*). Questo parametro è valido nelle directory, ma si noti che le directory non dispongono di flussi di dati per impostazione predefinita.

Questo parametro è stato introdotto in PowerShell 3.0. A partire da PowerShell 7.2, Get-Item può ottenere flussi di dati alternativi da directory e file.

Per altre informazioni, vedere about_FileSystem_Provider.

Type:String[]
Position:Named
Default value:No alternate file streams
Required:False
Accept pipeline input:False
Accept wildcard characters:True

Input

String

È possibile inviare tramite pipe una stringa contenente un percorso a questo cmdlet.

Output

AliasInfo

Il cmdlet restituisce questo tipo quando si accede all'unità Alias: .

X509StoreLocation

X509Store

X509Certificate2

Il cmdlet restituisce questi tipi quando si accede all'unità Cert: .

DictionaryEntry

Il cmdlet restituisce questo tipo quando si accede all'unità Env: .

DirectoryInfo

FileInfo

Il cmdlet restituisce questi tipi quando si accede alle unità del file system.

FunctionInfo

FilterInfo

Il cmdlet restituisce questi tipi quando si accede alle Function: unità.

RegistryKey

Il cmdlet restituisce questo tipo quando si accede alle unità del Registro di sistema.

PSVariable

Il cmdlet restituisce questo tipo quando si accede alle Variable: unità.

WSManConfigContainerElement

WSManConfigLeafElement

Il cmdlet restituisce questi tipi quando si accede alle WSMan: unità.

Note

PowerShell include gli alias seguenti per Get-Item:

  • Tutte le piattaforme:
    • gi

Questo cmdlet non ha un parametro Recurse , perché ottiene solo un elemento, non il relativo contenuto. Per ottenere il contenuto di un elemento in modo ricorsivo, usare Get-ChildItem.

Per spostarsi nel Registro di sistema, usare questo cmdlet per ottenere le chiavi del Registro di sistema e Get-ItemProperty per ottenere valori e dati del Registro di sistema. I valori del Registro di sistema sono considerati proprietà della chiave del Registro di sistema.

Questo cmdlet è progettato per lavorare con i dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare Get-PsProvider. Per altre informazioni, vedere about_Providers.