Powershell Variablenname mit Variable
Moin,
ich habe eine Frage zu Powershell-Variablen.
Ich möchte mehrere Arrays in einem Skript bearbeiten, Quasi Server-Gruppen.
Als Beispiel:
Nun habe ich in einer for-Schleife stehen, dass die Server in einer Gruppe neugestartet werden sollen:
Ich möchte aber, dass ich nun nicht 3 einzelne For-Schleifen habe, sondern alles mit so wenig Code wie möglich verarbeiten kann.
Ich hätte jetzt gedacht, dass ich das einfach so lösen könnte:
... aber das klappt so natürlich nicht.
Hat jemand einen Tipp wie ich das Lösen kann?
Bin leider ein Powershell-Anfänger, daher bitte etwas Nachsicht mit meiner Lösung
Danke!
Timo
ich habe eine Frage zu Powershell-Variablen.
Ich möchte mehrere Arrays in einem Skript bearbeiten, Quasi Server-Gruppen.
Als Beispiel:
$Group_1 = @(
"SRVRDP",
"SRVMAIL"
)
$Group_2 = @(
"SRVDC"
)
$Group_3 = @(
"SRVDC2"
)
Nun habe ich in einer for-Schleife stehen, dass die Server in einer Gruppe neugestartet werden sollen:
for($y=0; $y -le $Group_1; $y++){
Restart-Computer $Group_1[$y]
}
Ich möchte aber, dass ich nun nicht 3 einzelne For-Schleifen habe, sondern alles mit so wenig Code wie möglich verarbeiten kann.
Ich hätte jetzt gedacht, dass ich das einfach so lösen könnte:
$Groups = "3"
$Group_1 = @(
"SRVRDP",
"SRVMAIL"
)
$Group_2 = @(
"SRVDC"
)
$Group_3 = @(
"SRVDC2"
)
for ($i=0; $i -le $Groups; $i++){
for($y=0; $y -le $Group_$i; $y++){
Restart-Computer $Group_$i[$y]
}
}
... aber das klappt so natürlich nicht.
Hat jemand einen Tipp wie ich das Lösen kann?
Bin leider ein Powershell-Anfänger, daher bitte etwas Nachsicht mit meiner Lösung
Danke!
Timo
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1384745463
Url: https://administrator.de/contentid/1384745463
Ausgedruckt am: 22.11.2024 um 10:11 Uhr
6 Kommentare
Neuester Kommentar
Zitat von @floppy007:
du brauchst das mehrdimensionale Array :
$computers = @(@('PC11','PC12'),@('PC21','PC22','PC23'),@('PC31','PC32'))
foreach($group in $computers) {
foreach($pc in $group) {
write-host "$pc wird gestartet"
}
}
du brauchst das mehrdimensionale Array :
$computers = @(@('PC11','PC12'),@('PC21','PC22','PC23'),@('PC31','PC32'))
foreach($group in $computers) {
foreach($pc in $group) {
write-host "$pc wird gestartet"
}
}
Für den TO: Das ist identisch mit meiner Lösung. Nur ein wenig unübersichtlicher.
Zitat von @erikro:
Für den TO: Das ist identisch mit meiner Lösung. Nur ein wenig unübersichtlicher.
Zitat von @floppy007:
du brauchst das mehrdimensionale Array :
$computers = @(@('PC11','PC12'),@('PC21','PC22','PC23'),@('PC31','PC32'))
foreach($group in $computers) {
foreach($pc in $group) {
write-host "$pc wird gestartet"
}
}
du brauchst das mehrdimensionale Array :
$computers = @(@('PC11','PC12'),@('PC21','PC22','PC23'),@('PC31','PC32'))
foreach($group in $computers) {
foreach($pc in $group) {
write-host "$pc wird gestartet"
}
}
Für den TO: Das ist identisch mit meiner Lösung. Nur ein wenig unübersichtlicher.
Nein. Deine Lösung ist kein Multidimensionales Array Du hast ein einfaches Array . Schau mal genauer an vor allem die Anzahl der Klammern.
Zitat von @floppy007:
Nein. Deine Lösung ist kein Multidimensionales Array Du hast ein einfaches Array . Schau mal genauer an vor allem die Anzahl der Klammern.
Nein. Deine Lösung ist kein Multidimensionales Array Du hast ein einfaches Array . Schau mal genauer an vor allem die Anzahl der Klammern.
Doch schon. Ich habe es nur anders aufgebaut. Ein zweidimensionales Array ist ein Array, das andere Arrays enthält. Ich habe zwei Arrays erstellt ($group_1 und $group_2). Diese habe ich in das Array $groups eingefügt. Damit ist $groups ein zweidimensionales Array. Und die Anzahl der Klammern ist bei beiden Lösungen auch die gleiche. Zwei für das äußere und jeweils zwei für die inneren. Du hast nur zwei mehr, weil Du drei innere Arrays hast und ich nur zwei.
Aber es gibt einen wesentlichen Unterschied zwischen meiner und Deiner Methode. Bei Dir sind die inneren Arrays anonym. Meine kann ich auch mit ihrem Namen ansprechen. Aber das ist hier eigentlich egal bzw. Deine Lösung ist sogar ein klein wenig besser, weil sie weniger Speicher verbraucht. Aber zum Verstehen, was man da macht, nämlich Arrays in einem Array speichern, ist meine besser.