Get-WmiObject

Obtiene las instancias de clases de Instrumental de administración de Windows (WMI) o información sobre las clases disponibles.

Syntax

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 Administración istrators 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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 cambios
  • 0: valor predeterminado
  • 1: Ninguno (sin autenticación en realizado).
  • 2: Conectar (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).
Type:AuthenticationLevel
Accepted values:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String
Aliases:ClassName
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String[]
Aliases:Cn
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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\User01o 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.

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EnableAllPrivileges

Habilita todos los privilegios del usuario actual antes de que el comando realice la llamada de WMI.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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'"

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.
Type:ImpersonationLevel
Accepted values:Default, Anonymous, Identify, Impersonate, Delegate
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 del Registro Espacio de nombres predeterminado en la clave del HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\Scripting Registro para determinar el espacio de nombres predeterminado.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Locale

Especifica la configuración regional preferida para objetos WMI. Escriba un valor en MS_<LCID> formato.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String
Aliases:NS
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Property

Especifica las propiedades de clase WMI de las que este cmdlet obtiene información. Escriba los nombres de propiedad.

Type:String[]
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Query

Se ejecuta la instrucción de lenguaje de consulta de WMI (WQL) especificada. Este parámetro no admite consultas de eventos.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 .

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 .