Powershell Script gibt mehrere Werte zurück - Wie darüber iterieren/verarbeiten?

Alle Fragen rund Antworten rund um die ACMP Client Commands und Container
Antworten
Shoobdidoo
Beiträge: 1
Registriert: Di Feb 08, 2022 11:01 am

Hallo zusammen,

ich versuche mich gerade zum ersten mal an einem ClientCommand der Daten von den Clients sammeln soll und diese in der ACMP Datenbank speichern soll. Konkret geht es dabei darum, die Mitglieder der lokalen Administratorengruppe auf den Clients auszulesen und diese in benutzerdefinierten Feldern abzulegen.

Ich bin wie folgt vorgegangen:
  • Ich habe eine benutzerdefinierte 1:n Tabelle "LocalAdminGroupMembers" mit einem einzelnen Feld "Username" angelegt
  • Im Clientcommand iteriere ich über die Clients in der Datenbank

Jetzt kommt der Teil bei dem es hakt:

Der CC führt pro Client ein Powershell-Script aus:

Code: Alles auswählen

$mygroupmembers = Get-LocalGroupMember -Group "Administratoren"
foreach ($member in $mygroupmembers) {
	write-host $member
}
Das Ergebnis des Scripts speichere ich in einer ACMP Variablen %L_ADMINGRP_MEMBERS%. Ich kann im Log sehen, dass die Gruppen korrekt ausgelesen werden und, dass sie in der Variablen gespeichert wurden.

Ich versuche jetzt über "Eigenschaften durchlaufen" über die einzelnen Usernamen zu iterieren um diese dann in der Datenbank in den benutzerdefinierten Feldern abzulegen. Dabei muss ich feststellen, dass die einzelnen Iterationsvariablen "%MYMEMBER%" jeweil keinen Inhalt haben.

Die Frage ist also: Wie kann ich bei einem CC das Ergebnis eines Powershell-Commands, der mehrere Ergebnisitems - sprich Ausgabezeilen hat - korrekt verarbeiten und, in diesem Fall z.B., in der Datenbank speichern?

Im voraus schonmal vielen Dank für jede Hilfe!

Liebe Grüße
Heiko Jung
twahl
Beiträge: 366
Registriert: Mo Mär 03, 2014 11:21 am

Hallo,

der Baustein "Eigenschaften durchlaufen" erwartet eine kommagetrennte Liste mit Eigenschaftsnamen ( 0=Benutzer1,1=Benutzer2,2=Benutzer3...).
Man kann auch ein beliebiges Trennzeichen im PowerShell Script bei der Ausgabe ergänzen und das dann mit dem "Split String / Zeichenkette splitten" in so eine Liste umwandeln, man muss nur den count Wert am Ende abfangen. Oder man lässt sich im PowerShell Script eine Textdatei schreiben und kann diese mit "Read from file / Aus Datei lesen" zeilenweise auslesen.
Mit freundlichen Grüßen,

Tobias Wahl
Aagon GmbH
Rene
Beiträge: 4
Registriert: Di Feb 22, 2022 4:08 pm

Hi,

ich habe genau das gleiche letztens wie folgt gelöst.

Ist nicht ganz so schön, da mehrere Befehle abgesetzt werden, aber es funktioniert.
Dateianhänge
GetAdmins__{160B8468-1F89-49CD-8F27-63AF7BC52A16}.sim
(13.8 KiB) 66-mal heruntergeladen
Antworten