Condividi tramite


Get-Item

Ottiene l'elemento nella posizione specificata.

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 cmdlet Get-Item ottiene l'elemento alla 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: Recuperare la directory corrente

In questo esempio viene ottenuta 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 della directory corrente. Il carattere universale (*) 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: Recuperare gli elementi sull'unità specificata

Questo esempio ottiene i file 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 directory C:\Windows. 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 cmdlet Get-ItemProperty per ottenere i valori e i dati del Registro di sistema.

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

Esempio 7: Ottenere gli elementi in una directory che hanno un'esclusione

Questo esempio recupera gli elementi nella directory di Windows con nomi che includono un punto (.), ma che non iniziano con w*. Questo esempio funziona solo quando il percorso include un carattere jolly (*) per specificare i contenuti 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 proprietà Mode identifica il collegamento hardlink con il l in la---

Esempio 9: output per sistemi operativi non Windows

In PowerShell 7.1 nei sistemi Unix, il cmdlet Get-Item fornisce 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 è costituito dalle autorizzazioni per i file rappresentate in un sistema Unix
  • User è il proprietario del file
  • Group è il proprietario del gruppo
  • Dimensione è la dimensione 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 del certificato . Questo parametro e il provider del certificato sono disponibili solo su Windows.

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

Per altre informazioni, vedere about_Certificate_Provider.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Credential

Nota

Questo parametro non è supportato da alcun provider installato con PowerShell. Per rappresentare un altro utente o elevare le credenziali quando si esegue questo cmdlet, usare Invoke-Command.

Tipo:PSCredential
Posizione:Named
Valore predefinito:Current user
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-DnsName

Si tratta di un parametro dinamico reso disponibile dal provider del certificato . Questo parametro e il provider del certificato sono disponibili solo su Windows.

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

Questo parametro è stato reintrodotto in PowerShell 7.1

Per altre informazioni, vedere about_Certificate_Provider.

Tipo:DnsNameRepresentation
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:True

-DocumentEncryptionCert

Si tratta di un parametro dinamico reso disponibile dal provider del certificato . Questo parametro e il provider del certificato sono disponibili solo su Windows.

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

Per altre informazioni, vedere about_Certificate_Provider.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Eku

Si tratta di un parametro dinamico reso disponibile dal provider del certificato . Questo parametro e il provider del certificato sono disponibili solo su Windows.

Specifica il testo o un modello di testo da associare alla proprietà EnhancedKeyUsageList dei certificati che il cmdlet ottiene. I caratteri jolly (*) sono consentiti. 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.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly: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. Sono consentiti caratteri jolly. Il parametro Exclude è efficace solo quando il comando include i contenuti di un elemento, come C:\Windows\*, dove il carattere jolly specifica i contenuti della directory C:\Windows.

Tipo:String[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:True

-ExpiringInDays

Si tratta di un parametro dinamico reso disponibile dal provider del certificato . Questo parametro e il provider del certificato sono disponibili solo su Windows.

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

Questo parametro è stato reintrodotto in PowerShell 7.1

Per altre informazioni, vedere about_Certificate_Provider.

Tipo:Int32
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Filter

Specifica un filtro per qualificare il parametro Path. Il provider di 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é lasciare che sia PowerShell a filtrare gli oggetti dopo il loro recupero. La stringa di filtro viene passata all'API .NET per enumerare i file. L'API supporta solo * e ? caratteri jolly.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:True

-Force

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

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Include

Specifica, come matrice di stringhe, uno o più elementi che questo cmdlet include nell'operazione. Il valore di questo parametro qualifica il parametro Path. Immettere un elemento o un modello di percorso, ad esempio *.txt. Sono consentiti caratteri jolly. Il parametro Includi è valido solo quando il comando include i contenuti di un elemento, ad esempio C:\Windows\*, in cui il carattere jolly specifica il contenuto della directory C:\Windows.

Tipo:String[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:True

-LiteralPath

Specifica un percorso per una o più posizioni. Il valore di LiteralPath viene usato esattamente come viene digitato. Nessun carattere viene interpretato come caratteri 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.

Tipo:String[]
Alias:PSPath, LP
Posizione:Named
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-Path

Specifica il percorso di un elemento. Questo cmdlet ottiene l'elemento nella posizione specificata. Sono consentiti caratteri jolly. 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 locazione corrente.

Tipo:String[]
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:True

-SSLServerAuthentication

Si tratta di un parametro dinamico reso disponibile dal provider del certificato . Questo parametro e il provider del certificato sono disponibili solo su Windows.

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

Per altre informazioni, vedere about_Certificate_Provider.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly: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.

Tipo:String[]
Posizione:Named
Valore predefinito:No alternate file streams
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly: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 unità Function:.

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 unità Variable:.

WSManConfigContainerElement

WSManConfigLeafElement

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

Note

PowerShell include gli alias seguenti per Get-Item:

  • Tutte le piattaforme:
    • gi

Questo cmdlet non dispone di 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 il Get-ItemProperty per ottenere i valori e i dati del Registro di sistema. I valori del Registro di sistema vengono 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.