Powershell tiene su propio formato del motor. Siempre que utilice el cmdlet, la salida de una lista de System.Management.Automation.PSModuleInfo
objetos.
Antes de imprimir el objeto de "raw", Powershell comprobar si hay un formato predefinido disponibles para el tipo y si es así, que la apliquen. Lo que vemos es el resultado de esa transformación.
Hasta PS 5.1, esto se hizo a través de un formato de archivo de configuración, que se define como *.ps1xml archivos. De PS6.0 y versiones posteriores, los formatos predefinidos están incluidos directamente en el código fuente, pero todavía se puede crear nuevos archivos de formato según sea necesario.
Usted puede ver la carga tipo de formato mediante el Get-FormatData
cmdlet.
Si usted está interesado en la Get-Module
cmdlet específicamente, echa un vistazo (Get-FormatData -TypeName System.Management.Automation.PSModuleInfo).FormatViewDefinition
. Usted verá algo como esto:
Name Control
---- -------
Module System.Management.Automation.TableControl
Module System.Management.Automation.WideControl
Module System.Management.Automation.ListControl
Esto significa que todos los objetos de ese tipo tienen instrucciones especiales relativas a la forma en que debe salida de su objeto. En ese caso, se incluye la agrupación de ruta de acceso y la visualización de las columnas específicas (ModuleType, Versión, Nombre, ExportedCommands). Powershell no elegido para mostrar las propiedades de por sí, consiguió su instrucciones del tipo predefinido en lo que a la pantalla.
En el caso de PSModuleInfo
tipo, podemos ver que hay 3 vistas personalizadas para el tipo. Uno para la vista de la tabla (que es el valor predeterminado que se muestra), uno de la lista y amplia, que instruyan a lo que se debe mostrar cuando se utiliza Format-List
& Format-Wide
.
Desde MS doc
El formato de visualización de los objetos que son devueltos por los comandos
(cmdlets, funciones y secuencias de comandos) se definen mediante el formato
archivos (formato.ps1xml archivos). Varios de estos archivos son proporcionados por
PowerShell para definir el formato de visualización de los objetos devueltos por
PowerShell-proporciona comandos, tales como el Sistema.Los diagnósticos.Proceso de
objeto devuelto por el cmdlet Get-Process. Sin embargo, también puede
crear sus propios archivos de formato para sobrescribir el valor predeterminado
formatos de visualización o puede escribir un formato personalizado para definir
la visualización de los objetos devueltos por sus propios comandos.
PowerShell utiliza los datos de estos archivos de formato para determinar lo que
se muestran y cómo los datos que se muestran es el formato. La muestra
los datos pueden incluir las propiedades de un objeto o el valor de una secuencia de comandos.
Usted puede crear sus propios archivos (*.ps1xml) y los incluyen en sus módulos o cargarlos en sus sesiones para modificar la forma en que la salida se muestra.
También puede agregar formato a la salida de sus funciones mediante la definición de un defecto de la pantalla de ajuste (aka ¿qué propiedades deben ser mostrados).
Por ejemplo, tomar esta sencilla función:
Function Get-EmployeesInfos() {
$Output = @(
[PSCustomObject]@{
FirstName = 'RObert'
LastName = 'Samson'
SocialSecurityNumber = '123 344 555'
Age = '32'
Salary = '100000'
},
[PSCustomObject]@{
FirstName = 'Pablo'
LastName = 'Morrison'
SocialSecurityNumber = '123 345 555'
Age = '22'
Salary = '10000'
}
)
# Default display set
$defaultDisplaySet = 'FirstName', 'LastName'
$defaultDisplayPropertySet = New-Object System.Management.Automation.PSPropertySet('DefaultDisplayPropertySet', [string[]]$defaultDisplaySet)
$Output | Add-Member MemberSet PSStandardMembers ([System.Management.Automation.PSMemberInfo[]]@($defaultDisplayPropertySet)) -Force
return $Output
return $Output
}
Sin ningún tipo predeterminado de visualización de conjunto, se obtiene a su salida estándar con todas las propiedades que se enumeran.
Con la pantalla por defecto conjunto agregado, aquí está la nueva salida.
Ambas salidas ¿contiene la misma información, pero la consola tiene un formato especial que se le aplica a mostrar sólo lo que es más importante, útil, etc...
Usted puede utilizar el formato vistas a:
- Colorear de salida
- Crear árboles
- Salida de cambio basados en la condición
- Agregar propiedades virtuales
- definir el ancho de la columna
- definir muestran título de la columna
- etc...
Referencias:
Formato De Archivo Descripción
4Sysops - objeto de Formato de salida en Powershell con Formato.ps1xml archivos
Actualización-FormatData