Compartir a través de


Invoke-WmiMethod

Llama a métodos de Instrumental de administración de Windows (WMI).

Sintaxis

Invoke-WmiMethod [-Class] <string> [[-ArgumentList] <Object[]>] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Invoke-WmiMethod [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Invoke-WmiMethod -InputObject <ManagementObject> [-ArgumentList <Object[]>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Invoke-WmiMethod -Path <string> [-ArgumentList <Object[]>] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Invoke-WmiMethod [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Invoke-WmiMethod [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descripción

El cmdlet Invoke-WmiMethod llama a métodos de WMI.

Parámetros

-ArgumentList <Object[]>

Especifica los parámetros que se van a pasar al método invocado. El valor de este parámetro debe ser una matriz de objetos y estos deben aparecer en el orden requerido por el método invocado.

Importante: se requiere un segundo valor de $null; de lo contrario, el comando generará un mensaje de error similar a "No se puede convertir de tipo 'System.Byte' a tipo 'System.Array'.".

A continuación se muestra un ejemplo en el que se utiliza una matriz de objetos ($binSD) seguida de un valor NULL ($null):

PS C:\> $acl = Get-Acl test.txt

PS C:\> $binSD = $acl.GetSecurityDescriptorBinaryForm()

PS C:\> invoke-wmimethod -class Win32_SecurityDescriptorHelper -Name BinarySDToSDDL -argumentlist $binSD, $null

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar 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 completarse.

Cuando se utiliza 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 se completa el trabajo. Si se utiliza Invoke-WmiMethod 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, utilice los cmdlets que contienen el sustantivo Job (cmdlets Job). Para obtener los resultados del trabajo, use el cmdlet Receive-Job.

Nota: para utilizar este parámetro en equipos remotos, los equipos locales y remotos deben estar configurados para la comunicación remota. Además, debe iniciar Windows PowerShell con 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 en Windows PowerShell, vea about_Jobs y about_Remote_Jobs.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Authentication <AuthenticationLevel>

Especifica el nivel de autenticación que se va a utilizar con la conexión de WMI. Los valores válidos son:

-1: Unchanged

0: Default

1: None (no se realiza ninguna autenticación).

2: Connect (la autenticación se realiza solo cuando el cliente establece una relación con la aplicación).

3: Call (la autenticación se realiza solo al comienzo de cada llamada cuando la aplicación recibe la solicitud).

4: Packet (se autentican todos los datos que se reciben del cliente).

5: PacketIntegrity (se autentican y se comprueban todos los datos que se transfieren entre el cliente y la aplicación).

6: PacketPrivacy (se utilizan las propiedades de los demás niveles de autenticación y se cifran todos los datos).

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Authority <string>

Especifica la autoridad que se va a utilizar para autenticar la conexión de WMI. Puede especificar la autenticación estándar NTLM o Kerberos. Para utilizar NTLM, establezca el valor de autoridad en ntlmdomain:<nombreDeDominio>, donde <nombreDeDominio> identifica un nombre de dominio NTLM válido. Para utilizar Kerberos, especifique kerberos:<nombreDeDominio\nombreDeServidor>. No puede incluir el valor de autoridad cuando se conecta al equipo local.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Class <string>

Especifica la clase de WMI que contiene un método estático al que llamar.

¿Requerido?

true

¿Posición?

1

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-ComputerName <string[]>

Especifica el equipo en el que se desea ejecutar la operación de administración. El valor puede ser un nombre de dominio completo, un nombre NetBIOS o una dirección del protocolo Internet (IP). Use el nombre del equipo local, localhost, o bien, un punto (.) para especificar el equipo local. El equipo local es el valor predeterminado. Cuando el equipo remoto está en un dominio que no es el del usuario, se requiere un nombre de dominio completo. También se puede establecer el valor de este parámetro canalizando el valor al parámetro.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Credential <PSCredential>

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 "Usuario01", "Dominio01\Usuario01" o Usuario@Contoso.com. O bien, escriba un objeto PSCredential, como el objeto devuelto por el cmdlet Get-Credential. Cuando escriba un nombre de usuario, se le solicitará una contraseña.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-EnableAllPrivileges

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

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Impersonation <ImpersonationLevel>

Especifica el nivel de suplantación que se va a usar. Los valores válidos son:

0: Default (lee el Registro local para determinar el nivel de suplantación predeterminado, que suele estar establecido en "3: Impersonate").

1: Anonymous (oculta las credenciales del autor de la llamada).

2: Identify (permite que los objetos consulten las credenciales del autor de la llamada).

3: Impersonate (permite a los objetos utilizar las credenciales del autor de la llamada).

4: Delegate (permite que los objetos dejen que otros objetos usen las credenciales del autor de la llamada).

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-InputObject <ManagementObject>

Especifica un objeto ManagementObject que se va a usar como entrada. Cuando se utiliza este parámetro, todos los demás parámetros, excepto los parámetros Flag y Argument, se omiten.

¿Requerido?

true

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

true (ByValue)

¿Aceptar caracteres comodín?

false

-Locale <string>

Especifica la configuración regional preferida para los objetos de WMI. Especifica el valor del parámetro Locale como una matriz en el formato MS_<LCID> en el orden preferido.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Name <string>

Especifica el nombre del método que se va a invocar. Este parámetro es obligatorio y no puede ser NULL ni estar vacío.

¿Requerido?

true

¿Posición?

2

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Namespace <string>

Si se usa con el parámetro Class, este parámetro especifica el espacio de nombres del repositorio de WMI en el que se encuentra el objeto o la clase de WMI a que se hace referencia.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Path <string>

Especifica la ruta de acceso al objeto de WMI de una clase de WMI, o bien, la ruta de acceso al objeto de WMI de una instancia de una clase de WMI. La clase o la instancia que especifique debe contener el método que se especifica en el parámetro Name.

¿Requerido?

true

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-ThrottleLimit <int>

Permite al usuario especificar un valor de límite para el número de operaciones de WMI que se pueden ejecutar de manera simultánea. Este parámetro se utiliza con el parámetro AsJob. Este límite se aplica únicamente al comando actual; no se aplica a la sesión ni al equipo.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Confirm

Solicita confirmación antes de ejecutar el comando.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-WhatIf

Describe lo que ocurriría si ejecutara el comando sin ejecutarlo realmente.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

<CommonParameters>

Este cmdlet admite los parámetros comunes: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer y -OutVariable. Para obtener más información, vea about_Commonparameters.

Entradas y salidas

El tipo de entrada es el tipo de los objetos que se pueden canalizar al cmdlet. El tipo devuelto es el tipo de los objetos que el cmdlet devuelve.

Entradas

Ninguno

Este cmdlet no acepta ninguna entrada.

Salidas

Ninguno

Este cmdlet no genera resultados.

Ejemplo 1

C:\PS>invoke-wmimethod -path win32_process -name create -argumentlist notepad.exe

__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     :
__DYNASTY        : __PARAMETERS
__RELPATH        :
__PROPERTY_COUNT : 2
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :
ProcessId        : 4844
ReturnValue      : 0

Descripción
-----------
Este comando inicia una instancia de Bloc de notas llamando al método Create de la clase Win32_Process.

Nota: la propiedad ReturnValue se rellena con un 0 y la propiedad ProcessId se rellena con un entero (el siguiente número de identificación de proceso) si el comando se completa.





Ejemplo 2

C:\PS>invoke-wmimethod -path "CIM_DataFile.Name='C:\scripts\test.txt'" -Name Rename -ArgumentList "C:\scripts\test_bu.txt"

__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     :
__DYNASTY        : __PARAMETERS
__RELPATH        :
__PROPERTY_COUNT : 1
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :
ReturnValue      : 0

Descripción
-----------
Este comando cambia el nombre de un archivo. Utiliza 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 concreta.

Nota: la propiedad ReturnValue se rellena con un 0 si el comando se completa.





Vea también

Conceptos

Get-WmiObject
Remove-WmiObject
Set-WmiInstance
Get-WSManInstance
Invoke-WSManAction
New-WSManInstance
Remove-WSManInstance