TEMA about_Properties DESCRIPCIÓN BREVE Describe cómo utilizar las propiedades de los objetos de Windows PowerShell. DESCRIPCIÓN DETALLADA Windows PowerShell usa colecciones estructuradas de datos, denominadas objetos, para representar los elementos de los almacenes de datos o el estado del equipo. Normalmente, se trabaja con objetos que forman parte de Microsoft .NET Framework, pero también se pueden crear objetos personalizados en Windows PowerShell. La asociación entre un elemento y su objeto es muy estrecha. Cuando se modifica un objeto, se modifica el elemento que representa. Por ejemplo, cuando se obtiene un archivo en Windows PowerShell, no se obtiene el archivo propiamente dicho. En su lugar, se obtiene un objeto FileInfo que representa el archivo. Cuando se modifica el objeto FileInfo, también se modifica el archivo. La mayoría de los objetos tienen propiedades. Las propiedades son los datos asociados a un objeto. Estos datos describen el objeto. Por ejemplo, un objeto FileInfo tiene una propiedad denominada Length, que describe el tamaño del archivo que el objeto representa. Propiedades de objetos Para ver las propiedades de un objeto, use el cmdlet Get-Member. Por ejemplo, si desea obtener las propiedades de un objeto FileInfo, utilice el cmdlet Get-ChildItem para obtener el objeto FileInfo que representa un archivo. A continuación, utilice un operador de canalización (|) para enviar el objeto FileInfo a Get-Member. El comando siguiente obtiene el archivo PowerShell.exe y lo envía a Get-Member. La variable automática $Pshome contiene la ruta de acceso al directorio de instalación de Windows PowerShell. get-childitem $pshome\powershell.exe | get-member El resultado del comando muestra los miembros del objeto FileInfo. Los miembros incluyen propiedades y métodos. Cuando trabaja en Windows PowerShell, tiene acceso a todos los miembros de los objetos. Para obtener únicamente las propiedades de un objeto y no los métodos, utilice el parámetro MemberType del cmdlet Get-Member con el valor "property", tal y como se indica en el ejemplo siguiente. 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;} Después de obtener las propiedades, puede utilizarlas en los comandos de Windows PowerShell. Valores de propiedad Si bien todos los objetos de un tipo específico tienen las mismas propiedades, los valores de esas propiedades describen el objeto concreto. Por ejemplo, todos los objetos FileInfo tienen una propiedad CreationTime, pero el valor de esa propiedad difiere para cada archivo. La manera más común de obtener los valores de las propiedades de un objeto es el uso de un punto. Escriba una referencia al objeto, como una variable que contenga el objeto, o un comando que lo obtenga. A continuación, escriba un punto (.) seguido del nombre de la propiedad. Por ejemplo, el comando siguiente muestra el valor de la propiedad CreationTime del archivo PowerShell.exe. El comando Get-ChildItem devuelve un objeto FileInfo que representa el archivo PowerShell.exe. El comando se encuentra entre paréntesis para garantizar que se ejecute antes de que se obtenga acceso a las propiedades. El comando Get-ChildItem va seguido de un punto y el nombre de la propiedad CreationTime, tal y como se indica a continuación: C:\PS> (Get-ChildItem $pshome\powershell.exe).creationtime Martes, 18 de marzo de 2008 12:07:52 Asimismo, puede guardar un objeto en una variable y, a continuación, obtener sus propiedades usando un punto, tal y como se indica en el ejemplo siguiente: C:\PS> $a = Get-ChildItem $pshome\powershell.exe C:\PS> $a.CreationTime Martes, 18 de marzo de 2008 12:07:52 También puede utilizar los cmdlets Select-Object y Format-List para mostrar los valores de las propiedades de un objeto. Select-Object y Format-List tienen un parámetro Property. Puede usar el parámetro Property para especificar una o varias propiedades y sus valores. O bien, puede usar el carácter comodín (*) para representar todas las propiedades. Por ejemplo, el comando siguiente muestra los valores de todas las propiedades del archivo 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: Sistema operativo Microsoft(r) Windows(r) ProductVersion: 6.1.6570.1 Debug: False Patched: False PreRelease: False PrivateBuild: True SpecialBuild: False Language: Inglés (Estados Unidos) 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 : Archivo VEA TAMBIÉN about_Objects Get-Member Select-Object Format-List