Schnellster Weg alle Schüler aus printing-Gruppe entfernen

Hallo zusammen,

ich möchte gern täglich alle Schüler per sophomorix-Script aus der printing-Gruppe entfernen.

sophomorix-managementgroup --noprinting <user1,user2,…>

macht (denke ich) genau das. Kennt jemand ein einfaches sophomorix-Command um alle Schüler in diesem Format zu erhalten und diese gleich so zu übergeben?

Danke und VG,
Frank

Hallo Michael,

danke für den Ansatz. Wir haben jetzt folgende Alternative gewählt:

USERS_JSON=$(sophomorix-query --student --user-basic -j 2>&1 | grep -v „^#“ | sed ‚$d‘ )
echo „$USERS_JSON“ | jq -r ‚.USER? | „(.MANAGEMENTGROUPS.printing) (.sAMAccountName)“‘ | grep „TRUE“ > $USERS_FILE

while read -r line; do
USER_NAME+=„$(echo $line | cut -d’ ’ -f2),“
done < $USERS_FILE
#Letztes Komma entfernen
USER_NAME=„${USER_NAME%?}“
#Aus printing-Gruppe entfernen
sophomorix-managementgroup --noprinting $USER_NAME

VG,
Frank

Hallo Frank.

– ich hatte den 1. Beitrag gelöscht … der Vollständigkeit halber aber direkt nochmal angefügt …

Ich mache das so – allerdings geht es in diesem Script darum, dass ich ein Projekt bekomme, in dem alle Schüler drin sind. Das ist aber schnell an Deinen Fall anpassbar:

#!/bin/bash

#######################################################################
# Version 1.1 -- von M. Hagedorn, 08.02.2021
# Script zum Erzeugen eines Projektes mit allen vorhandenen Schülern.
#######################################################################

# Diese Variablen an die eigene Installation anpassen:
base="ou=default-school,ou=SCHOOLS,dc=linuxmuster,dc=lan"
server="ldaps://server.linuxmuster.lan:636"
binduser="global-binduser@linuxmuster.lan"

#bindpw="super-geheimes-password"
bindpw=$(cat /etc/linuxmuster/.secret/global-binduser)

#######################################################################

# User auflisten:
ldapsearch  -b $base -H $server -x -D $binduser -w $bindpw '(&(!(sophomorixAdminClass=extraschueler))(!(sophomorixAdminClass=attic))(|(sophomorixRole=student)))' |grep -e sAMAccountName | awk '{ ORS=/sAMAccountName:/ ?"":"\n"} {print $2","}' > student-logins.txt

echo Syntax:
echo 
echo sophomorix-project -p p_alle_user --addmembers $(cat student-logins.txt)
echo 
echo
echo --------------------------------------
echo "Script scharf stellen: # entfernen!"
echo --------------------------------------

# sophomorix-project -p p_alle_user --addmembers $(cat student-logins.txt)

#EOF

# Alternativ (wenn man nicht mit ldapsearch arbeiten will):
#sophomorix-print
#und dann die Logins filtern aus :
#print="/var/lib/sophomorix/print-data/add-unknown-unix.csv"

In der vorletzte Zeile das #entfernen, um es scharf zu stellen … hth,
Viele Grüße,
Michael