Seleziona le proprietà specificate di un oggetto o di un set di oggetti. Può inoltre essere utilizzato per selezionare oggetti univoci da una matrice di oggetti o un numero specificato di oggetti dall'inizio o dalla fine di una matrice di oggetti.
Sintassi
Select-Object [[-Property] <Object[]>] [-ExcludeProperty <string[]>] [-ExpandProperty <string>] [-First <int>] [-InputObject <psobject>] [-Last <int>] [-Skip <int>] [-Unique] [<CommonParameters>] Select-Object [-Index <Int32[]>] [-InputObject <psobject>] [-Unique] [<CommonParameters>]
Descrizione
Il cmdlet Select-Object ottiene solo le proprietà specificate di un oggetto o un set di oggetti. Può inoltre essere utilizzato per selezionare oggetti univoci da una matrice di oggetti o un numero specificato di oggetti dall'inizio o dalla fine di una matrice di oggetti.
Se si utilizza Select-Object per selezionare proprietà specificate, il valore di tali proprietà verrà copiato dagli oggetti di input e verranno creati nuovi oggetti caratterizzati dalle proprietà specificate e dai valori copiati.
Utilizzare il parametro Property per specificare le proprietà da selezionare. In alternativa, utilizzare i parametri First, Last, Unique, Skip e Index per selezionare oggetti specifici da una matrice di oggetti di input. Per opzioni più specifiche di filtro degli oggetti, utilizzare il cmdlet Where-Object.
Parametri
-ExcludeProperty <string[]>
Rimuove le proprietà specificate dalla selezione. È consentito l'utilizzo di caratteri jolly. Questo parametro è valido solo quando il comando include anche il parametro Property.
Il valore del parametro Property può essere una proprietà calcolata, ovvero una tabella hash che specifica un nome e calcola un valore per la visualizzazione della proprietà. Le chiavi valide sono le seguenti:
-- Name o Label <stringa>
-- Expression <stringa> o <blocco di script>
Per ulteriori informazioni, vedere gli esempi.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
true |
-ExpandProperty <string>
Specifica una proprietà da selezionare e indica che è necessario effettuare un tentativo di espansione della proprietà. Nel nome della proprietà sono consentiti caratteri jolly.
Ad esempio, se la proprietà specificata è una matrice, ogni valore della matrice viene incluso nell'output. Se la proprietà contiene un oggetto, le proprietà di tale oggetto vengono visualizzate nell'output.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
true |
-First <int>
Specifica il numero di oggetti da selezionare dall'inizio di una matrice di oggetti di input.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Index <Int32[]>
Seleziona oggetti da una matrice in base ai relativi valori di indice. Immettere gli indici in un elenco separato da virgole.
Gli indici di una matrice iniziano da 0, che rappresenta il primo valore e (n-1) rappresenta l'ultimo valore.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
nessuno |
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-InputObject <psobject>
Specifica gli oggetti da inviare al cmdlet attraverso la pipeline. Questo parametro consente di reindirizzare oggetti a Select-Object.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
true (ByValue) |
Accettare caratteri jolly? |
false |
-Last <int>
Specifica il numero di oggetti da selezionare dalla fine di una matrice di oggetti di input.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Property <Object[]>
Specifica le proprietà da selezionare. È consentito l'utilizzo di caratteri jolly.
Il valore del parametro Property può essere una nuova proprietà calcolata. Per creare una proprietà calcolata, utilizzare una tabella hash. Le chiavi valide sono le seguenti:
-- Name (o Label) <stringa>
-- Expression <stringa> o <blocco di script>
Obbligatorio? |
false |
Posizione? |
1 |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
true |
-Skip <int>
Ignora (non seleziona) il numero specificato di elementi. Per impostazione predefinita, il parametro Skip esegue il conteggio dall'inizio della matrice o dell'elenco di oggetti, ma se viene utilizzato il parametro Last, il conteggio viene eseguito dalla fine dell'elenco o della matrice.
A differenza del parametro Index che avvia il conteggio da 0, il parametro Skip lo avvia da 1.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Unique
Specifica che se un subset di oggetti di input è caratterizzato da proprietà e valori identici, verrà selezionato un unico membro del subset.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
<CommonParameters>
Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.
Input e output
Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.
Input |
System.Management.Automation.PSObject È possibile reindirizzare qualsiasi oggetto a Select-Object. |
Output |
System.Management.Automation.PSObject |
Note
È inoltre possibile fare riferimento a Select-Object tramite il relativo alias predefinito "select". Per ulteriori informazioni, vedere about_Aliases.
Esempio 1
C:\PS>get-process | select-object ProcessName,Id,WS Descrizione ----------- Tramite questo comando verrà visualizzato un elenco di processi di cui verranno visualizzate solo le proprietà relative al nome, all'ID e al working set (WS).
Esempio 2
C:\PS>get-process | select-object processname -expandproperty modules | format-list ProcessName : 00THotkey Size : 256 Company : TOSHIBA Corporation FileVersion : 1, 0, 0, 27 ProductVersion : 6, 2, 0, 0 Description : THotkey Product : TOSHIBA THotkey ModuleName : 00THotkey.exe FileName : C:\WINDOWS\system32\00THotkey.exe BaseAddress : 4194304 Descrizione ----------- Tramite questo comando verranno visualizzate informazioni su tutti moduli utilizzati dai processi in esecuzione in un computer. Per visualizzare i dettagli inclusi nella proprietà relativa ai moduli verrà utilizzato il parametro ExpandProperty.
Esempio 3
C:\PS>get-process | sort-object -property WS | select-object -Last 5 Handles NPM(K) PM(K) WS(K) VS(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 2866 320 33432 45764 203 222.41 1292 svchost 577 17 23676 50516 265 50.58 4388 WINWORD 826 11 75448 76712 188 19.77 3780 Ps 1367 14 73152 88736 216 61.69 676 Ps 1612 44 66080 92780 380 900.59 6132 INFOPATH Descrizione ----------- Tramite questo comando verranno visualizzati i cinque processi in cui viene utilizzata la maggior parte della memoria. Verranno utilizzati il cmdlet Sort-Object per ordinare i processi in base all'utilizzo della memoria (working set) e il cmdlet Select-Object per selezionare solo gli ultimi cinque membri della matrice di oggetti risultante.
Esempio 4
C:\PS>get-process | select-object -property ProcessName,@{Name="Start Day"; Expression = {$_.StartTime.DayOfWeek}} ProcessName StartDay ---- -------- alg Wednesday ati2evxx Wednesday ati2evxx Thursday ... Descrizione ----------- Tramite questo comando verranno visualizzati il nome e il giorno di avvio dei processi in esecuzione in un computer. I valori del parametro Property sono ProcessName e una proprietà calcolata denominata "Start Day". La proprietà "Start Day" viene aggiunta tramite una tabella hash con le chiavi Name ed Expression.
Esempio 5
C:\PS>"a","b","c","a","a","a" | select-object -unique a b c Descrizione ----------- Tramite questo comando verranno visualizzati i caratteri univoci di una matrice di caratteri.
Esempio 6
C:\PS>$a = get-eventlog -log "Windows PowerShell" C:\PS> $a | select-object -index 0, ($a.count - 1) Descrizione ----------- Questi comandi ottengono il primo (il più recente) e l'ultimo (il meno recente) evento nel registro eventi di Windows Powershell. Nel primo comando viene utilizzato il cmdlet Get-EventLog per ottenere tutti gli eventi nel registro di Windows Powershell. Gli oggetti vengono salvati nella variabile $a. Nel secondo comando viene utilizzato un operatore pipeline (|) per inviare gli eventi in $a al cmdlet Select-Object. Il comando Select-Object utilizza il parametro Index per selezionare gli elementi in base al numero di indice. L'indice per il primo evento è 0, mentre quello per l'ultimo evento è il numero di elementi in $a meno 1.
Esempio 7
C:\PS>new-pssession -computername (get-content servers.txt | select-object -skip 1) Descrizione ----------- Con questo comando viene creata una nuova sessione PSSession in ognuno dei computer elencati nei file Servers.txt, eccetto il primo. Viene utilizzato il cmdlet Select-Object per selezionare tutti i computer tranne il primo in un elenco di nomi di computer. L'elenco di computer risultante viene impostato come valore del parametro ComputerName del cmdlet New-PSSession.
Vedere anche