Freigeben über


Set-WmiInstance

Erstellt oder aktualisiert eine Instanz einer vorhandenen Klasse der Windows-Verwaltungsinstrumentation (Windows Management Instrumentation, WMI).

Syntax

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>]

Beschreibung

Das Set-WmiInstance Cmdlet erstellt oder aktualisiert eine Instanz einer vorhandenen WMI-Klasse (Windows Management Instrumentation). Die erstellte oder aktualisierte Instanz wird in das WMI-Repository geschrieben.

Mit den neuen in Windows PowerShell 3.0 eingeführten CIM-Cmdlets werden die gleichen Aufgaben wie mit WMI-Cmdlets ausgeführt. Die CIM-Cmdlets entsprechen den WS-Management -Standards (WSMan) und dem Common Information Model (CIM)-Standard. Auf diese Weise können Cmdlets dieselben Techniken verwenden, um Windows-basierte Computer und andere Betriebssysteme zu verwalten. Statt zu verwenden Set-WmiInstance, sollten Sie die Cmdlets "Set-CimInstance " oder "New-CimInstance " verwenden.

Beispiele

Beispiel 1: Festlegen der WMI-Protokollierungsebene

Set-WmiInstance -Class Win32_WMISetting -Argument @{LoggingLevel=2}

__GENUS                        : 2
__CLASS                        : Win32_WMISetting
__SUPERCLASS                   : CIM_Setting
__DYNASTY                      : CIM_Setting
__RELPATH                      : Win32_WMISetting=@
__PROPERTY_COUNT               : 27
__DERIVATION                   : {CIM_Setting}
__SERVER                       : SYSTEM01
__NAMESPACE                    : root\cimv2
__PATH                         : \\SYSTEM01\root\cimv2:Win32_WMISetting=@
ASPScriptDefaultNamespace      : \\root\cimv2
ASPScriptEnabled               : False
AutorecoverMofs                : {%windir%\system32\wbem\cimwin32.mof, %windir%\system32\wbem\ncprov.mof, %windir%\syst
em32\wbem\wmipcima.mof, %windir%\system32\wbem\secrcw32.mof...}
AutoStartWin9X                 :
BackupInterval                 :
BackupLastTime                 :
BuildVersion                   : 6001.18000
Caption                        :
DatabaseDirectory              : C:\Windows\system32\wbem\repository
DatabaseMaxSize                :
Description                    :
EnableAnonWin9xConnections     :
EnableEvents                   : False
EnableStartupHeapPreallocation : False
HighThresholdOnClientObjects   :
HighThresholdOnEvents          : 20000000
InstallationDirectory          : C:\Windows\system32\wbem
LastStartupHeapPreallocation   :
LoggingDirectory               : C:\Windows\system32\wbem\Logs\
LoggingLevel                   : 2
LowThresholdOnClientObjects    :
LowThresholdOnEvents           : 10000000
MaxLogFileSize                 : 65536
MaxWaitOnClientObjects         :
MaxWaitOnEvents                : 2000
MofSelfInstallDirectory        :
SettingID                      :

Mit diesem Befehl wird der WMI-Protokolliergrad auf %%amp;quot;2%%amp;quot; festgelegt. Der Befehl übergibt die festzulegende Eigenschaft und den Wert, zusammen als Wertpaar betrachtet, im Argumentparameter. Der Parameter verwendet eine Hashtabelle, die durch die @{property = value} Konstruktion definiert wird. Die zurückgegebenen Klasseninformationen spiegeln den neuen Wert wider.

Beispiel 2: Erstellen einer Umgebungsvariable und des zugehörigen Werts

Set-WmiInstance -Class win32_environment -Argument @{Name="testvar";VariableValue="testvalue";UserName="<SYSTEM>"}

