Freigeben über


Set-CimInstance

Ändert eine CIM-Instanz auf einem CIM-Server durch Aufrufen der ModifyInstance-Methode der CIM-Klasse.

Syntax

CimInstanceComputerSet (Standardwert)

Set-CimInstance
    [-InputObject] <CimInstance>
    [-ComputerName <String[]>]
    [-ResourceUri <Uri>]
    [-OperationTimeoutSec <UInt32>]
    [-Property <IDictionary>]
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

CimInstanceSessionSet

Set-CimInstance
    [-InputObject] <CimInstance>
    -CimSession <CimSession[]>
    [-ResourceUri <Uri>]
    [-OperationTimeoutSec <UInt32>]
    [-Property <IDictionary>]
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

QuerySessionSet

Set-CimInstance
    [-Query] <String>
    -CimSession <CimSession[]>
    -Property <IDictionary>
    [-Namespace <String>]
    [-OperationTimeoutSec <UInt32>]
    [-QueryDialect <String>]
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

QueryComputerSet

Set-CimInstance
    [-Query] <String>
    -Property <IDictionary>
    [-ComputerName <String[]>]
    [-Namespace <String>]
    [-OperationTimeoutSec <UInt32>]
    [-QueryDialect <String>]
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Beschreibung

Dieses Cmdlet ist nur auf der Windows-Plattform verfügbar.

Dieses Cmdlet ändert eine CIM-Instanz auf einem CIM-Server.

Wenn der parameter InputObject 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 lokale Windows-Verwaltungsinstrumentation (Windows Management Instrumentation, WMI).
  • Wenn entweder der Parameter ComputerName oder der Parameter CimSession angegeben ist, funktioniert dieses Cmdlet mit dem CIM-Server, der durch entweder den Parameter ComputerName oder CimSession angegeben wird.

Wenn der parameter InputObject angegeben ist, funktioniert das Cmdlet auf eine der folgenden Arten:

  • Wenn weder der ComputerName Parameter noch der CimSession Parameter angegeben wird, verwendet dieses Cmdlet den CIM-Sitzungs- oder Computernamen aus dem Eingabeobjekt.
  • Wenn entweder der Parameter ComputerName oder der Parameter CimSession angegeben wird, dann verwendet dieses Cmdlet entweder den Wert des Parameters CimSession oder den Wert des Parameters ComputerName. 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.

$instance = @ {
    Query = 'Select * from Win32_Environment where name LIKE "testvar%"'
    Property = @{VariableValue="abcd"}
}
Set-CimInstance @instance

Beispiel 2: Festlegen der CIM-Instanzeigenschaft mithilfe der Pipeline

In diesem Beispiel wird das CIM-Instanzobjekt abgerufen, das mithilfe des 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-CimInstancewerden. 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.

$instance = @{
    Query = 'Select * from Win32_Environment where name LIKE "testvar%"'
    Property = @{VariableValue="abcd"}
    WhatIf = $true
}
Set-CimInstance @instance

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.

$instance = @{
    Query = 'Select * from Win32_Environment where name LIKE "testvar%"'
    Property = @{VariableValue="abcd"}
    Confirm = $true
}
Set-CimInstance @instance

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 $xabgerufen. 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.

$instance = @{
    ClassName = 'Win32_Environment'
    Property = @{
        Name="testvar"
        UserName="domain\user"
    }
    Key = 'Name', 'UserName'
    ClientOnly = $true
}
$x = New-CimInstance @instance
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, wie z. B. die Ausgabe eines New-CimSession- oder Get-CimSession-Cmdlets.

Parametereigenschaften

Typ:

CimSession[]

Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

CimInstanceSessionSet
Position:Named
Obligatorisch.:True
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
QuerySessionSet
Position:Named
Obligatorisch.:True
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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.

Parametereigenschaften

Typ:

String[]

Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:China, Servername

Parametersätze

