Freigeben über


Set-CMOrchestrationGroup

Konfigurieren sie eine Orchestrierungsgruppe.

Syntax

Set-CMOrchestrationGroup
   [-InputObject] <IResultObject>
   [-NewName <String>]
   [-Description <String>]
   [-OrchestrationType <OrchestrationTypeValue>]
   [-OrchestrationValue <Int32>]
   [-OrchestrationTimeOutMin <Int32>]
   [-MaxLockTimeOutMin <Int32>]
   [-PreScript <String>]
   [-PreScriptTimeoutSec <Int32>]
   [-PostScript <String>]
   [-PostScriptTimeoutSec <Int32>]
   [-MemberResourceIds <Int32[]>]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-CMOrchestrationGroup
   [-Id] <Int32>
   [-NewName <String>]
   [-Description <String>]
   [-OrchestrationType <OrchestrationTypeValue>]
   [-OrchestrationValue <Int32>]
   [-OrchestrationTimeOutMin <Int32>]
   [-MaxLockTimeOutMin <Int32>]
   [-PreScript <String>]
   [-PreScriptTimeoutSec <Int32>]
   [-PostScript <String>]
   [-PostScriptTimeoutSec <Int32>]
   [-MemberResourceIds <Int32[]>]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-CMOrchestrationGroup
   [-Name] <String>
   [-NewName <String>]
   [-Description <String>]
   [-OrchestrationType <OrchestrationTypeValue>]
   [-OrchestrationValue <Int32>]
   [-OrchestrationTimeOutMin <Int32>]
   [-MaxLockTimeOutMin <Int32>]
   [-PreScript <String>]
   [-PreScriptTimeoutSec <Int32>]
   [-PostScript <String>]
   [-PostScriptTimeoutSec <Int32>]
   [-MemberResourceIds <Int32[]>]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Beschreibung

Verwenden Sie dieses Cmdlet, um eine Orchestrierungsgruppe zu konfigurieren.

Verwenden Sie Orchestrierungsgruppen, um die Bereitstellung von Softwareupdates auf Geräten besser zu steuern. Möglicherweise müssen Sie Updates für bestimmte Workloads sorgfältig verwalten oder das Verhalten dazwischen automatisieren. Weitere Informationen finden Sie unter Erstellen und Verwenden von Orchestrierungsgruppen in Configuration Manager.

Hinweis

Führen Sie Configuration Manager-Cmdlets auf dem Configuration Manager-Standortlaufwerk aus, z. B PS XYZ:\>. . Weitere Informationen finden Sie unter Erste Schritte.

Beispiele

Beispiel 1: Ändern des Typs und Angeben der Sequenz

In diesem Beispiel wird zunächst das Cmdlet Get-CMOrchestrationGroup verwendet, um ein Objekt für die Orchestrierungsgruppe mit dem Namen IT-Server abzurufen. Dieses Objekt wird in der Og-Variablen gespeichert.

Der nächste Befehl definiert ein Array mit dem Namen devices. Es durchläuft jedes Mitglied der IT-Server-Orchestrierungsgruppe ($og.MOGMembers) und übergibt die ID des Mitglieds an das Cmdlet Get-CMDevice . Das zurückgegebene Geräteobjekt wird an das Gerätearray angefügt.

Der nächste Befehl sortiert das Array nach Gerätename und gibt die Geräteressourcen-IDs in die Variable sortiertEIDs zurück.

Anschließend werden die Cmdlet-Parameter in die Parametervariablesplatiert. Es ist nicht erforderlich, die Parameter zu splatieren, es erleichtert nur das Lesen der Parameter für eine so lange Befehlszeile.

Der letzte Befehl konfiguriert die angegebene Orchestrierungsgruppe mit einer definierten Reihenfolge der Sequenz. Es verwendet den MemberResourceIds-Parameter , um die Sequenz festzulegen, ohne Member hinzuzufügen oder zu entfernen.

$og = Get-CMOrchestrationGroup -Name "IT servers"

$devices = @()
foreach ( $id in $og.MOGMembers ) {
  $devices += Get-CMDevice -Id $id -Fast
}

