Invoke-WmiMethod
Llama a los métodos de WMI.
Syntax
Invoke-WmiMethod
[-Class] <String>
[-Name] <String>
[-ArgumentList <Object[]>]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
-InputObject <ManagementObject>
[-Name] <String>
[-ArgumentList <Object[]>]
[-AsJob]
[-ThrottleLimit <Int32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
-Path <String>
[-Name] <String>
[-ArgumentList <Object[]>]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
[-Name] <String>
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
[-Name] <String>
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
[-Name] <String>
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
El cmdlet Invoke-WmiMethod llama a los métodos de objetos de 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 de 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 necesario de los objetos WMI
PS C:\> ([wmiclass]'Win32_Volume').GetMethodParameters('Format')
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 6
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
ClusterSize : 0
EnableCompression : False
FileSystem : NTFS
Label :
QuickFormat : False
Version : 0
PSComputerName :
Este comando muestra el orden requerido de los objetos. Para invocar a WMI en PowerShell 3.0, no se puede hacer igual que en métodos alternativos. En este caso es necesario escribir los valores de objeto en un orden específico.
Ejemplo 2: Iniciar una instancia de una aplicación
PS C:\> ([Wmiclass]'Win32_Process').GetMethodParameters('Create')
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 3
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
CommandLine :
CurrentDirectory :
ProcessStartupInformation :
PSComputerName : PS C:\> 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 : 11312
ReturnValue : 0
PSComputerName :
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 0 y la propiedad ProcessId se rellena con un entero (el número de id. de proceso siguiente) si se completa el comando.
Ejemplo 3: Cambiar el nombre de un archivo
PS C:\> 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
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, se aplica el método Rename a esa instancia concreta.
La propiedad ReturnValue se rellena con un 0 si se completa el comando.
Parámetros
-ArgumentList
Especifica los parámetros que se pasarán 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 han de enumerar esos objetos, ejecute el método GetMethodParameters() en la clase de WMI, tal y como se muestra en el ejemplo 1, casi al 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 del tipo "No se puede convertir un objeto de tipo 'System.Byte' al tipo 'System.Array'".
Un ejemplo con una matriz de objetos ($binSD) seguido por 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
Type: | Object[] |
Aliases: | Args |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-AsJob
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 use el parámetro AsJob, el comando devuelve un objeto que representa el trabajo en segundo plano y, luego, muestra el símbolo del sistema. Puede seguir trabajando en la sesión mientras finaliza el trabajo. Si se usa Invoke-WmiMethod en un equipo remoto, se crea el trabajo 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 contengan la palabra Job (cmdlets de tipo 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 Windows PowerShell trabajos en segundo plano, 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 permitidos para este parámetro son los siguientes:
-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 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 se cifran todos los datos).
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 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.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Class
Especifica la clase de WMI que contiene un método estático al que se va a llamar.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ComputerName
Especifica, como matriz de cadenas, los equipos en los que este cmdlet ejecuta el comando. La opción predeterminada es el equipo local.
Escriba el nombre NetBIOS, una dirección IP o un nombre de dominio completo de uno o más equipos. Para especificar el equipo local, escriba el nombre del equipo, un punto (.) o localhost.
Este parámetro no utiliza la comunicación remota de Windows PowerShell. Puede usar el parámetro ComputerName, incluso aunque el equipo no esté configurado para ejecutar comandos remotos.
Type: | String[] |
Aliases: | Cn |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Le solicita su confirmación antes de ejecutar el cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
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\User01 o User@Contoso.com. O bien, escriba un objeto PSCredential , como un objeto devuelto por el cmdlet Get-Credential. Cuando escriba un nombre de usuario, se le solicitará una contraseña.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-EnableAllPrivileges
Indica que este cmdlet habilita todos los privilegios del usuario actual antes de que el comando realice la llamada WMI.
Type: | SwitchParameter |
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, 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 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).
Type: | ImpersonationLevel |
Accepted values: | Default, Anonymous, Identify, Impersonate, Delegate |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
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 .
Type: | ManagementObject |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Locale
Especifica la configuración regional preferida para objetos WMI. Especifique el valor del parámetro Locale como una matriz en el formato MS_<LCID> en el orden preferido.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Especifica el nombre del método que se va a invocar. Este parámetro es obligatorio y no puede ser nulo ni vacío.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | 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.
Type: | String |
Aliases: | NS |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Especifica la ruta de acceso del objeto de WMI de una clase de WMI o especifica la ruta de acceso del objeto de WMI de una instancia de una clase de WMI. La clase o la instancia que especifique debe contener el método especificado en el parámetro Name .
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | 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 AsJob . El límite solo se aplica al comando actual, no a la sesión ni al equipo.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Muestra lo que sucedería si se ejecutara el cmdlet. El cmdlet no se ejecuta.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entradas
None
Este cmdlet no acepta entradas.
Salidas
None
Este cmdlet no genera ningún resultado.