CimInstanceComputerSet
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
QueryComputerSet
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Confirm

Fordert Sie zur Bestätigung auf, bevor Sie das Cmdlet ausführen.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:vgl

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-InputObject

Gibt ein CIM-Instanzobjekt an, das als Eingabe verwendet werden soll.

Der Parameter InputObject listet keine Sammlungen auf. Wenn eine Sammlung übergeben wird, wird ein Fehler ausgelöst. Wenn Sie mit Sammlungen arbeiten, leiten Sie die Eingaben weiter, um die Werte aufzulisten.

Parametereigenschaften

Typ:CimInstance
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:CimInstance

Parametersätze

CimInstanceComputerSet
Position:0
Obligatorisch.:True
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
CimInstanceSessionSet
Position:0
Obligatorisch.:True
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Namespace

Gibt den Namespace für den CIM-Vorgang an. Der Standardnamespace ist root/CIMV2. Sie können die Registerkartenvervollständigung verwenden, um die Liste der Namespaces zu durchsuchen, da PowerShell eine Liste der Namespaces vom lokalen WMI-Server abruft, um die Liste der Namespaces bereitzustellen.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

QuerySessionSet
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False
QueryComputerSet
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten: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 OperationTimeoutSec-Parameter auf einen Wert festgelegt ist, der kleiner als das robuste Verbindungswiederholungszeitlimit von 3 Minuten ist, können Netzwerkfehler, die länger als den Wert des OperationTimeoutSec-Parameters dauern, nicht wiederhergestellt werden, da der Vorgang auf dem Server überschritten wird, bevor der Client die Verbindung erneut herstellen kann.

Parametereigenschaften

Typ:UInt32
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:OT

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-PassThru

Gibt ein Objekt zurück, das das Element darstellt, mit dem Sie arbeiten. Standardmäßig generiert dieses Cmdlet keine Ausgabe.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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.

Parametereigenschaften

Typ:IDictionary
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:Argumente

Parametersätze

CimInstanceComputerSet
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False
CimInstanceSessionSet
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False
QuerySessionSet
Position:Named
Obligatorisch.:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False
QueryComputerSet
Position:Named
Obligatorisch.:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten: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 durch einen vorangestellten umgekehrten Schrägstrich (\) ersetzen. 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.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

QuerySessionSet
Position:0
Obligatorisch.:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False
QueryComputerSet
Position:0
Obligatorisch.:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten: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.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

QuerySessionSet
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False
QueryComputerSet
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False

-ResourceUri

Gibt den URI (Uniform Resource Identifier) der Ressourcenklasse oder -instanz an. Der URI wird verwendet, um einen bestimmten Ressourcentyp zu identifizieren, z. B. Datenträger oder Prozesse, auf einem Computer.

Ein URI besteht aus einem Präfix und einem Pfad zu einer Ressource. 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 URI der DMTF-Standardressource http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/ verwendet, und der Klassenname wird daran angefügt.

ResourceUri- kann nur mit CIM-Sitzungen verwendet werden, die mit dem WSMan-Protokoll erstellt wurden, oder wenn sie den ComputerName Parameter angeben, der eine CIM-Sitzung mit WSMan erstellt. Wenn Sie diesen Parameter angeben, ohne den parameter ComputerName anzugeben, oder wenn Sie 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.

Parametereigenschaften

Typ:Uri
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

CimInstanceComputerSet
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False
CimInstanceSessionSet
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False

-WhatIf

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

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:Wi

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

CommonParameters

Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.

Eingaben

CimInstance

Ausgaben

None

Standardmäßig gibt dieses Cmdlet keine Ausgabe zurück.

CimInstance

Wenn Sie den PassThru-Parameter verwenden, gibt dieses Cmdlet das geänderte CIM-Instanzobjekt zurück.

Hinweise

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

  • Fenster:
    • scim

Dieses Cmdlet ist nur auf Windows-Plattformen verfügbar.