__GENUS          : 2
__CLASS          : Win32_Environment
__SUPERCLASS     : CIM_SystemResource
__DYNASTY        : CIM_ManagedSystemElement
__RELPATH        : Win32_Environment.Name="testvar",UserName="<SYSTEM>"
__PROPERTY_COUNT : 8
__DERIVATION     : {CIM_SystemResource, CIM_LogicalElement, CIM_ManagedSystemElement}
__SERVER         : SYSTEM01
__NAMESPACE      : root\cimv2
__PATH           : \\SYSTEM01\root\cimv2:Win32_Environment.Name="testvar",UserName="<SYSTEM>"
Caption          : <SYSTEM>\testvar
Description      : <SYSTEM>\testvar
InstallDate      :
Name             : testvar
Status           : OK
SystemVariable   : True
UserName         : <SYSTEM>
VariableValue    : testvalue

Mit diesem Befehl wird die Testvar-Umgebungsvariable erstellt, die den Werttestwert aufweist. Dazu wird eine neue Instanz der Win32_Environment WMI-Klasse erstellt. Für diesen Vorgang sind geeignete Anmeldeinformationen erforderlich, und Möglicherweise müssen Sie Windows PowerShell neu starten, um die neue Umgebungsvariable anzuzeigen.

Beispiel 3: Festlegen der WMI-Protokollierungsebene für mehrere Remotecomputer

Set-WmiInstance -Class Win32_WMISetting -Argument @{LoggingLevel=2} -Computername "system01", "system02", "system03"

__GENUS                        : 2
__CLASS                        : Win32_WMISetting
__SUPERCLASS                   : CIM_Setting
__DYNASTY                      : CIM_Setting
__RELPATH                      : Win32_WMISetting=@
__PROPERTY_COUNT               : 27
__DERIVATION                   : {CIM_Setting}
__SERVER                       : SYSTEM01
__NAMESPACE                    : root\cimv2
__PATH                         : \\SYSTEM01\root\cimv2:Win32_WMISetting=@
ASPScriptDefaultNamespace      : \\root\cimv2
ASPScriptEnabled               : False
AutorecoverMofs                : {%windir%\system32\wbem\cimwin32.mof, %windir%\system32\wbem\ncprov.mof, %windir%\syst
em32\wbem\wmipcima.mof, %windir%\system32\wbem\secrcw32.mof...}
AutoStartWin9X                 :
BackupInterval                 :
BackupLastTime                 :
BuildVersion                   : 6001.18000
Caption                        :
DatabaseDirectory              : C:\Windows\system32\wbem\repository
DatabaseMaxSize                :
Description                    :
EnableAnonWin9xConnections     :
EnableEvents                   : False
EnableStartupHeapPreallocation : False
HighThresholdOnClientObjects   :
HighThresholdOnEvents          : 20000000
InstallationDirectory          : C:\Windows\system32\wbem
LastStartupHeapPreallocation   :
LoggingDirectory               : C:\Windows\system32\wbem\Logs\
LoggingLevel                   : 2
LowThresholdOnClientObjects    :
LowThresholdOnEvents           : 10000000
MaxLogFileSize                 : 65536
MaxWaitOnClientObjects         :
MaxWaitOnEvents                : 2000
MofSelfInstallDirectory        :
SettingID                      :
...

Mit diesem Befehl wird der WMI-Protokolliergrad auf %%amp;quot;2%%amp;quot; festgelegt. Der Befehl übergibt die festzulegende Eigenschaft und den Wert, zusammen als Wertpaar betrachtet, im Argumentparameter. Der Parameter verwendet eine Hashtabelle, die durch die @{property = value} Konstruktion definiert wird. Die zurückgegebenen Klasseninformationen spiegeln den neuen Wert wider.

Parameter

-Arguments

Gibt den Namen der zu ändernden Eigenschaft und den neuen Wert für diese Eigenschaft an. Der Name und der Wert müssen ein Name-Wert-Paar sein. Das Name-Wert-Paar wird in der Befehlszeile als Hashtabelle übergeben. Zum Beispiel:

@{Setting1=1; Setting2=5; Setting3="test"}

Typ:Hashtable
Aliase:Args, Property
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-AsJob

