Get-WmiObject
Obtiene 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 cmdlet Get-WmiObject
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 cmdlet Get-WmiObject
no usa la comunicación remota de Windows PowerShell para realizar operaciones remotas.
Puede usar el parámetro ComputerName del cmdlet Get-WmiObject
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 la salida y 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 de 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 cmdlet Format-List
, 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 clase WMI de Win32_Service en ese objeto.
(Get-WmiObject -Class Win32_Service -Filter "name='WinRM'" -ComputerName Server01).StopService()
Esto equivale a usar el cmdlet Stop-Service
.
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 cmdlet Format-List
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 archivo de configuración de Types.ps1xml
.
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 cmdlet Get-WmiObject
para obtener los servicios en un equipo remoto. El valor del parámetro Credential es un nombre de cuenta de usuario. Se solicita al usuario 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 que se devuelven de WMI deben contener información modificada. Normalmente, la información modificada es información localizable, 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 continuar trabajando en la sesión mientras finaliza el trabajo. Si se usa Get-WmiObject
en un equipo remoto, 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 los cmdlets job. Para obtener los resultados del trabajo, use el cmdlet Receive-Job
.
Nota
Para usar este parámetro con equipos remotos, los equipos locales y remotos deben configurarse para la comunicación remota. Además, debe iniciar Windows PowerShell mediante la opción "Ejecutar como administrador" en Windows Vista y versiones posteriores de Windows. Para obtener más información, vea about_Remote_Requirements.
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 usar con la conexión WMI. Los valores válidos son:
- -1: Sin cambios
- 0: Valor predeterminado
- 1: Ninguno (sin autenticación realizada).
- 2: 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 que se reciben 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 va a usar para autenticar la conexión WMI. Puede especificar la autenticación NTLM o Kerberos estándar. Para usar NTLM, establezca la configuración de autoridad en ntlmdomain:<DomainName>
, 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 WMI. Cuando se usa este parámetro, el cmdlet recupera 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.
El valor predeterminado 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 (.).
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
incluso si el equipo no está configurado para ejecutar comandos remotos 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 que tiene 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 cmdlet Get-Credential
. Al escribir un nombre de usuario, se le pedirá 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 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 WMI.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Filter
Especifica un cláusula Where que se va a usar como filtro. Usa la sintaxis del lenguaje de consulta 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
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 se va a usar.
Los valores aceptables para este parámetro son:
- 0: Valor predeterminado. Lee el registro local para el nivel de suplantación predeterminado. El valor predeterminado suele establecerse en suplantación.
- 1: Anónimo. Oculta las credenciales del autor de la llamada.
- 2: Identificar. Permite a los objetos consultar las credenciales del autor de la llamada.
- 3: Suplantar. Permite que los objetos usen las credenciales del autor de la llamada.
- 4: Delegado. Permite a los objetos permitir que otros objetos usen las credenciales del autor de la llamada.
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 Espacio de nombres.
Si especifica el parámetro List, pero no el parámetro Espacio de nombres, Get-WmiObject
usa el espacio de nombres root\Cimv2 de forma predeterminada. Este cmdlet no usa el espacio de nombres predeterminado entrada del Registro en la clave del Registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\Scripting
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 los objetos WMI. Escriba un valor en MS_<formato de> LCID.
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 de
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
Ejecuta la instrucción WMI Query Language (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 en el espacio de nombres actual y en todos los demás espacios de nombres el nombre de 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 WMI que se pueden ejecutar simultáneamente. Este parámetro solo es válido cuando se usa el parámetro
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
Para acceder a la 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, el control de acceso predeterminado en el espacio de nombres WMI del repositorio remoto se puede cambiar para conceder derechos de acceso a otras cuentas.
De forma predeterminada, solo se muestran algunas de las propiedades de cada clase WMI. El conjunto de propiedades que se muestra para cada clase WMI se especifica en el archivo de configuración Types.ps1xml. Para obtener todas las propiedades de un objeto WMI, use los cmdlets Get-Member
o Format-List
.