$sortedIDs = ( $devices | Sort-Object -Property Name | Select-Object ResourceId ).ResourceId

$parameters = @{
  InputObject = $og
  Description = "Change type and sequence"
  OrchestrationType = "Sequence"
  MemberResourceIds = $sortedIDs
}

Set-CMOrchestrationGroup @parameters

In diesem Beispiel wird gezeigt, wie eine programmgesteuerte Sortierung der vorhandenen Member erfolgt. Wenn sich die Mitgliedschaft in der Orchestrierungsgruppe nicht ändert, wird der folgende allgemeine Prozess verwendet:

  1. Verwenden Sie die vorhandenen Mitgliedsressourcen-IDs.
  2. Weitere Informationen zu den einzelnen Ressourcen finden Sie hier.
  3. Sortieren Sie die Liste nach diesen Informationen.
  4. Gibt die Ressourcen-IDs für die neu sortierte Liste zurück.

In diesem Beispiel wird Get-CMDevice verwendet, um weitere Informationen zu erhalten, aber Sie können es durch jedes Cmdlet ersetzen, das die Geräteressourcen-ID als Eingabe verwendet. Sie können den Sortiermechanismus auch durch eine andere Funktion ersetzen.

Beispiel 2: Abrufen von Skriptinhalten aus einer Datei

In diesem Beispiel wird das integrierte Cmdlet Get-Content verwendet, um den Skripttext aus einer lokalen Datei zu lesen. Der Skripttext wird in der PostScript-Variablen gespeichert. Der zweite Befehl konfiguriert die Orchestrierungsgruppe mit dem neuen Postskript.

$postScript - Get-Content -Path "D:\Scripts\OG\Post1.ps1"
Set-CMOrchestrationGroup -InputObject $og -PostScript $postScript

Parameter

-Confirm

Fordert Sie vor dem Ausführen des Cmdlets zur Bestätigung auf.

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

-Description

Geben Sie eine optionale Beschreibung für die Orchestrierungsgruppe an, um sie zu identifizieren.

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

-DisableWildcardHandling

Dieser Parameter behandelt Wildcardzeichen als Literalzeichenwerte. Sie können es nicht mit ForceWildcardHandling kombinieren.

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

-ForceWildcardHandling

Dieser Parameter verarbeitet Wildcardzeichen und kann zu unerwartetem Verhalten führen (nicht empfohlen). Sie können es nicht mit DisableWildcardHandling kombinieren.

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

-Id

Geben Sie die ID der zu konfigurierenden Orchestrierungsgruppe an. Dieser Wert ist die MOGID-Eigenschaft , die eine ganze Zahl ist. Beispiel: 16777217.

Typ:Int32
Aliase:MOGID
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-InputObject

Geben Sie ein Objekt für die Orchestrierungsgruppe an, die konfiguriert werden soll. Verwenden Sie zum Abrufen dieses Objekts das Cmdlet Get-CMOrchestrationGroup .

Typ:IResultObject
Aliase:OrchestrationGroup
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-MaxLockTimeOutMin

Geben Sie einen ganzzahligen Wert für das Timeout des Orchestrierungsgruppenmitglieds in Minuten an. Dieser Wert ist das Zeitlimit für ein einzelnes Gerät in der Gruppe, um die Updates zu installieren.

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

-MemberResourceIds

Geben Sie ein Array von Ressourcen-IDs für die Geräte an, die als Mitglieder dieser Orchestrierungsgruppe hinzugefügt werden sollen. Die Ressourcen-ID ist eine ganze Zahl, z. B 16777220. . Dies ist die ResourceId-Eigenschaft auf einem Gerät oder Ressourcenobjekt. Verwenden Sie zum Abrufen eines Geräteobjekts die Cmdlets Get-CMDevice oder Get-CMResource .

Wenn Sie den Parameter OrchestrationType auf Sequencefestlegen, verwenden Sie diesen Parameter, um die Reihenfolge zu bestimmen.

Typ:Int32[]
Aliase:MogMembers
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Name

Geben Sie den Namen der zu konfigurierenden Orchestrierungsgruppe an.

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

-NewName

