Set-CimInstance
Ändert eine CIM-Instanz auf einem CIM-Server durch Aufrufen der ModifyInstance-Methode der CIM-Klasse.
Syntax
Set-CimInstance
[-ComputerName <String[]>]
[-ResourceUri <Uri>]
[-OperationTimeoutSec <UInt32>]
[-InputObject] <CimInstance>
[-Property <IDictionary>]
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-CimInstance
-CimSession <CimSession[]>
[-ResourceUri <Uri>]
[-OperationTimeoutSec <UInt32>]
[-InputObject] <CimInstance>
[-Property <IDictionary>]
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-CimInstance
-CimSession <CimSession[]>
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-Query] <String>
[-QueryDialect <String>]
-Property <IDictionary>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-CimInstance
[-ComputerName <String[]>]
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-Query] <String>
[-QueryDialect <String>]
-Property <IDictionary>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Beschreibung
Dieses Cmdlet ändert eine CIM-Instanz auf einem CIM-Server.
Wenn der InputObject-Parameter nicht angegeben ist, funktioniert das Cmdlet auf eine der folgenden Arten:
- Wenn weder der Parameter ComputerName noch der CimSession-Parameter angegeben ist, funktioniert dieses Cmdlet unter Verwendung einer COM-Sitzung (Component Object Model) für die lokale Windows-Verwaltungsinstrumentation (Windows Management Instrumentation, WMI).
- Wenn entweder der Parameter ComputerName oder der CimSession-Parameter angegeben ist, funktioniert dieses Cmdlet mit dem CIM-Server, der entweder durch den ComputerName-Parameter oder den CimSession-Parameter angegeben wird.
Wenn der InputObject-Parameter angegeben ist, funktioniert das Cmdlet auf eine der folgenden Arten:
- Wenn weder der Parameter ComputerName noch der CimSession-Parameter angegeben wird, verwendet dieses Cmdlet den CIM-Sitzungs- oder Computernamen aus dem Eingabeobjekt.
- Wenn der Parameter ComputerName oder der CimSession-Parameter angegeben ist, verwendet dieses Cmdlet entweder den CimSession-Parameterwert oder den ComputerName-Parameterwert. Dies ist nicht sehr häufig.
Beispiele
Beispiel 1: Festlegen der CIM-Instanz
In diesem Beispiel wird der Wert der VariableValue-Eigenschaft mithilfe des Query-Parameters auf abcd festgelegt. Sie können Instanzen ändern, die einer Abfrage der Windows-Verwaltungsinstrumentationsabfrage (Windows Management Instrumentation Query Language, WQL) entsprechen.
Set-CimInstance -Query 'Select * from Win32_Environment where name LIKE "testvar%"' -Property @{VariableValue="abcd"}
Beispiel 2: Festlegen der CIM-Instanzeigenschaft mithilfe der Pipeline
In diesem Beispiel wird das CIM-Instanzobjekt abgerufen, das mithilfe des Get-CimInstance
Cmdlets vom Query-Parameter gefiltert wird. Das Set-CimInstance
Cmdlet ändert den Wert der VariableValue-Eigenschaft in abcd.
Get-CimInstance -Query 'Select * from Win32_Environment where name LIKE "testvar%"' |
Set-CimInstance -Property @{VariableValue="abcd"}
Beispiel 3: Festlegen der CIM-Instanzeigenschaft mithilfe des Eingabeobjekts
$x = Get-CimInstance -Query 'Select * from Win32_Environment where Name="testvar"'
Set-CimInstance -InputObject $x -Property @{VariableValue="somevalue"} -PassThru
In diesem Beispiel werden die CIM-Instanzobjekte abgerufen, die vom Query-Parameter in eine Variable $x
gefiltert Get-CimInstance
werden. Anschließend wird der Inhalt der Variablen an das Set-CimInstance
Cmdlet übergeben. Set-CimInstance
ändert dann die VariableValue-Eigenschaft in einen gewissen Wert. Da der PassThru-Parameter verwendet wird, gibt dieses Beispiel ein geändertes CIM-Instanzobjekt zurück.
Beispiel 4: Festlegen der CIM-Instanzeigenschaft
In diesem Beispiel wird das CIM-Instanzobjekt abgerufen, das im Query-Parameter angegeben ist, in eine Variable mithilfe des Cmdlets, und ändert den VariableValue-Eigenschaftswert des zu ändernden Objekts.This example retrieves the CIM instance object that is specified in a variable $x
using the Get-CimInstance
cmdlet, and changes the VariableValue property value of the object to change. Das CIM-Instanzobjekt wird dann mithilfe des Set-CimInstance
Cmdlets gespeichert.
Da der PassThru-Parameter verwendet wird, gibt dieses Beispiel ein geändertes CIM-Instanzobjekt zurück.
$x = Get-CimInstance -Query 'Select * from Win32_Environment where name="testvar"'
$x.VariableValue = "Change"
Set-CimInstance -CimInstance $x -PassThru
Beispiel 5: Anzeigen der Liste der CIM-Instanzen zum Ändern mithilfe von WhatIf
In diesem Beispiel wird der allgemeine Parameter WhatIf verwendet, um anzugeben, dass die Änderung nicht durchgeführt werden soll, sondern nur ausgeben, was passiert, wenn dies geschehen würde.
Set-CimInstance -Query 'Select * from Win32_Environment where name LIKE "testvar%"' -Property @{VariableValue="abcd"} -WhatIf
Beispiel 6: Festlegen der CIM-Instanz nach bestätigung des Benutzers
In diesem Beispiel wird der allgemeine Parameter Confirm verwendet, um anzugeben, dass die Änderung erst nach der Bestätigung des Benutzers erfolgen soll.
Set-CimInstance -Query 'Select * from Win32_Environment where name LIKE "testvar%"' -Property @{VariableValue="abcd"} -Confirm
Beispiel 7: Festlegen der erstellten CIM-Instanz
In diesem Beispiel wird eine CIM-Instanz mit den angegebenen Eigenschaften mithilfe des New-CimInstance
Cmdlets erstellt und deren Inhalt in einer Variablen $x
abgerufen. Die Variable wird dann an das Set-CimInstance
Cmdlet übergeben, das den Wert der VariableValue-Eigenschaft in einen bestimmten Wert ändert.
Da der PassThru-Parameter verwendet wird, gibt dieses Beispiel ein geändertes CIM-Instanzobjekt zurück.
$x = New-CimInstance -ClassName Win32_Environment -Property @{Name="testvar";UserName="domain\user"} -Key Name,UserName -ClientOnly
Set-CimInstance -CimInstance $x -Property @{VariableValue="somevalue"} -PassThru
Parameter
-CimSession
Führt die Cmdlets auf einem Remotecomputer aus. Geben Sie einen Computernamen oder ein Sitzungsobjekt ein, z. B. die Ausgabe eines New-CimSession
Oder Get-CimSession
Cmdlets.
Typ: | CimSession[] |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-ComputerName
Gibt den Namen des Computers an, auf dem Der CIM-Vorgang ausgeführt werden soll. Sie können einen vollqualifizierten Domänennamen (FQDN) oder einen NetBIOS-Namen angeben.
Wenn Sie diesen Parameter nicht angeben, führt das Cmdlet den Vorgang auf dem lokalen Computer mithilfe des Component Object Model (COM) aus.
Wenn Sie diesen Parameter angeben, erstellt das Cmdlet mithilfe des WsMan-Protokolls eine temporäre Sitzung auf dem angegebenen Computer.
Wenn mehrere Vorgänge auf demselben Computer ausgeführt werden, bietet die Verbindung mit einer CIM-Sitzung eine bessere Leistung.
Typ: | String[] |
Aliase: | CN, ServerName |
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 |
-InputObject
Gibt ein CIM-Instanzobjekt an, das als Eingabe verwendet werden soll.
Der InputObject-Parameter enumeriert keine Auflistungen. Wenn eine Auflistung übergeben wird, wird ein Fehler ausgelöst. Wenn Sie mit Sammlungen arbeiten, führen Sie die Eingabe weiter, um die Werte aufzählen zu können.
Typ: | CimInstance |
Aliase: | CimInstance |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Namespace
Gibt den Namespace für den CIM-Vorgang an. Der Standardnamespace ist root/cimv2. Sie können die Registerkartenabschluss verwenden, um die Liste der Namespaces zu durchsuchen, da PowerShell eine Liste von Namespaces vom lokalen WMI-Server abruft, um die Liste der Namespaces bereitzustellen.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-OperationTimeoutSec
Gibt die Zeitspanne an, die das Cmdlet auf eine Antwort vom Computer wartet. Standardmäßig ist der Wert dieses Parameters 0, was bedeutet, dass das Cmdlet den Standardtimeoutwert für den Server verwendet.
Wenn der Parameter OperationTimeoutSec auf einen Wert festgelegt ist, der kleiner als das robuste Verbindungsretrytimeout von 3 Minuten ist, können Netzwerkfehler, die mehr als der Wert des OperationTimeoutSec-Parameters dauern, nicht wiederhergestellt werden, da der Vorgang auf dem Server zu einem Timeout vor dem erneuten Herstellen der Verbindung führen kann.
Typ: | UInt32 |
Aliase: | OT |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-PassThru
Gibt ein Objekt zurück, das das Element darstellt, mit dem Sie arbeiten. Standardmäßig wird von diesem Cmdlet keine Ausgabe generiert.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Property
Gibt die Eigenschaften der CIM-Instanz als Hashtabelle an (mithilfe von Name-Wert-Paaren). Nur die mit diesem Parameter angegebenen Eigenschaften werden geändert. Andere Eigenschaften der CIM-Instanz werden nicht geändert.
Typ: | IDictionary |
Aliase: | Arguments |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Query
Gibt eine Abfrage an, die auf dem CIM-Server ausgeführt werden soll, um CIM-Instanzen abzurufen, auf denen das Cmdlet ausgeführt werden soll. Sie können den Abfragedialekt mithilfe des QueryDialect-Parameters angeben.
Wenn der angegebene Wert doppelte Anführungszeichen ("
), einfache Anführungszeichen ('
) oder einen umgekehrten Schrägstrich (\
) enthält, müssen Sie diese Zeichen escapen, indem Sie sie dem umgekehrten Schrägstrich (\
) voranstellen. Wenn der angegebene Wert den WQL LIKE-Operator verwendet, müssen Sie die folgenden Zeichen escapen, indem Sie sie in eckige Klammern (): Prozent ([]
%
), Unterstrich (_
) oder öffnende eckige Klammer ([
) einschließen.
Typ: | String |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-QueryDialect
Gibt die Abfragesprache an, die für den Abfrageparameter verwendet wird. Die zulässigen Werte für diesen Parameter sind: WQL oder CQL. Der Standardwert ist WQL.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-ResourceUri
Gibt den URI (Uniform Resource Identifier) der Ressourcenklasse oder -instanz an. Der URI wird verwendet, um einen bestimmten Ressourcentyp auf einem Computer zu identifizieren, z. B. Datenträger oder Prozesse.
Ein URI besteht aus einem Präfix und einem Pfad zu einer Ressource. Zum Beispiel:
http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDisk
http://intel.com/wbem/wscim/1/amt-schema/1/AMT_GeneralSettings
Wenn Sie diesen Parameter nicht angeben, wird standardmäßig der DMTF-Standardressourcen-URI http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/
verwendet, und der Klassenname wird an ihn angefügt.
ResourceURI kann nur mit CIM-Sitzungen verwendet werden, die mit dem WSMan-Protokoll erstellt wurden, oder beim Angeben des ComputerName-Parameters, der eine CIM-Sitzung mit WSMan erstellt. Wenn Sie diesen Parameter ohne Angabe des ComputersName-Parameters angeben oder eine MIT DCOM-Protokoll erstellte CIM-Sitzung angeben, wird ein Fehler angezeigt, da das DCOM-Protokoll den ResourceURI-Parameter nicht unterstützt.
Wenn sowohl der Parameter "ResourceUri" als auch der Parameter "Filter" angegeben werden, wird der Parameter "Filter" ignoriert.
Typ: | Uri |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
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
Ausgaben
None
Standardmäßig gibt dieses Cmdlet keine Ausgabe zurück.
Wenn Sie den PassThru-Parameter verwenden, gibt dieses Cmdlet das geänderte CIM-Instanzobjekt zurück.