Compartir a través de


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 DeviceID de "c:" y los 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 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 , especifica el espacio de nombres del que 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

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 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

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.