El cmdlet Invoke-WmiMethod llama a los métodos de los objetos del Instrumental de administración de Windows (WMI).
Los nuevos cmdlets de Common Information Model (CIM), introducidos en Windows PowerShell 3.0, realizan las mismas tareas que los cmdlets de WMI.
Los cmdlets CIM cumplen con los estándares WS-Management (WSMan) y con el estándar CIM, lo que permite a los cmdlets usar las mismas técnicas para administrar equipos Windows y aquellos que ejecutan otros sistemas operativos.
En lugar de usar Invoke-WmiMethod, considere la posibilidad de usar Invoke-CimMethodhttps://go.microsoft.com/fwlink/?LinkId=227965.
Ejemplos
Ejemplo 1: Enumerar el orden requerido de los objetos WMI
Este comando enumera el orden necesario de los objetos.
Para invocar WMI en PowerShell 3.0 difiere de los métodos alternativos y requiere que los valores de objeto se escriban en un orden específico.
Ejemplo 2: Iniciar una instancia de una aplicación
Este comando inicia una instancia del Bloc de notas llamando al método Create de la clase Win32_Process.
La propiedad ReturnValue se rellena con un 0 y la propiedad ProcessId se rellena con un número entero (el siguiente número de identificador de proceso) si se completa el comando.
Este comando cambia el nombre de un archivo.
Usa el parámetro Path para hacer referencia a una instancia de la clase CIM_DataFile.
A continuación, aplica el método Rename a esa instancia determinada.
La propiedad ReturnValue se rellena con un 0 si se ha completado el comando.
Parámetros
-ArgumentList
Especifica los parámetros que se van a pasar al método llamado.
El valor de este parámetro debe ser una matriz de objetos y deben aparecer en el orden requerido por el método llamado.
El cmdlet Invoke-CimCommand no tiene estas limitaciones.
Para determinar el orden en el que se enumeran esos objetos, ejecute el método GetMethodParameters() en la clase WMI, como se muestra en el ejemplo 1, cerca del final de este tema.
Importante: Si el primer valor es una matriz que contiene más de un elemento, se requiere un segundo valor de $null.
De lo contrario, el comando genera un error, como "No se puede convertir el objeto de tipo "System.Byte" al tipo "System.Array".".
A continuación se muestra un ejemplo mediante una matriz de objetos ($binSD) seguido de un valor NULL ($null):
Indica que este cmdlet 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 invoke-WmiMethod se usa 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 el nombre job (los cmdlets job).
Para obtener los resultados del trabajo, use el cmdlet Receive-Job.
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, consulte 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.
Propiedades de parámetro
Tipo:
SwitchParameter
Valor predeterminado:
None
Admite caracteres comodín:
False
DontShow:
False
Conjuntos de parámetros
(All)
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
-Authentication
Especifica el nivel de autenticación que se va a usar con la conexión WMI.
Los valores aceptables para este parámetro 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).
Especifica la autoridad que se va a usar para autenticar la conexión WMI.
Puede especificar la autenticación Estándar de Windows NT LAN Manager (NTLM) o Kerberos.
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.
Propiedades de parámetro
Tipo:
String
Valor predeterminado:
None
Admite caracteres comodín:
False
DontShow:
False
Conjuntos de parámetros
class
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
path
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
WQLQuery
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
query
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
list
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
-Class
Especifica la clase WMI que contiene un método estático al que se va a llamar.
Propiedades de parámetro
Tipo:
String
Valor predeterminado:
None
Admite caracteres comodín:
False
DontShow:
False
Conjuntos de parámetros
class
Posición:
0
Obligatorio:
True
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
-ComputerName
Especifica, como matriz de cadenas, los equipos en los que este cmdlet ejecuta el comando.
El valor predeterminado es el equipo local.
Escriba el nombre NetBIOS, una dirección IP o un nombre de dominio completo de uno o varios equipos.
Para especificar el equipo local, escriba el nombre del equipo, un punto (.) o localhost.
Este parámetro no se basa en la comunicación remota de Windows PowerShell.
Puede usar el parámetro ComputerName incluso si el equipo no está configurado para ejecutar comandos remotos.
Propiedades de parámetro
Tipo:
String[]
Valor predeterminado:
None
Admite caracteres comodín:
False
DontShow:
False
Alias:
CN
Conjuntos de parámetros
class
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
path
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
WQLQuery
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
query
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
list
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
-Confirm
Le pide confirmación antes de ejecutar el cmdlet.
Propiedades de parámetro
Tipo:
SwitchParameter
Valor predeterminado:
False
Admite caracteres comodín:
False
DontShow:
False
Alias:
cf
Conjuntos de parámetros
(All)
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
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.
Propiedades de parámetro
Tipo:
PSCredential
Valor predeterminado:
None
Admite caracteres comodín:
False
DontShow:
False
Conjuntos de parámetros
class
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
path
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
WQLQuery
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
query
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
list
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
-EnableAllPrivileges
Indica que este cmdlet habilita todos los privilegios del usuario actual antes de que el comando realice la llamada WMI.
Propiedades de parámetro
Tipo:
SwitchParameter
Valor predeterminado:
None
Admite caracteres comodín:
False
DontShow:
False
Conjuntos de parámetros
class
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
path
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
WQLQuery
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
query
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
list
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
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, que normalmente se establece en "3: 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 a los objetos usar 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).
Especifica un objeto ManagementObject que se va a usar como entrada.
Cuando se usa este parámetro, se omiten todos los demás parámetros, excepto los parámetros Flag y Argument.
Propiedades de parámetro
Tipo:
ManagementObject
Valor predeterminado:
None
Admite caracteres comodín:
False
DontShow:
False
Conjuntos de parámetros
object
Posición:
Named
Obligatorio:
True
Valor de la canalización:
True
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
-Locale
Especifica la configuración regional preferida para los objetos WMI.
Especifique el valor del parámetro Configuración regional como una matriz en el MS_<LCID> formato en el orden preferido.
Propiedades de parámetro
Tipo:
String
Valor predeterminado:
None
Admite caracteres comodín:
False
DontShow:
False
Conjuntos de parámetros
class
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
path
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
WQLQuery
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
query
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
list
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
-Name
Especifica el nombre del método que se va a invocar.
Este parámetro es obligatorio y no puede ser nulo ni estar vacío.
Propiedades de parámetro
Tipo:
String
Valor predeterminado:
None
Admite caracteres comodín:
False
DontShow:
False
Conjuntos de parámetros
(All)
Posición:
1
Obligatorio:
True
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
-Namespace
Cuando se usa con el parámetro Class, este parámetro especifica el espacio de nombres del repositorio WMI donde se encuentra la clase o el objeto WMI al que se hace referencia.
Propiedades de parámetro
Tipo:
String
Valor predeterminado:
None
Admite caracteres comodín:
False
DontShow:
False
Alias:
NS
Conjuntos de parámetros
class
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
path
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
WQLQuery
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
query
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
list
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
-Path
Especifica la ruta de acceso del objeto WMI de una clase WMI o especifica la ruta de acceso del objeto WMI de una instancia de una clase WMI.
La clase o la instancia que especifique deben contener el método especificado en el parámetro name name.
Propiedades de parámetro
Tipo:
String
Valor predeterminado:
None
Admite caracteres comodín:
False
DontShow:
False
Conjuntos de parámetros
path
Posición:
Named
Obligatorio:
True
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
-ThrottleLimit
Especifica un valor de limitación para el número de operaciones WMI que se pueden ejecutar simultáneamente.
Este parámetro se usa junto con el parámetro de AsJob.
El límite solo se aplica al comando actual, no a la sesión o al equipo.
Propiedades de parámetro
Tipo:
Int32
Valor predeterminado:
None
Admite caracteres comodín:
False
DontShow:
False
Conjuntos de parámetros
(All)
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
-WhatIf
Muestra lo que sucedería si el cmdlet se ejecuta.
El cmdlet no se ejecuta.
Propiedades de parámetro
Tipo:
SwitchParameter
Valor predeterminado:
False
Admite caracteres comodín:
False
DontShow:
False
Alias:
Wi
Conjuntos de parámetros
(All)
Posición:
Named
Obligatorio:
False
Valor de la canalización:
False
Valor de la canalización por nombre de propiedad:
False
Valor de los argumentos restantes:
False
CommonParameters
Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.