Gibt an, dass dieses Cmdlet als Hintergrundauftrag ausgeführt wird. Verwenden Sie diesen Parameter, um Befehle auszuführen, deren Ausführung viel Zeit in Anspruch nimmt.

Wenn Sie den AsJob-Parameter angeben, gibt der Befehl ein Objekt zurück, das den Hintergrundauftrag darstellt, und zeigt dann die Eingabeaufforderung an. Sie können die Sitzung weiterhin verwenden, während der Auftrag abgeschlossen wird. Wenn sie für einen Remotecomputer verwendet wird, wird der Auftrag auf dem lokalen Computer erstellt, und die Ergebnisse von Remotecomputern werden automatisch an den lokalen Computer zurückgegeben. Verwenden Sie zum Verwalten des Auftrags die Cmdlets, die das Substantiv "Auftrag " (die Cmdlets "Auftrag ") enthalten. Verwenden Sie das Receive-Job Cmdlet, um die Auftragsergebnisse abzurufen.

Um diesen Parameter zusammen mit Remotecomputern zu verwenden, müssen die lokalen und Remotecomputer für remoting konfiguriert werden. Darüber hinaus müssen Sie Windows PowerShell mit der Option "Als Administrator ausführen" in Windows Vista und höheren Versionen des Windows-Betriebssystems starten. Weitere Informationen finden Sie unter about_Remote_Requirements.

Weitere Informationen zu Windows PowerShell-Hintergrundaufträgen finden Sie unter about_Jobs und about_Remote_Jobs.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Authentication

Gibt die Authentifizierungsebene an, die mit der WMI-Verbindung verwendet werden muss. Zulässige Werte für diesen Parameter:

  • -1:Unverändert.
  • 0: Standard.
  • 1:Nichts. Es wurde keine Authentifizierung ausgeführt.
  • 2:Verbinden. Die Authentifizierung wird nur ausgeführt, wenn der Client eine Beziehung mit der Anwendung herstellt.
  • 3:Rufen. Die Authentifizierung erfolgt nur zu Beginn jedes Anrufs, wenn die Anwendung die Anforderung empfängt.
  • 4:Paket. Die Authentifizierung erfolgt für alle Daten, die vom Client empfangen werden.
  • 5: PacketIntegrity. Alle Daten, die zwischen dem Client und der Anwendung übertragen werden, werden authentifiziert und überprüft.
  • 6: PacketPrivacy. Die Eigenschaften der anderen Authentifizierungsstufen werden verwendet, und alle Daten werden verschlüsselt.
Typ:AuthenticationLevel
Zulässige Werte:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Authority

Gibt die Autorität an, die zum Authentifizieren der WMI-Verbindung verwendet werden soll. Sie können die Standard-NTLM- oder Kerberos-Authentifizierung angeben. Um NTLM zu verwenden, legen Sie die Autoritätseinstellung auf ntlmdomain:<DomainName> fest, wobei <DomainName> einen gültigen NTLM-Domänennamen identifiziert. Geben Sie kerberos:<DomainName\<ServerName>> an, um Kerberos zu verwenden. Sie können die Authority-Einstellung nicht einschließen, wenn Sie eine Verbindung mit dem lokalen Computer herstellen.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Class

Gibt den Namen einer WMI-Klasse an.

Typ:String
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-ComputerName

Gibt den Namen des Computers an, auf dem dieses Cmdlet ausgeführt wird. Die Standardeinstellung ist der lokale Computer.

Geben Sie den NetBIOS-Namen, eine IP-Adresse oder den vollqualifizierten Domänennamen eines Computers oder mehrerer Computer ein. Um den lokalen Computer anzugeben, geben Sie den Computernamen, einen Punkt (.) oder localhost ein.

Dieser Parameter beruht nicht auf Windows PowerShell-Remoting. Sie können den Parameter "ComputerName " auch dann verwenden, wenn Ihr Computer nicht für die Ausführung von Remotebefehlen konfiguriert ist.

Typ:String[]
Aliase:Cn
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Confirm

Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.

Typ:SwitchParameter
Aliase:cf
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Credential

