Get-WmiObject
Obtiene las instancias de clases de Instrumental de administración de Windows (WMI) o información sobre las clases disponibles.
Sintaxis
Get-WmiObject
[-Class] <String>
[[-Property] <String[]>]
[-Filter <String>]
[-Amended]
[-DirectRead]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[[-Class] <String>]
[-Recurse]
[-Amended]
[-List]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[-Amended]
[-DirectRead]
-Query <String>
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[-Amended]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[-Amended]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Description
A partir de PowerShell 3.0, este cmdlet se ha reemplazado por Get-CimInstance
.
El Get-WmiObject
cmdlet obtiene instancias de clases WMI o información sobre las clases WMI disponibles. Para especificar un equipo remoto, use el parámetro ComputerName . Si se especifica el parámetro List , el cmdlet obtiene información sobre las clases WMI que están disponibles en un espacio de nombres especificado. Si se especifica el parámetro Query , el cmdlet ejecuta una instrucción del lenguaje de consulta WMI (WQL).
El Get-WmiObject
cmdlet no usa la comunicación remota de Windows PowerShell para realizar operaciones remotas.
Puede usar el parámetro ComputerName del Get-WmiObject
cmdlet incluso si el equipo no cumple los requisitos para la comunicación remota de Windows PowerShell o no está configurado para la comunicación remota en Windows PowerShell.
A partir de Windows PowerShell 3.0, la propiedad __Server del objeto que Get-WmiObject
devuelve tiene un alias PSComputerName . Esto facilita la inclusión del nombre del equipo de origen en el resultado y en los informes.
Ejemplos
Ejemplo 1: Obtención de procesos en el equipo local
En este ejemplo se obtienen los procesos en el equipo local.
Get-WmiObject -Class Win32_Process
Ejemplo 2: Obtiene servicios en un equipo remoto
En este ejemplo se obtienen los servicios de un equipo remoto. El parámetro ComputerName especifica la dirección IP de un equipo remoto. De forma predeterminada, la cuenta de usuario actual debe ser miembro del grupo Administradores en el equipo remoto.
Get-WmiObject -Class Win32_Service -ComputerName 10.1.4.62
Ejemplo 3: Obtener clases WMI en el espacio de nombres raíz o predeterminado del equipo local
En este ejemplo se obtienen las clases WMI en el espacio de nombres raíz o predeterminado del equipo local.
Get-WmiObject -Namespace "root/default" -List
Ejemplo 4: Obtención de un servicio con nombre en varios equipos
En este ejemplo se obtiene el servicio WinRM en los equipos especificados por el valor del parámetro ComputerName .
Get-WmiObject -Query "select * from win32_service where name='WinRM'" -ComputerName Server01, Server02 |
Format-List -Property PSComputerName, Name, ExitCode, Name, ProcessID, StartMode, State, Status
PSComputerName : SERVER01
Name : WinRM
ExitCode : 0
Name : WinRM
ProcessID : 844
StartMode : Auto
State : Running
Status : OK
PSComputerName : SERVER02
Name : WinRM
ExitCode : 0
Name : WinRM
ProcessID : 932
StartMode : Auto
State : Running
Status : OK
Un operador de canalización (|
) envía la salida al Format-List
cmdlet , que agrega la propiedad PSComputerName a la salida predeterminada. PSComputerName es un alias de la propiedad __Server de los objetos que Get-WmiObject
devuelve. Este alias se introdujo en PowerShell 3.0.
Ejemplo 5: Detener un servicio en un equipo remoto
En este ejemplo se detiene el servicio WinRM en un equipo remoto. Get-WmiObject
obtiene la instancia del objeto de servicio WinRM en Server01. A continuación, invoca el método StopService de la Win32_Service clase WMI en ese objeto.
(Get-WmiObject -Class Win32_Service -Filter "name='WinRM'" -ComputerName Server01).StopService()
Esto equivale a usar el Stop-Service
cmdlet .
Ejemplo 6: Obtener el BIOS en el equipo local
En este ejemplo se obtiene la información del BIOS del equipo local. El parámetro Property del Format-List
cmdlet se usa para mostrar todas las propiedades del objeto devuelto en una lista. De forma predeterminada, solo se muestran el subconjunto de propiedades definidas en el Types.ps1xml
archivo de configuración.
Get-WmiObject -Class Win32_Bios | Format-List -Property *
Status : OK
Name : Phoenix ROM BIOS PLUS Version 1.10 A05
Caption : Phoenix ROM BIOS PLUS Version 1.10 A05
SMBIOSPresent : True
__GENUS : 2
__CLASS : Win32_BIOS
__SUPERCLASS : CIM_BIOSElement
__DYNASTY : CIM_ManagedSystemElement
__RELPATH : Win32_BIOS.Name="Phoenix ROM BIOS PLUS Version 1.10
__PROPERTY_COUNT : 27
__DERIVATION : {CIM_BIOSElement, CIM_SoftwareElement, CIM_LogicalElement,
__SERVER : Server01
__NAMESPACE : root\cimv2
__PATH : \\SERVER01\root\cimv2:Win32_BIOS.Name="Phoenix ROM BIOS
BiosCharacteristics : {7, 9, 10, 11...}
BIOSVersion : {DELL - 15, Phoenix ROM BIOS PLUS Version 1.10 A05}
BuildNumber :
CodeSet :
CurrentLanguage : en|US|iso8859-1
Description : Phoenix ROM BIOS PLUS Version 1.10 A05
IdentificationCode :
InstallableLanguages : 1
InstallDate :
LanguageEdition :
ListOfLanguages : {en|US|iso8859-1}
Manufacturer : Dell Inc.
OtherTargetOS :
PrimaryBIOS : True
ReleaseDate : 20101103000000.000000+000
SerialNumber : 8VDM9P1
SMBIOSBIOSVersion : A05
SMBIOSMajorVersion : 2
SMBIOSMinorVersion : 6
SoftwareElementID : Phoenix ROM BIOS PLUS Version 1.10 A05
SoftwareElementState : 3
TargetOperatingSystem : 0
Version : DELL - 15
Scope : System.Management.ManagementScope
Path : \\SERVER01\root\cimv2:Win32_BIOS.Name="Phoenix ROM BIOS
Options : System.Management.ObjectGetOptions
ClassPath : \\JUNE-PC\root\cimv2:Win32_BIOS
Properties : {BiosCharacteristics, BIOSVersion, BuildNumber, Caption...}
SystemProperties : {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY...}
Qualifiers : {dynamic, Locale, provider, UUID}
Site :
Container :
Ejemplo 7: Obtener los servicios en un equipo remoto
En este ejemplo se usa el parámetro Credential del Get-WmiObject
cmdlet para obtener los servicios en un equipo remoto. El valor del parámetro Credential es un nombre de cuenta de usuario. Al usuario se le solicitará una contraseña.
Get-WmiObject Win32_Service -Credential FABRIKAM\administrator -ComputerName Fabrikam
Nota:
No se pueden usar credenciales al dirigirse al equipo local.
Parámetros
-Amended
Obtiene o establece un valor que indica si los objetos devueltos de WMI deben contener información corregida. Normalmente, la información corregida es información adaptable, como descripciones de objetos y propiedades, que se adjunta al objeto WMI.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-AsJob
Ejecuta el comando como un trabajo en segundo plano. Use este parámetro para ejecutar comandos que tardan mucho tiempo en finalizar.
Cuando se usa el parámetro AsJob , el comando devuelve un objeto que representa el trabajo en segundo plano y, a continuación, muestra el símbolo del sistema. Puede seguir trabajando en la sesión mientras finaliza el trabajo. Si Get-WmiObject
se usa con el parámetro ComputerName , el trabajo se crea en el equipo local y los resultados de los equipos remotos se devuelven automáticamente al equipo local. Para administrar el trabajo, use los cmdlets que contienen el Job
nombre. Para obtener los resultados del trabajo, use el Receive-Job
cmdlet .
Para obtener más información sobre los trabajos en segundo plano de Windows PowerShell, consulte about_Jobs y about_Remote_Jobs.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Authentication
Especifica el nivel de autenticación que se va a utilizar con la conexión de WMI. Los valores válidos son:
-1
: sin cambios0
: valor predeterminado1
: Ninguno (sin autenticación en realizado).2
: la conexión (la autenticación solo se realiza cuando el cliente establece una relación con la aplicación).3
: llamada (la autenticación solo se realiza al principio de cada llamada cuando la aplicación recibe la solicitud).4
: paquete (la autenticación se realiza en todos los datos recibidos del cliente).5
: PacketIntegrity (Todos los datos que se transfieren entre el cliente y la aplicación se autentican y comprueban).6
: PacketPrivacy (se usan las propiedades de los demás niveles de autenticación y todos los datos están cifrados).
Tipo: | AuthenticationLevel |
Valores aceptados: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Authority
Especifica la autoridad que se usará para autenticar la conexión WMI. Puede especificar la autenticación NTLM o Kerberos estándar. Para usar NTLM, establezca la configuración ntlmdomain:<DomainName>
de autoridad en , donde <DomainName>
identifica un nombre de dominio NTLM válido. Para usar Kerberos, especifique kerberos:<DomainName>\<ServerName>
. No puede incluir la configuración de autoridad al conectarse al equipo local.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Class
Especifica el nombre de una clase de WMI. Cuando se usa este parámetro, el cmdlet recupera las instancias de la clase WMI.
Tipo: | String |
Alias: | ClassName |
Posición: | 1 |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-ComputerName
Especifica el equipo de destino para la operación de administración. Escriba un nombre de dominio completo (FQDN), un nombre NetBIOS o una dirección IP. Cuando el equipo remoto esté en un dominio diferente al del equipo local, se requiere el nombre de dominio completo.
La opción predeterminada es el equipo local. Para especificar el equipo local, como en una lista de nombres de equipo, use localhost
, el nombre del equipo local o un punto (.
).
Al especificar un equipo remoto, la cuenta actual o la especificada con el parámetro Credential deben tener los permisos adecuados para acceder a la información.
Este parámetro no se basa en la comunicación remota de Windows PowerShell, que usa WS-Management. Puede usar el parámetro ComputerName de Get-WmiObject
aunque el equipo no esté configurado para ejecutar comandos remotos de WS-Management.
Tipo: | String[] |
Alias: | Cn |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Credential
Especifica una cuenta de usuario con permiso para realizar esta acción. El valor predeterminado es el usuario actual. Escriba un nombre de usuario, como User01
, Domain01\User01
o User@Contoso.com
. O bien, escriba un objeto PSCredential , como un objeto devuelto por el Get-Credential
cmdlet . Cuando escriba un nombre de usuario, se le solicitará una contraseña. No se pueden usar credenciales al dirigirse al equipo local.
Tipo: | PSCredential |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-DirectRead
Especifica si se solicita el acceso directo al proveedor WMI para la clase especificada, sin tener en cuenta su clase base o sus clases derivadas.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-EnableAllPrivileges
Habilita todos los privilegios del usuario actual antes de que el comando realice la llamada de WMI.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Filter
Especifica una cláusula Where que se va a usar como filtro. Usa la sintaxis del lenguaje de consulta de WMI (WQL).
Importante
No incluya la palabra clave Where en el valor del parámetro . Por ejemplo, los siguientes comandos devuelven solo los discos lógicos que tienen un DeviceID de c:
y servicios que tienen el nombre "WinRM" sin usar la palabra clave Where .
Get-WmiObject Win32_LogicalDisk -filter "DeviceID = 'c:' "
Get-WmiObject win32_service -filter "name='WinRM'"
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Impersonation
Especifica el nivel de suplantación que usar.
Los valores permitidos para este parámetro son los siguientes:
0
: valor predeterminado. Lee el registro local para el nivel de suplantación predeterminado. El valor predeterminado suele establecerse en Suplantar.1
: Anónimo. Oculta las credenciales de la persona que llama.2
: identificar. permite que los objetos consulten las credenciales de la persona que llama.3
: suplantación. permite que los objetos usen las credenciales de la persona que llama.4
: Delegado. Permite que los objetos dejen que otros objetos usen las credenciales de la persona que llama.
Tipo: | ImpersonationLevel |
Valores aceptados: | Default, Anonymous, Identify, Impersonate, Delegate |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-List
Obtiene los nombres de las clases WMI en el espacio de nombres del repositorio WMI especificado por el parámetro Namespace .
Si especifica el parámetro List , pero no el parámetro Namespace , Get-WmiObject
usa el espacio de nombres Root\Cimv2 de forma predeterminada. Este cmdlet no usa la entrada predeterminada del Registro Namespace en la clave del HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\Scripting
Registro para determinar el espacio de nombres predeterminado.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Locale
Especifica la configuración regional preferida para objetos WMI. Escriba un valor en MS_<LCID>
formato.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Namespace
Cuando se usa con el parámetro Class , el parámetro Namespace especifica el espacio de nombres del repositorio WMI donde se encuentra la clase WMI especificada. Cuando se usa con el parámetro List , especifica el espacio de nombres del que se va a recopilar información de clase WMI.
Tipo: | String |
Alias: | NS |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Property
Especifica las propiedades de clase WMI de las que este cmdlet obtiene información. Escriba los nombres de propiedad.
Tipo: | String[] |
Posición: | 1 |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Query
Se ejecuta la instrucción de lenguaje de consulta de WMI (WQL) especificada. Este parámetro no admite consultas de eventos.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Recurse
Busca el espacio de nombres actual y todos los demás espacios de nombres para el nombre de la clase especificado por el parámetro Class.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-ThrottleLimit
Especifica el número máximo de operaciones de WMI que se pueden ejecutar simultáneamente. Este parámetro solo es válido cuando se usa el parámetro AsJob en el comando .
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
Entradas
None
No se puede canalizar la entrada a Get-WmiObject
.
Salidas
PSObject or System.Management.Automation.RemotingJob
Cuando se usa el parámetro AsJob , el cmdlet devuelve un objeto de trabajo. De lo contrario, el objeto que Get-WmiObject
devuelve depende del valor del parámetro Class .
Notas
Windows PowerShell incluye los siguientes alias para Get-WmiObject
:
gwmi
Para tener acceso a información de WMI en un equipo remoto, el cmdlet debe ejecutarse en una cuenta que sea miembro del grupo de administradores locales en el equipo remoto. O bien, puede cambiar el control de acceso predeterminado en el espacio de nombres de WMI del repositorio remoto para conceder derechos de acceso a otras cuentas.
Solo se muestran algunas de las propiedades de cada clase WMI de forma predeterminada. El conjunto de propiedades que se muestra para cada clase WMI se especifica en el Types.ps1xml
archivo de configuración. Para obtener todas las propiedades de un objeto WMI, use los Get-Member
cmdlets o Format-List
.