ARGOMENTO about_Properties DESCRIZIONE BREVE Descrive come utilizzare le proprietà degli oggetti in Windows PowerShell. DESCRIZIONE DETTAGLIATA In Windows PowerShell vengono utilizzati insiemi strutturati di informazioni, detti oggetti, per rappresentare gli elementi degli archivi dati o lo stato del computer. In genere, si utilizzano oggetti che fanno parte di Microsoft .NET Framework ma è anche possibile creare oggetti personalizzati in Windows PowerShell. L'associazione tra un elemento e l'oggetto è molto stretta. Quando si modifica un oggetto, si modifica anche l'elemento che rappresenta. Ad esempio, quando si ottiene un file in Windows PowerShell, non si ottiene il file effettivo. Si ottiene, viceversa, un oggetto FileInfo che rappresenta tale file. Quando si modifica l'oggetto FileInfo, viene modificato anche il file. La maggior parte degli oggetti dispone di proprietà. Le proprietà sono i dati associati a un oggetto. Questi dati descrivono l'oggetto. Ad esempio, un oggetto FileInfo include la proprietà Length, che specifica le dimensioni del file rappresentato dall'oggetto. Proprietà degli oggetti Per elencare le proprietà di un oggetto, utilizzare il cmdlet Get-Member. Ad esempio per ottenere le proprietà di un oggetto FileInfo, utilizzare il cmdlet Get-ChildItem per ottenere l'oggetto FileInfo che rappresenta un file. Quindi, utilizzare un operatore pipeline (|) per inviare l'oggetto FileInfo a Get-Member. Il comando seguente ottiene il file PowerShell.exe e lo invia a Get-Member. La variabile automatica $Pshome contiene il percorso della directory di installazione di Windows PowerShell. get-childitem $pshome\powershell.exe | get-member Nell'output del comando sono elencati i membri dell'oggetto FileInfo. I membri includono sia proprietà che metodi. Quando si utilizza Windows PowerShell, si ha accesso a tutti i membri degli oggetti. Per ottenere solo le proprietà di un oggetto e non i metodi, utilizzare il parametro MemberType del cmdlet Get-Member con il valore "property" come illustrato nell'esempio seguente. get-childitem $pshome\powershell.exe | get-member -membertype property TypeName: System.IO.FileInfo Name MemberType Definition ---- ---------- ---------- Attributes Property System.IO.FileAttributes Attributes {get;set;} CreationTime Property System.DateTime CreationTime {get;set;} CreationTimeUtc Property System.DateTime CreationTimeUtc {get;set;} Directory Property System.IO.DirectoryInfo Directory {get;} DirectoryName Property System.String DirectoryName {get;} Exists Property System.Boolean Exists {get;} Extension Property System.String Extension {get;} FullName Property System.String FullName {get;} IsReadOnly Property System.Boolean IsReadOnly {get;set;} LastAccessTime Property System.DateTime LastAccessTime {get;set;} LastAccessTimeUtc Property System.DateTime LastAccessTimeUtc {get;set;} LastWriteTime Property System.DateTime LastWriteTime {get;set;} LastWriteTimeUtc Property System.DateTime LastWriteTimeUtc {get;set;} Length Property System.Int64 Length {get;} Name Property System.String Name {get;} Dopo avere trovato le proprietà, è possibile utilizzarle nei comandi di Windows PowerShell. Valori delle proprietà Anche se ogni oggetto di un tipo specifico dispone delle stesse proprietà, i valori di quelle proprietà descrivono il particolare oggetto. Ad esempio, ogni oggetto FileInfo dispone di una proprietà CreationTime, ma il valore di tale proprietà è diverso per ogni file. La modalità più comune per ottenere i valori delle proprietà di un oggetto è utilizzare il metodo con punto. Digitare un riferimento all'oggetto, ad esempio una variabile contenente l'oggetto o un comando che ottiene l'oggetto. Quindi, digitare un punto (.) seguito dal nome della proprietà. Ad esempio, il comando seguente visualizza il valore della proprietà CreationTime del file PowerShell.exe. Il comando Get-ChildItem restituisce un oggetto FileInfo che rappresenta il file PowerShell.exe. Il comando è racchiuso tra parentesi per assicurare che venga eseguito prima dell'accesso a qualsiasi proprietà. Il comando Get-ChildItem è seguito da un punto e dal nome della proprietà CreationTime, come illustrato di seguito: C:\PS> (Get-ChildItem $pshome\powershell.exe).creationtime Martedì 18 marzo 2008 12.07.52 È possibile salvare anche un oggetto in una variabile e ottenerne le proprietà tramite il metodo con punto, come illustrato nell'esempio seguente: C:\PS> $a = Get-ChildItem $pshome\powershell.exe C:\PS> $a.CreationTime Martedì 18 marzo 2008 12.07.52 È anche possibile utilizzare i cmdlet Select-Object e Format-List per visualizzare i valori delle proprietà di un oggetto. Select-Object e Format-List hanno un parametro Property. È possibile utilizzare il parametro Property per specificare una o più proprietà e il loro valore. In alternativa è possibile utilizzare il carattere (*) per rappresentare tutte le proprietà. Ad esempio, il comando seguente visualizza i valori di tutte le proprietà del file PowerShell.exe. C:\PS> Get-ChildItem $pshome\powershell.exe | Format-List -property * PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Windows\system32\WindowsPowerShell\v1.0 PSChildName : powershell.exe PSDrive : C PSProvider : Microsoft.PowerShell.Core\FileSystem PSIsContainer : False VersionInfo : File: C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe InternalName: POWERSHELL OriginalFilename: PowerShell.EXE.MUI File Version: 6.1.6570.1 (fbl_srv_powershell(nigels).070711-0102) FileDescription: PowerShell.EXE Product: Microsoft® Windows® Operating System ProductVersion: 6.1.6570.1 Debug: False Patched: False PreRelease: False PrivateBuild: True SpecialBuild: False Language: English (United States) BaseName : powershell Mode : -a--- Name : powershell.exe Length : 160256 DirectoryName : C:\Windows\system32\WindowsPowerShell\v1.0 Directory : C:\Windows\system32\WindowsPowerShell\v1.0 IsReadOnly : False Exists : True FullName : C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe Extension : .exe CreationTime : 18/3/2008 12.07.52 CreationTimeUtc : 18/3/2008 7.07.52 LastAccessTime : 19/3/2008 8.13.58 LastAccessTimeUtc : 19/3/2008 15.13.58 LastWriteTime : 18/3/2008 12.07.52 LastWriteTimeUtc : 18/3/2008 7.07.52 Attributes : Archive VEDERE ANCHE about_Objects Get-Member Select-Object Format-List