CmdID

CmdID / PowerShell / Cmdlets / Set

Set-WmiInstance

Creates or updates an instance of an existing Windows Management Instrumentation (WMI) class. PowerShell reference

From the PowerShell reference 17 parameters Alias swmi

Opens CmdID with your command, read as PowerShell. It is read in your browser and sent nowhere.

What it does

from the PowerShell reference, CC BY 4.0

Creates or updates an instance of an existing Windows Management Instrumentation (WMI) class. The Set-WmiInstance cmdlet creates or updates an instance of an existing Windows Management Instrumentation (WMI) class. The created or updated instance is written to the WMI repository. New CIM cmdlets, introduced Windows PowerShell 3.0, perform the same tasks as the WMI cmdlets. The CIM cmdlets comply with WS-Management (WSMan) standards and with the Common Information Model (CIM) standard. this enables cmdlets to use the same techniques to manage Windows-based computers and those running other operating systems. Instead of using Set-WmiInstance, consider using the Set-CimInstance or New-CimInstance cmdlets.

Set-WmiInstance [-Class] <String> [-Arguments <Hashtable>] [-PutType <PutType>] [-AsJob] [-Impersonation <ImpersonationLevel>] [-Authentication <AuthenticationLevel>] [-Locale <String>] [-EnableAllPrivileges] [-Authority <String>] [-Credential <PSCredential>] [-ThrottleLimit <Int32>] [-ComputerName <String[]>] [-Namespace <String>] [-WhatIf] [-Confirm] [<CommonParameters>]
Set-WmiInstance -InputObject <ManagementObject> [-Arguments <Hashtable>] [-PutType <PutType>] [-AsJob] [-ThrottleLimit <Int32>] [-WhatIf] [-Confirm] [<CommonParameters>]
Set-WmiInstance -Path <String> [-Arguments <Hashtable>] [-PutType <PutType>] [-AsJob] [-Impersonation <ImpersonationLevel>] [-Authentication <AuthenticationLevel>] [-Locale <String>] [-EnableAllPrivileges] [-Authority <String>] [-Credential <PSCredential>] [-ThrottleLimit <Int32>] [-ComputerName <String[]>] [-Namespace <String>] [-WhatIf] [-Confirm] [<CommonParameters>]
Set-WmiInstance [-PutType <PutType>] [-AsJob] [-Impersonation <ImpersonationLevel>] [-Authentication <AuthenticationLevel>] [-Locale <String>] [-EnableAllPrivileges] [-Authority <String>] [-Credential <PSCredential>] [-ThrottleLimit <Int32>] [-ComputerName <String[]>] [-Namespace <String>] [-WhatIf] [-Confirm] [<CommonParameters>]
Set-WmiInstance [-PutType <PutType>] [-AsJob] [-Impersonation <ImpersonationLevel>] [-Authentication <AuthenticationLevel>] [-Locale <String>] [-EnableAllPrivileges] [-Authority <String>] [-Credential <PSCredential>] [-ThrottleLimit <Int32>] [-ComputerName <String[]>] [-Namespace <String>] [-WhatIf] [-Confirm] [<CommonParameters>]
Set-WmiInstance [-PutType <PutType>] [-AsJob] [-Impersonation <ImpersonationLevel>] [-Authentication <AuthenticationLevel>] [-Locale <String>] [-EnableAllPrivileges] [-Authority <String>] [-Credential <PSCredential>] [-ThrottleLimit <Int32>] [-ComputerName <String[]>] [-Namespace <String>] [-WhatIf] [-Confirm] [<CommonParameters>]

Set WMI logging level

Set-WmiInstance -Class Win32_WMISetting -Arguments @{LoggingLevel=2}Identify

Create an environment variable and its value

$setWmiInstanceSplat = @{ Class = 'Win32_Environment' Arguments = @{ Name="testvar" VariableValue="testvalue" UserName="<SYSTEM>" } } Set-WmiInstance @setWmiInstanceSplatIdentify

Set WMI logging level for several remote computers

$setWmiInstanceSplat = @{ Class = 'Win32_WMISetting' Arguments = @{LoggingLevel = 2} ComputerName = 'system01', 'system02', 'system03' } Set-WmiInstance @setWmiInstanceSplatIdentify