Geben Sie einen neuen Namen für diese Orchestrierungsgruppe an. Verwenden Sie diesen Parameter, um die Orchestrierungsgruppe umzubenennen.

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

-OrchestrationTimeOutMin

Geben Sie einen ganzzahligen Wert für das Timeout der Orchestrierungsgruppe in Minuten an. Dieser Wert ist das Zeitlimit für alle Gruppenmitglieder, um die Updates zu installieren.

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

-OrchestrationType

Geben Sie einen der folgenden Werte für den Typ der Orchestrierungsgruppe an:

  • Number: Zulassen, dass mehrere Geräte gleichzeitig aktualisiert werden können. Verwenden Sie diese Einstellung, um immer auf eine bestimmte Anzahl von Geräten zu beschränken, unabhängig von der Gesamtgröße der Orchestrierungsgruppe. Verwenden Sie den Parameter OrchestrationValue , um die Anzahl der Geräte anzugeben.

  • Percentage: Zulassen, dass ein Prozentsatz der Geräte gleichzeitig aktualisiert wird. Verwenden Sie diese Einstellung, um zukünftige Flexibilität bei der Größe der Orchestrierungsgruppe zu ermöglichen. Verwenden Sie den Parameter OrchestrationValue , um den Prozentsatz anzugeben.

  • Sequence: Definieren Sie explizit die Reihenfolge, in der Geräte die Softwareupdatebereitstellung ausführen. Die Reihenfolge wird durch die Art der Geräteressourcen-IDs im MemberResourceIds-Parameter bestimmt.

Typ:OrchestrationTypeValue
Zulässige Werte:Number, Percentage, Sequence
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-OrchestrationValue

Geben Sie eine ganze Zahl für die Anzahl oder den Prozentsatz der Geräte an, die gleichzeitig aktualisiert werden sollen. Verwenden Sie diesen Parameter, wenn Sie den OrchestrationType-Parameter auf Number oder Percentagefestlegen.

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

-PostScript

Geben Sie bei Bedarf das PowerShell-Skript an, das auf jedem Gerät ausgeführt werden soll, nachdem die Bereitstellung ausgeführt und das Gerät neu gestartet wird.

Dieser Zeichenfolgenwert ist der Text des Skripts selbst. Wenn Sie über ein Skript in einer Datei verfügen, die Sie verwenden möchten, lesen Sie es zuerst in eine Variable. Verwenden Sie beispielsweise das integrierte Cmdlet Get-Content .

Die Skripts sollten den Wert für 0 Erfolg zurückgeben. Jeder Wert ungleich 0 (null) wird als Skriptfehler betrachtet. Sie können kein Skript mit Parametern verwenden. Die maximale Skriptlänge beträgt 50.000 Zeichen.

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

-PostScriptTimeoutSec

Geben Sie den ganzzahligen Wert für die zulässige Zeit in Sekunden an, für die das Post-Skript ausgeführt werden soll, bevor ein Timeout aufgetreten ist.

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

-PreScript

Geben Sie das PowerShell-Skript an, das auf jedem Gerät ausgeführt werden soll, bevor die Bereitstellung ausgeführt wird.

Dieser Zeichenfolgenwert ist der Text des Skripts selbst. Wenn Sie über ein Skript in einer Datei verfügen, die Sie verwenden möchten, lesen Sie es zuerst in eine Variable. Verwenden Sie beispielsweise das integrierte Cmdlet Get-Content .

Die Skripts sollten den Wert für 0 Erfolg zurückgeben. Jeder Wert ungleich 0 (null) wird als Skriptfehler betrachtet. Sie können kein Skript mit Parametern verwenden. Die maximale Skriptlänge beträgt 50.000 Zeichen.

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

-PreScriptTimeoutSec

Geben Sie den ganzzahligen Wert für die zulässige Zeit in Sekunden für die Ausführung des Vorskripts an, bevor ein Timeout aufgetreten ist.

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

-WhatIf

Zeigt, was passieren würde, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

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

Eingaben

Microsoft.ConfigurationManagement.ManagementProvider.IResultObject

Ausgaben

IResultObject

Hinweise

Dieses Cmdlet gibt ein Objekt für die SMS_MachineOrchestrationGroup WMI-Klasse zurück.