Gibt ein Benutzerkonto an, das über die Berechtigung zum Ausführen dieser Aktion verfügt. Der Standardwert ist der aktuelle Benutzer.

Geben Sie einen Benutzernamen ein, z. B. "User01" oder "Domain01\User01", oder geben Sie ein PSCredential-Objekt ein, z. B. einen, der vom Cmdlet "Get-Credential" generiert wurde. Wenn Sie einen Benutzernamen eingeben, fordert dieses Cmdlet ein Kennwort ein.

Dieser Parameter wird von anbietern, die mit parametern installiert sind, nicht unterstützt, von anbietern, die mit Windows PowerShell installiert sind.

Typ:PSCredential
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-EnableAllPrivileges

Gibt an, dass dieses Cmdlet alle Berechtigungen des aktuellen Benutzers aktiviert, bevor der Befehl ausgeführt wird, der den WMI-Aufruf vorgibt.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Impersonation

Gibt die zu verwendende Identitätswechselebene an. Zulässige Werte für diesen Parameter:

  • 0: Standard. Liest die lokale Registrierung für die Standardidentitätswechselebene, die in der Regel auf 3 festgelegt ist: Identitätswechsel.
  • 1:Anonym. Verbirgt die Anmeldeinformationen des Aufrufers.
  • 2:Identifizieren. Ermöglicht es Objekten, die Anmeldeinformationen des Aufrufers abzufragen.
  • 3:Sich ausgeben als. Ermöglicht es Objekten, die Anmeldeinformationen des Aufrufers zu verwenden.
  • 4:Delegieren. Ermöglicht es Objekten, anderen Objekten die Verwendung der Anmeldeinformationen des Aufrufers zu gestatten.
Typ:ImpersonationLevel
Zulässige Werte:Default, Anonymous, Identify, Impersonate, Delegate
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-InputObject

Gibt ein ManagementObject-Objekt an, das als Eingabe verwendet werden soll. Wenn dieser Parameter verwendet wird, werden alle anderen Parameter außer dem Arguments-Parameter ignoriert.

Typ:ManagementObject
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-Locale

Gibt das bevorzugte Gebietsschema für WMI-Objekte an. Der Gebietsschemaparameter wird in einem Array im MS_<LCID-Format> in der bevorzugten Reihenfolge angegeben.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Namespace

Gibt den WMI-Repositorynamespace an, in dem sich die referenzierte WMI-Klasse befindet, wenn sie mit dem Parameter "Class " verwendet wird.

Typ:String
Aliase:NS
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Path

Gibt einen WMI-Objektpfad der Instanz an, die Sie erstellen oder aktualisieren möchten.

Typ:String
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-PutType

Gibt an, ob die WMI-Instanz erstellt oder aktualisiert werden soll. Zulässige Werte für diesen Parameter:

  • UpdateOnly Aktualisiert eine vorhandene WMI-Instanz.
  • CreateOnly Erstellt eine neue WMI-Instanz.
  • UpdateOrCreate Aktualisiert die WMI-Instanz, wenn sie vorhanden ist, oder erstellt eine neue Instanz, wenn keine Instanz vorhanden ist.
Typ:PutType
Zulässige Werte:None, UpdateOnly, CreateOnly, UpdateOrCreate
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-ThrottleLimit

Gibt die maximale Anzahl von gleichzeitigen Verbindungen an, die zum Ausführen dieses Befehls hergestellt werden können. Dieser Parameter wird zusammen mit dem AsJob-Parameter verwendet. Die Drosselungsgrenze gilt nur für den aktuellen Befehl und nicht für die Sitzung oder den Computer.

Typ:Int32
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-WhatIf

Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

Typ:SwitchParameter
Aliase:wi
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

Eingaben

None

Dieses Cmdlet nimmt keine Eingabe an.

Ausgaben

None

Dieses Cmdlet generiert keine Ausgabe.

Hinweise

Windows PowerShell enthält die folgenden Aliase für Set-WmiInstance:

  • swmi