Zeitplanvariablen setzen

Setzt den Wert von Objekten vom Typ "Zeitplan". Der Wert kann in verschiedenen Formaten angegeben werden. 


Allgemein gilt: 


Set-EmdbSchedule -Schedule $MySchedule -Value <Wert>

Set-EmdbSchedule -Item <Objekt> -Value <Wert>


Für das Setzen von Werten über Set-EmdbSchedule kann für Value, neben dem DSM-Datenbankwert, auch ein Hashtable angegeben werden. Darüber hinaus werden auch Zeichenfolgen unterstützt, die in einen Hashtable "übersetzt" werden können. Generell gilt:


Set-EmdbSchedule -Item <Objekt> -Value ($MySchedule.ToHashtable())

Set-EmdbSchedule -Item <Objekt> -Value ($MySchedule.ToString())


Allgemeines Hashtable-Format:


@{ <Angabe zu Wochentag oder Monat> = @{ <Angabe zu Stunde bzw. Tag> = <Aktivierung>;  …} … }

@{ week = @{ <Angabe zu Wochentag> = @{ <Angabe zu Stunde> = <Aktivierung>; …} … }; year = @{ <Angabe zu Monat> = @{ <Angabe zu Tag> = <Aktivierung>; … } … } }


Zusätzliche optionale Hashtable-Einträge: @{ language = "<Sprache>"; activationChars = "YNyn"; … }


Bezeichnungen für Wochentage und Monate können auch in einer anderen Sprache angegeben werden, Aktivierungen können mit alternativen Zeichen angegeben werden.


Hashtables können auch in "TextForm" angegeben werden:


"<Angabe zu Wochentag oder Monat>:<Angabe zu Stunde bzw. Tag>=<Aktivierung>; …"


Format

Option

In Hashtable

Textform

<Angabe zu Wochentag>

Einzelner Wochentag in Langform (Monday) oder Kurzform (Mon, oder Mo) 

@{ Monday = … }, @{ Mon = … }, @{ "Mo" = … }

(Anführungszeichen sind optional)

"Monday: …", "Mon: …", "Mo: …"


Liste von Wochentagen

@{ ("Mon","Tue") = … }, @{ "Mon,Tue" = … }

(Anführungszeichen sind erforderlich)

"Mon, Tue: …"


Bereich von Wochentagen

@{ "Mon - Wed" = … }

"Mon - Wed: …"

<Angabe zu Monat>

Einzelner Monat in Langform oder Kurzform

@{ January = … }, @{ Jan = … }

"January: …", "Jan: …"


Liste von Monaten

@{ ("Jan","Feb") = … }, @{ "Jan,Feb" = … }

"Jan, Feb: …"


Bereich von Monaten

@{ "Jan - Mar" = … }

"Jan - Mar: …"

<Angabe zu Wochentag oder Monat>

Angabe eines Datum/Zeit-Wertes. Wenn ein Wert nicht unterhalb von „week“ oder „year“ angegeben wird, gilt er für beides.

@{ ([DateTime]::Now) = … }

"2023-04-19 19:00: …"


Liste von Datum/Zeit-Werten

@{ ([DateTime]::Now, [DateTime]::Now.AddDays(2)) = … }, @{ "2023-03-05 18:00, 2023-03-06 19:00" = … }

"2023-04-19 18:00, 2023-04-22 19:00: …"


Bereich von Datum/Zeit-Werten

@{ "2023-03-05 18:00 - 2023-03-06 19:00" = … }

"2023-03-05 18:00 - 2023-03-06 19:00: …"

<Angabe zu Tag>, <Angabe zu Stunde>

Einzelner Wert

@{ 5 = … }

"… : 5 = …"


Werteliste

@{ (5, 7, 9) = … }, @{ "5,7,9" = … }

"… : 5,7,9 = …"


Wertebereich

@{ (5..9) = … }, @{ "5-9" = … }

"… : 5-9 = …"

<Aktivierung>

Aktiv

@{ … = "Active" }, @{ … = "Y" } * 

"… : … = Active; …", "… : … = Y";


Inaktiv

@{ … = "Inactive" }, @{ … = "N" }

"… : … = Inactive; …", "… : … = N";


Aktiv, Benutzer entscheidet

@{ … = "Active, UserDecides" }, @{ … = "y" }

"… : … = Active, UserDecides; …", "… : … = y; …"


Inaktiv, Benutzer entscheidet

@{ … = "Inactive, UserDecides" }, @{ … = "n" }

"… : … = Inactive, UserDecides; …", "… : … = n; …"



Beispiele:


Hinweis: Voraussetzung für die Beispiele ist ein verbundenes PowerShell-Laufwerk.


Im ersten Beispiel wird beim Computer "WIN10-01" das Wartungsfenster Montags und Dienstags ganztägig auf Aktiv gesetzt:


$MyComputer = Get-EmdbComputer "WIN10-01" -Recurse

$Value = "Mon,Tue:0-23 = Active"

Set-EmdbSchedule -Item $MyComputer -Value $Value


Das Wartungsfenster kann auch als Hashtable angeben werden, wobei zu beachten ist, dass die Angaben zu Tag/Stunde mit "=" getrennt vom Aktivierungstyp im Wert des Hashtables stehen:


$MyComputer = Get-EmdbComputer "WIN10-01" -Recurse

$Value = @{ "Jan - Mar" = "1-31=Active"}

Set-EmdbSchedule -Item $MyComputer -Value $Value