Its page in the reference: Set-WmiInstance.

Parameters

17 in the PowerShell reference
Show its 17 parameters
-ArgumentsSpecifies the name of the property to be changed and the new value for that property. The name and value must be a name-value pair. The name-value pair is passed on the command line as a hash table. For example: @{Setting1=1; Setting2=5; Setting3="test"}
-AsJobIndicates that this cmdlet runs as a background job. Use this parameter to run commands that take a long time to finish. When you specify the AsJob parameter, the command returns an object that represents the background job and then displays the command prompt. You can continue to work in the session while the job finishes. If is used for a remote computer, the job is created on the local computer, and the results from remote computers are automatically returned to the local computer. To manage the job, use the cmdlets that contain the Job noun (the Job cmdlets). To get the job results, use the Receive-Job cmdlet. To use this parameter together with remote computers, the local and remote computers must be configured for remoting. Additionally, you must start Windows PowerShell using the Run as administrator option. For more information, see about_Remote_Requirements. For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.
-AuthenticationSpecifies the authentication level that must be used with the WMI connection. The acceptable values for this parameter are: - -1: Unchanged. - 0: Default. - 1: None. No authentication in performed. - 2: Connect. Authentication is performed only when the client establishes a relationship with the application. - 3: Call. Authentication is performed only at the start of each call when the application receives the request. - 4: Packet. Authentication is performed on all the data that's received from the client. - 5: PacketIntegrity. All the data that's transferred between the client and the application is authenticated and verified. - 6: PacketPrivacy. The properties of the other authentication levels are used, and all the data is encrypted.
-AuthoritySpecifies the authority to use to authenticate the WMI connection. You can specify standard NTLM or Kerberos authentication. To use NTLM, set the authority setting to ntlmdomain:<DomainName>, where <DomainName> identifies a valid NTLM domain name. To use Kerberos, specify kerberos:<DomainName>\<ServerName>. You can't include the authority setting when you connect to the local computer.
-ClassSpecifies the name of a WMI class.
-ComputerNameSpecifies the name of the computer on which this cmdlet runs. The default is the local computer. This parameter doesn't rely on Windows PowerShell remoting. You can use the ComputerName parameter even if your computer isn't configured to run remote commands.
-CredentialSpecifies a user account that has permission to perform this action. The default is the current user. This parameter isn't supported by any providers installed with parameter isn't supported by any providers installed with Windows PowerShell.
-EnableAllPrivilegesIndicates that this cmdlet enables all the permissions of the current user before the command it makes the WMI call.
-ImpersonationSpecifies the impersonation level to use. The acceptable values for this parameter are: - 0: Default. Reads the local registry for the default impersonation level, which is usually set to 3: Impersonate. - 1: Anonymous. Hides the credentials of the caller. - 2: Identify. Allows objects to query the credentials of the caller. - 3: Impersonate. Allows objects to use the credentials of the caller. - 4: Delegate. Allows objects to permit other objects to use the credentials of the caller.
-InputObjectSpecifies a ManagementObject object to use as input. When this parameter is used, all other parameters ,except the Arguments parameter, are ignored.
-LocaleSpecifies the preferred locale for WMI objects. The Locale parameter is specified in an array in the MS_<LCID> format in the preferred order.
-NamespaceSpecifies the WMI repository namespace where the referenced WMI class is located when it's used with the Class parameter.
-PathSpecifies a WMI object path of the instance that you want to create or update.
-PutTypeIndicates whether to create or update the WMI instance. The acceptable values for this parameter are: - UpdateOnly Updates an existing WMI instance. - CreateOnly Creates a new WMI instance. - UpdateOrCreate Updates the WMI instance if it exists or creates a new instance if an instance doesn't exist.
-ThrottleLimitSpecifies the maximum number of concurrent connections that can be established to run this command. This parameter is used together with the AsJob parameter. The throttle limit applies only to the current command, not to the session or to the computer.
-ConfirmPrompts you for confirmation before running the cmdlet.
-WhatIfShows what would happen if the cmdlet runs. The cmdlet isn't run.