Wie gestalte ich eine Prüfung unter Verwendung eines AD so, dass Zusammenarbeit der Prüflinge möglichst verhindert wird?
Da sich in diesem Forum doch einige Lehrer tummeln, hier ein Ansatz, wie ich es versuche zu verhindern, dass SchülerInnen während schriftlicher Prüfungen am PC schummeln...
Hallo!
Das Problem:
Es sollen vermehrt Prüfungen am PC abgewickelt werden. Schummeln könnte eingeschränkt werden, wenn folgende Rahmenbedingungen erfüllt wären:
a) kein Datenaustausch übers Internet
b) nicht auf die eigenen Daten zugreifen
c) keine Daten per USB-Stick mitbringen
d) Daten nicht schon vor der Prüfung irgendwo am PC deponieren
Ein Lösungsansatz:
für jeden Prüfung eigene Accounts mit hochkomplexen Passwörtern per Script anlegen
Diese Accounts in eine Gruppe legen, der der Internetzugang verwehrt wird
alle Laufwerksbuchstaben (mit Ausnahme des Netzwerkshares für die Lösung) verstecken
Voraussetzungen :
ein funktionierendes Active Directory
ein Proxyserver, der mit AD kommuniziert (zB: ISA)
meine Lösung:
1.) Script, um n User in Active Directory mit hochkomplexem 10-stelligem Passwort zu erstellen (und dieses in eine csv speichern)
(Das folgende Script ist eine zusammengebastelte Lösung aus Webfunden und eigenen Ideen. Da ich es schon lange im Einsatz habe, kann ich nicht mehr mit Sicherheit sagen, woher ich die Schnipsel habe, was ich selbst gebastelt habe... Falls jemand sich als Urheber einzelner Teile erkennt. Bitte PM oder hier vermerken. Ich persönlich lege bei meinen Schnipseln keinen Wert auf das Urheberrecht...)
Ich verwende folgende Datei, die ich in ein Verzeichnis auf einem Domänencontroller lege:
user_anlegen.vbs (Auf einem Domänencontroller an beliebiger Stelle erstellen, durch Doppelklick starten)
Verwendung und Erklärung:
Durch doppelklicken der Datei useranlegen.vbs werden Euch 3 Fragen gestellt:
Wieviele User sollen angelegt werden?
Wie sollen die User heissen?
Wie soll die OU heissen, in der die User angelegt werden?
Ein Beispiel:
5
Deutschschularbeit_
Deutschklausur
ergibt:
es werden 5 User mit einem 10-stelligen hochkomplexen Passwort angelegt. Alle User befinden sich in der OU "Deutschklausur" und heissen
Deutschschularbeit_01
Deutschschularbeit_02
...
Deutschschularbeit_05
abschliessend wird eine Deutschklausur.csv erstellt, die alle Usernamen und Passwörter enthält.
Wie benutzt ihr das Skript?
Folgende Variablen können geändert werden
Die Abarbeitung des Scripts kann sich über einige wenige Minuten hinziehen... Durch die eingebauten Pausen ist das so erwünscht und vorgesehen (weil einige meiner DC noch PIII verbaut haben...)
Den Abschluss des Scripts erkennt ihr durch eine abschliessende Meldung.
Ihr findet nun im Ordner des Skripts eine .csv-Datei mit den Usernamen und Passwörtern
2. lokale Datenträger sollen nicht aufscheinen
Ihr braucht dazu eine Gruppenrichtlinie, die Ihr in der Organisationseinheit Matura eintragt.
Da die User beim Login die Laufwerke U: und V: gemappt bekommen, müssen wir ihnen alle Laufwerke ausser diesen beiden ausblenden. Dies geschieht auf folgende Weise:
Navigiert in der gpmc zu folgendem Pfad:
Benutzerkonfigration - Administrative Vorlagen
Rechte Maustaste darauf --> Vorlagen hinzufügen und entfernen
... hinzufügen
es öffnet sich der Ordner C:\Windows\Inf
hier gibt es bereits die Vorlage system.adm
kopiert diese an einen sicheren Ort (falls ihr etwas kaputtisiert...)
öffnet die system.adm mit notepad und verändert sie wie folgt:
im Abschnitt
POLICY !!NoDrives
tragt nach "NAME !!ABCDOnly VALUE NUMERIC 15" folgende Zeile ein:
wiederholt diesen Vorgang im Abschnitt "POLICY !!NoViewOnDrive"
speichert die system.adm
gmpc schliessen und wieder öffnen
--> Benutzerkonfigration - Administrative Vorlagen - Explorer
öffnet den Eintrag "Diese angegebenen Datenträger im Fenster "Arbeitsplatz" ausblenden.
Ihr findet hier nun den Eintrag
"Alle Laufwerke ausser U: und V:"
diesen wählt ihr aus.
[auf die Anregung von n.o.b.o.d.y s hin:]
Verwendung der cmd.exe verweigern
Navigiert in der soeben erstellten Richtlinie zu folgendem Pfad:
Benutzerkonfiguration / Windowseinstellungen / Sicherheitseinstellungen / Softwarebeschränkungsrichtlinien / Richtlinien für Softwareeinschränkungen
Rechte Maustaste --> neue Hashregel
navigiert zu eurer cmd.exe --> das System errechnet den Hash-Wert dieser Datei -->
im Bedarfsfall mit anderer Software wiederholen
[letzte Anmerkung:
bei mir pfeift die Anmeldung manchmal auf das loginscript der User... daher habe ich noch eine zusätzliche Gruppenrichtlinie erstellt, die das laufwerk V: mit der Angabe mappt...]
3.) Internetzugang am ISA-Server sperren
1.) Ich verwende hier die Gruppe, die im Skript in der Variable "groupstring" benannt wurde...
2.) an oberster Stelle (dh, die Firewallregel, die als letzte angelegt wird) erstelle ich eine Regel, die der Gruppe Matura
den gesamten Verkehr von Netzwerk Intern nach Netzwerk Extern verweigert
falls Zugang zu einzelnen Seiten (zb Online-Dictionaries, etc) erwünscht:
3.) an oberster Stelle (dh, noch vor der soeben erstellten Regel) erstelle ich eine Regel, die der Gruppe Matura http und https erlaubt von Netzwerk Intern nach URL-Satz Matura (den muss ich natürlcih erst erstellen und anschliessend zb http://dict.tu-chemnitz.de etc. einfügen)
[edit: hier wird auch noch ein Skript eingestellt, das dieses für Euch erledigt...]]
Diese Vorgangsweise ist sicher nicht der letzten Weisheit Schluss, aber für meine Bedürfnisse reichts.
Ich hoffe, ich habe die Benutzung einigermassen nachvollziehbar verfasst! Würde mich freuen, wenn ich euch zumindest einige Ideen liefern konnte...
Freue mich über Anregungen oder Rückmeldungen
lg
Edi
Hallo!
Das Problem:
Es sollen vermehrt Prüfungen am PC abgewickelt werden. Schummeln könnte eingeschränkt werden, wenn folgende Rahmenbedingungen erfüllt wären:
a) kein Datenaustausch übers Internet
b) nicht auf die eigenen Daten zugreifen
c) keine Daten per USB-Stick mitbringen
d) Daten nicht schon vor der Prüfung irgendwo am PC deponieren
Ein Lösungsansatz:
für jeden Prüfung eigene Accounts mit hochkomplexen Passwörtern per Script anlegen
Diese Accounts in eine Gruppe legen, der der Internetzugang verwehrt wird
alle Laufwerksbuchstaben (mit Ausnahme des Netzwerkshares für die Lösung) verstecken
Voraussetzungen :
ein funktionierendes Active Directory
ein Proxyserver, der mit AD kommuniziert (zB: ISA)
meine Lösung:
1.) Script, um n User in Active Directory mit hochkomplexem 10-stelligem Passwort zu erstellen (und dieses in eine csv speichern)
(Das folgende Script ist eine zusammengebastelte Lösung aus Webfunden und eigenen Ideen. Da ich es schon lange im Einsatz habe, kann ich nicht mehr mit Sicherheit sagen, woher ich die Schnipsel habe, was ich selbst gebastelt habe... Falls jemand sich als Urheber einzelner Teile erkennt. Bitte PM oder hier vermerken. Ich persönlich lege bei meinen Schnipseln keinen Wert auf das Urheberrecht...)
Ich verwende folgende Datei, die ich in ein Verzeichnis auf einem Domänencontroller lege:
user_anlegen.vbs (Auf einem Domänencontroller an beliebiger Stelle erstellen, durch Doppelklick starten)
'#################################################################################################################
'### Script, um die Anzahl von N Usern per Skript im AD mit 10-stelligen, komplexem Passwort anlegen ###
'### getestet auf Windows Server 2003 SP2, Server2003 R2 u 2008 R2 (jeweils Deutsch) ###
'### Ver 10/3/2010_23:53 ###
'#################################################################################################################
'_______________________________________________________________________________________________________________
' Der folgende Teil dient lediglich dazu, den Urheber zu finden, wenn das Skript nicht (nicht mehr) funktioniert
' und ihr Kontakt aufnehmen wollt
' Script zusammengebastelt aus Webfunden (Urheber sind mir nicht bekannt) und eigenen Schnipseln von
' User urobe73(Edi Pfisterer) --> www.administrator.de
' Anregungen / Codeteile von Bastla --> www.administrator.de
' bei Fragen: einfach eine PM an mich oder eine Mail an den Admin der Handelsakadmie Neusiedl am See
' Ich übernehme keine Haftung und lege auf jegliche Urheberrechte an Skripts, die ich erstellt habe, keinen Wert!
' Kopiert, verändert und/oder gebt es als Euer Skript aus: mir ist alles recht!!!
'_______________________________________________________________________________________________________________
'Set objComputer = CreateObject("Shell.LocalMachine") ' nicht verändern!
Set objComputer = CreateObject("Wscript.Network")
'### folgende Variablen können (müssen abern nicht) verändert werden: ##
ServerName = objComputer.Computername 'Server, auf dem die Shares erstellt wurden; falls nicht anders
'angegeben, der DC auf dem das Script gestartet wird
LoesungsPfad = "C:\TestAbgabe" 'In diesem Pfad des Servers werden die Freigaben erstellt
AngabePfad = "C:\TestAngaben" 'In diesem Pfad des Servers werden die Freigaben erstellt
LoesungsShare = "TestAbgaben" 'Name der Freigabe, auf der die Lösungen gespeichert werden.
LoesungsDrive = "v:"
AngabeShare = "TestAngabe" 'Name der Freigabe für Angaben!
AngabeDrive = "u:"
PruefungsOU = "TestsMeinerDomaene" 'Organisationseinheit, die im AD per Skript angelegt wird
GroupString = "TestGruppe" 'Sicherheitsgruppe, in der die User automatisch Mitglieder werden
Lehrer = "lehrer" 'Sicherheitsgruppe, in der die Lehrer Mitglieder sind
'### hier beginnt der Teil, der eher nur noch von Auskennern angefasst werden sollte ;-) ##
Anzahl = InputBox("Wie viele User?")
Bezeichnung = InputBox("Wie sollen die Benutzer heissen?")
ZielOU = InputBox("In welcher OU sollen die User angelegt werden?")
Set objFS = CreateObject("scripting.filesystemobject")
Set WshShell = WScript.CreateObject("WScript.Shell")
Set rootDSE = GetObject("LDAP://RootDSE")
DomainName = rootDSE.Get("defaultnamingcontext")
' aus DC=hak-neusiedl,DC=local wird hak-neusiedl.local
DomainString = Replace(DomainName, "DC=", "")
DomainString = Replace(DomainString, ",", ".")
'erstellt eine neue OU für die Prüfungen
If Not OUExists(PruefungsOU, "LDAP://" & DomainName) Then
Set PrfOU = GetObject("LDAP://" & DomainName).Create("organizationalUnit", "ou=" & PruefungsOU)
PrfOU.SetInfo
Else
Set PrfOU = GetObject("LDAP://" & "ou=" & PruefungsOU& "," & DomainName)
End If
' erstellt, falls noch nicht vorhanden, eine neue Gruppe, in der die User Mitglied werden
If Not ObjectExists(GroupString, "group", "WinNT://" & DomainString) Then
Set objGroup = PrfOU.Create("Group", "CN=" & GroupString)
objGroup.Put "sAMAccountName", GroupString
objGroup.SetInfo
End If
' Die Gruppe wird gesucht und als Ziel definiert.
Set GroupObj = GetObject("WinNT://" & DomainString & "/" & GroupString)
' ZielOU nach Prüfung auf Vorhandensein erstellen
Abbruch = False
Do While OUExists(ZielOU, PrfOU.ADSPath) And Not Abbruch
Do
ZielOU = InputBox(_
"Die OU " & ZielOU & " wurde bereits verwendet!" & vbCrLf & _
"Bitte geben Sie eine andere OU oder ""exit"" für Abbruch ein!")
Loop Until ZielOU <> ""
If LCase(ZielOU) = "exit" Then Abbruch = True
Loop
If Abbruch Then WScript.Quit
' Prüfung, ob Benutzer angelegt
Do While ObjectExists(Bezeichnung & "01", "user", "WinNT://" & DomainString) And Not Abbruch
Do
Bezeichnung = InputBox(_
"Die Bezeichnung " & Bezeichnung & " wurde bereits verwendet!" & vbCrLf & _
"Bitte geben Sie eine andere Bezeichnung oder ""exit"" für Abbruch ein!")
Loop Until Bezeichnung <> ""
If LCase(Bezeichnung) = "exit" Then Abbruch = True
Loop
WScript.Echo "Die Verarbeitung kann einige Zeit dauern. Bitte um Geduld..."
If Abbruch Then WScript.Quit
' erstellt in der Prüfungs-OU nun eine neue OU lt Eingabe
Set ThisOU = GetObject(PrfOU.ADSPath).Create("organizationalUnit", "ou=" & ZielOU)
ThisOU.SetInfo
' erstellt den Pfad für die Freigaben
CreatePath LoesungsPfad
CreatePath AngabePfad & "\" & ZielOU
' es werden die Freigaben erzeugt
CreateShare LoesungsShare, LoesungsPfad
CreateShare AngabeShare, AngabePfad
' Grundlegende Rechte für Angabe- und Pruefungsordner setzen
WshShell.Run "cmd /c echo j|cacls " & LoesungsPfad & " /G Administratoren:F " & Lehrer & ":C " & GroupString & ":R", 0, 1
WshShell.Run "cmd /c echo j|cacls " & LoesungsPfad & " /E /G " & GroupString & ":W", 0, 1
WshShell.Run "cmd /c echo j|cacls " & AngabePfad & " /G Administratoren:F " & Lehrer & ":C " & GroupString & ":R", 0, 1
WshShell.Run "cmd /c echo j|cacls " & AngabePfad & "\" & ZielOU & " /G Administratoren:F " & Lehrer & ":C ", 0, 1
' loginscript schreiben
LoginScriptName = ZielOU & ".bat"
LoginScriptPfad = "sysvol\" & DomainString & "\Scripts\Abschluss\Login"
LoginScript = "\\" & DomainString & "\" & LoginScriptPfad & "\" & LoginScriptName
LoginScriptPfadLokal = "C:\WINDOWS\SYSVOL" & "\" & LoginScriptPfad
LoginScriptDatei = LoginScriptPfadLokal & "\" & LoginScriptName
CreatePath LoginScriptPfadLokal
Set objTextStream = objFS.CreateTextfile(LoginScriptDatei)
objTextStream.write "net use " & AngabeDrive & " \\" & ServerName & "\" & AngabeShare & "\" & ZielOU
objTextStream.Close
Informationen = "Benutzername;Passwort" & vbCrLf
Randomize
For g = 1 To Anzahl
' die Verzeichnisse für die Lösungen werden erstellt;
' alle User haben eine zweistellige Bezeichnung, dh 01 bis 09, 10 usw
Zahl = Right("0" & g, 2)
MUsername = Bezeichnung & Zahl
CreatePath "\\" & ServerName & "\" & LoesungsShare & "\" & ZielOU & "\" & MUsername
' die User werden nun im AD angelegt
'Passwort = "Passwort" & i & "-" & Int(10000 * rnd + 1)
Passwort = Kennwort(10)
Set usr = ThisOU.Create("user", "CN=" & MUsername)
usr.Put "samAccountName", MUsername
usr.Put "userPrincipalName", MUsername & "@" & DomainString
usr.Put "homeDirectory", "\\" & ServerName & "\" & LoesungsShare & "\" & ZielOU & "\" & MUsername
usr.Put "homeDrive", LoesungsDrive
usr.Put "scriptPath", LoginScript
usr.SetInfo
usr.SetPassword Passwort
usr.AccountDisabled = False
usr.SetInfo
WScript.Sleep (1000)
Informationen = Informationen & vbCrLf & MUsername & ";" & Passwort
i = i + 1
GroupObj.Add ("WinNT://"& DomainString & "/" & MUsername)
WScript.Sleep (1000)
' die Berechtigungen werden in den Verzeichnissen der User gesetzt
PermL1 = "Administratoren:F " & Lehrer & ":C " & MUsername & ":R "
PermL2 = MUsername & ":W "
PermA = "Administratoren:F " & Lehrer & ":C " & MUsername & ":R "
WshShell.Run "cmd /c echo j|cacls \\" & ServerName & "\" & LoesungsShare & "\" & ZielOU & "\" & MUsername & " /G " & PermL1 , 0, 1
WshShell.Run "cmd /c echo j|cacls \\" & ServerName & "\" & LoesungsShare & "\" & ZielOU & "\" & MUsername & " /E /G " & PermL2 , 0, 1
WshShell.Run "cmd /c echo j|cacls \\" & ServerName & "\" & AngabeShare & "\" & ZielOU & " /E /G " & PermA , 0, 1
WScript.Sleep (1000)
Next
' die csv mit den Usern und Passwörtern wird erstellt
strDateiname = ZielOU & ".csv"
Set objTextStream = objFS.CreateTextFile(strDateiname, True)
objTextStream.write Informationen
objTextStream.Close
If i > 0 Then
Erfolg = "Fertig: " & i & " Benutzer angelegt"
Else
Erfolg = "Keine User angelegt."
End If
WScript.Echo Erfolg
Function Zeichen(Anfang, Ende)
Zufall = Int((Ende - Anfang + 1) * Rnd + Anfang)
Zeichen = Chr(Zufall)
End Function
Function Verschiebe(VWort)
WLaenge = Len(VWort)
NeuWort = ""
ReDim WFeld(WLaenge)
For t = 1 To WLaenge
WFeld(t) = Mid(VWort, t, 1)
Next
Zahl = 0
Do Until Len(NeuWort) = WLaenge
j = Int((WLaenge) * Rnd + 1)
If WFeld(j) <> "" Then
NeuWort = NeuWort & WFeld(j)
WFeld(j) = ""
End If
Zahl = Zahl + 1
If Zahl > 1000 Then Exit Do ' Zur Sicherheit
Loop
Verschiebe = NeuWort
End Function
Function Kennwort(KennwortLaenge)
If KennwortLaenge > 128 Then KennwortLaenge = 128
Wort = ""
Wort = Zeichen(48, 57) ' Ziffern
Wort = Wort & Zeichen(65, 90) ' Großbuchstaben
Wort = Wort & Zeichen(97, 122) ' Kleinbuchstaben
Wort = Wort & Zeichen(33, 47) ' Satzzeichen
If KennwortLaenge > 4 Then
For t = 5 To KennwortLaenge
Wort = Wort & Zeichen(33, 122) 'sonstige Zeichen
Next
End If
Wort = Verschiebe(Wort) ' Zeichenfolge zufällig ändern
Kennwort = Wort
Kennwort = Replace(Kennwort, " ", "_")
Kennwort = Replace(Kennwort, ";", "_")
Kennwort = Replace(Kennwort, """", "_")
End Function
Sub CreatePath(FullPath) 'Rekursive Erstellung eines Pfades
If Not objFS.FolderExists(FullPath) Then
Folder = objfs.GetFileName(FullPath)
ParentPath = objfs.GetParentFolderName(FullPath)
If Right(ParentPath, 1) <> "\" Then ParentPath = ParentPath & "\"
CreatePath(ParentPath)
objFS.CreateFolder(ParentPath & Folder)
End If
End Sub
Sub CreateShare(ShareName, SharePath)
Set Freigaben = GetObject("WinNT://" & ServerName & "/LanmanServer,FileService")
Angelegt = False
For Each Freigabe In Freigaben
If LCase(Freigabe.Name) = LCase(ShareName) Then
Angelegt = True
Exit For
End If
Next
If Not Angelegt Then
Set fs = Freigaben.Create("FileShare", ShareName)
fs.Path = SharePath
fs.MaxUserCount = -1
fs.SetInfo
End If
Set Freigaben = Nothing
Set fs = Nothing
End Sub
Function OUExists(OUName, ParentOU)
Set Container = GetObject(ParentOU)
Container.Filter = Array("organizationalUnit")
OUExists = False
For Each OU In Container
If LCase(OU.ou) = LCase(OUName) Then
OUExists = True
Exit For
End If
Next
End Function
Function ObjectExists(ObjectName, ObjectType, DomainRoot)
Set Dom = GetObject(DomainRoot)
Dom.Filter = Array(ObjectType)
ObjectExists = False
For Each Obj In Dom
If LCase(Obj.Name) = LCase(ObjectName) Then
ObjectExists = True
Exit For
End If
Next
End Function
Verwendung und Erklärung:
Durch doppelklicken der Datei useranlegen.vbs werden Euch 3 Fragen gestellt:
Wieviele User sollen angelegt werden?
Wie sollen die User heissen?
Wie soll die OU heissen, in der die User angelegt werden?
Ein Beispiel:
5
Deutschschularbeit_
Deutschklausur
ergibt:
es werden 5 User mit einem 10-stelligen hochkomplexen Passwort angelegt. Alle User befinden sich in der OU "Deutschklausur" und heissen
Deutschschularbeit_01
Deutschschularbeit_02
...
Deutschschularbeit_05
abschliessend wird eine Deutschklausur.csv erstellt, die alle Usernamen und Passwörter enthält.
Wie benutzt ihr das Skript?
Folgende Variablen können geändert werden
groupstring = "pruefungsgruppe" --> Gruppe, der die User beitreten
servername = "halvar" --> Server, auf dem die Freigaben sind
loesungsshare = "\home\abschluss" --> Freigabe, auf der die Lösungsabgaben sind (Achte auf den Backslash am Beginn!!!)
angabeshare = "\abschluss\angabe" --> Freigabe, auf der die Angaben sind (Achte auf den Backslash am Beginn!!!)
PruefungsOU = "Pruefungen" --> Organisationseinheit, in der die User in einer UnterOU angelegt werden...
servername = "halvar" --> Server, auf dem die Freigaben sind
loesungsshare = "\home\abschluss" --> Freigabe, auf der die Lösungsabgaben sind (Achte auf den Backslash am Beginn!!!)
angabeshare = "\abschluss\angabe" --> Freigabe, auf der die Angaben sind (Achte auf den Backslash am Beginn!!!)
PruefungsOU = "Pruefungen" --> Organisationseinheit, in der die User in einer UnterOU angelegt werden...
Die Abarbeitung des Scripts kann sich über einige wenige Minuten hinziehen... Durch die eingebauten Pausen ist das so erwünscht und vorgesehen (weil einige meiner DC noch PIII verbaut haben...)
Den Abschluss des Scripts erkennt ihr durch eine abschliessende Meldung.
Ihr findet nun im Ordner des Skripts eine .csv-Datei mit den Usernamen und Passwörtern
2. lokale Datenträger sollen nicht aufscheinen
Ihr braucht dazu eine Gruppenrichtlinie, die Ihr in der Organisationseinheit Matura eintragt.
Da die User beim Login die Laufwerke U: und V: gemappt bekommen, müssen wir ihnen alle Laufwerke ausser diesen beiden ausblenden. Dies geschieht auf folgende Weise:
Navigiert in der gpmc zu folgendem Pfad:
Benutzerkonfigration - Administrative Vorlagen
Rechte Maustaste darauf --> Vorlagen hinzufügen und entfernen
... hinzufügen
es öffnet sich der Ordner C:\Windows\Inf
hier gibt es bereits die Vorlage system.adm
kopiert diese an einen sicheren Ort (falls ihr etwas kaputtisiert...)
öffnet die system.adm mit notepad und verändert sie wie folgt:
im Abschnitt
POLICY !!NoDrives
tragt nach "NAME !!ABCDOnly VALUE NUMERIC 15" folgende Zeile ein:
NAME "Alle Laufwerke ausser U: und V:" VALUE NUMERIC 63963135
wiederholt diesen Vorgang im Abschnitt "POLICY !!NoViewOnDrive"
speichert die system.adm
gmpc schliessen und wieder öffnen
--> Benutzerkonfigration - Administrative Vorlagen - Explorer
öffnet den Eintrag "Diese angegebenen Datenträger im Fenster "Arbeitsplatz" ausblenden.
Ihr findet hier nun den Eintrag
"Alle Laufwerke ausser U: und V:"
diesen wählt ihr aus.
[auf die Anregung von n.o.b.o.d.y s hin:]
Verwendung der cmd.exe verweigern
Navigiert in der soeben erstellten Richtlinie zu folgendem Pfad:
Benutzerkonfiguration / Windowseinstellungen / Sicherheitseinstellungen / Softwarebeschränkungsrichtlinien / Richtlinien für Softwareeinschränkungen
Rechte Maustaste --> neue Hashregel
navigiert zu eurer cmd.exe --> das System errechnet den Hash-Wert dieser Datei -->
im Bedarfsfall mit anderer Software wiederholen
[letzte Anmerkung:
bei mir pfeift die Anmeldung manchmal auf das loginscript der User... daher habe ich noch eine zusätzliche Gruppenrichtlinie erstellt, die das laufwerk V: mit der Angabe mappt...]
3.) Internetzugang am ISA-Server sperren
1.) Ich verwende hier die Gruppe, die im Skript in der Variable "groupstring" benannt wurde...
2.) an oberster Stelle (dh, die Firewallregel, die als letzte angelegt wird) erstelle ich eine Regel, die der Gruppe Matura
den gesamten Verkehr von Netzwerk Intern nach Netzwerk Extern verweigert
falls Zugang zu einzelnen Seiten (zb Online-Dictionaries, etc) erwünscht:
3.) an oberster Stelle (dh, noch vor der soeben erstellten Regel) erstelle ich eine Regel, die der Gruppe Matura http und https erlaubt von Netzwerk Intern nach URL-Satz Matura (den muss ich natürlcih erst erstellen und anschliessend zb http://dict.tu-chemnitz.de etc. einfügen)
[edit: hier wird auch noch ein Skript eingestellt, das dieses für Euch erledigt...]]
Diese Vorgangsweise ist sicher nicht der letzten Weisheit Schluss, aber für meine Bedürfnisse reichts.
Ich hoffe, ich habe die Benutzung einigermassen nachvollziehbar verfasst! Würde mich freuen, wenn ich euch zumindest einige Ideen liefern konnte...
Freue mich über Anregungen oder Rückmeldungen
lg
Edi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 137501
Url: https://administrator.de/tutorial/wie-gestalte-ich-eine-pruefung-unter-verwendung-eines-ad-so-dass-zusammenarbeit-der-prueflinge-moeglichst-137501.html
Ausgedruckt am: 22.12.2024 um 16:12 Uhr
10 Kommentare
Neuester Kommentar
Hallo,
nur weil die lokalen LW nicht im Explorer angezeigt werden, heißt das aber noch lange nicht, dass man nicht darauf zugreifen kann. In der CMD der dem Explorer kurz die LW gecheckt und dann ist der weg zum USB-Stick nicht mehr weit. Da würde ich auf jeden Fall USB über das AD sperren, oder besser gleich im BIOS deaktivieren.
nur weil die lokalen LW nicht im Explorer angezeigt werden, heißt das aber noch lange nicht, dass man nicht darauf zugreifen kann. In der CMD der dem Explorer kurz die LW gecheckt und dann ist der weg zum USB-Stick nicht mehr weit. Da würde ich auf jeden Fall USB über das AD sperren, oder besser gleich im BIOS deaktivieren.
Hallo urobe73!
Habe vorhin das Script kurz angetestet (noch in der Erstversion) und ein wenig daran herumgebastelt ...
Da Du gerade dabei bist, Anpassungen vorzunehmen, warte ich mit meinen Vorschlägen (die zB auch in Richtung "zentrale Verwaltung der Anpassungen" gegangen wären) noch etwas ab ...
Einen Tipp hätte ich allerdings gleich: Die Functions aus den Zeilen 1 bis (derzeit) 45 würde ich an das Ende des Scripts stellen - damit beginnt das Script tatsächlich mit dem "Hauptprogramm",und die anzupassenden Werte sind auch "prominenter" platziert. [Edit] hast Du inzwischen ohnehin schon ... [/Edit]
Doch noch einer mehr : Die Batchdatei zum Erstellen der Verzeichnisse könntest Du durch das folgende Unterprogramm (kann ganz am Ende des Scripts angefügt werden) ersetzen:
Dieses Sub prüft das Vorhandensein des übergebenen Pfades - falls er nicht (vollständig) vorhanden ist, wird er erstellt. Aufzurufen ist es zB mit
Das "FileSystemObject" erstelle ich in diesem Sub nur zur Sicherheit - sinnvoll wäre es, dies bereits am Anfang des Scripts (ist dadurch dann im gesamten Script verfügbar) vorzunehmen.
Grüße
bastla
Habe vorhin das Script kurz angetestet (noch in der Erstversion) und ein wenig daran herumgebastelt ...
Da Du gerade dabei bist, Anpassungen vorzunehmen, warte ich mit meinen Vorschlägen (die zB auch in Richtung "zentrale Verwaltung der Anpassungen" gegangen wären) noch etwas ab ...
Einen Tipp hätte ich allerdings gleich: Die Functions aus den Zeilen 1 bis (derzeit) 45 würde ich an das Ende des Scripts stellen - damit beginnt das Script tatsächlich mit dem "Hauptprogramm",
Doch noch einer mehr : Die Batchdatei zum Erstellen der Verzeichnisse könntest Du durch das folgende Unterprogramm (kann ganz am Ende des Scripts angefügt werden) ersetzen:
Sub CreatePath(FullPath) 'Rekursive Erstellung eines Pfades
Set objfs = CreateObject("Scripting.FileSystemObject")
If Not objfs.FolderExists(FullPath) Then
Folder = objfs.GetFileName(FullPath)
ParentPath = objfs.GetParentFolderName(FullPath)
If Right(ParentPath, 1) <> "\" Then ParentPath = ParentPath & "\"
CreatePath(ParentPath)
objfs.CreateFolder(ParentPath & Folder)
Set objfs = Nothing
End If
End Sub
CreatePath "\\" & servername & loesungsshare & "\" & ZielOU & "\" & MUsername
Grüße
bastla
Hallo urobe73!
Eigener Beitrag muss wohl nicht sein - das jeweilige "vorläufige Endergebnis" kannst Du ja immer oben nachziehen ...
Mit den Kopfzeilen habe ich kein wie auch immer geartetes Problem .
Vermutlich komme ich ohnehin erst morgen am Abend oder übermorgen dazu, an einigen Details herumzudoktern - bis dahin hast Du hoffentlich das ISA-Script schon hinbekommen (ISA ist leider nicht so meine Baustelle) ...
Grüße
bastla
Eigener Beitrag muss wohl nicht sein - das jeweilige "vorläufige Endergebnis" kannst Du ja immer oben nachziehen ...
Mit den Kopfzeilen habe ich kein wie auch immer geartetes Problem .
Vermutlich komme ich ohnehin erst morgen am Abend oder übermorgen dazu, an einigen Details herumzudoktern - bis dahin hast Du hoffentlich das ISA-Script schon hinbekommen (ISA ist leider nicht so meine Baustelle) ...
Grüße
bastla
Hallo!
Also zu meiner schulzeit.... ;)
Gab es feste Benutzernamen in der AD die nur an dem Rechner/Raum gebunden waren.
zum beispiel "pruef1" usw. .. mit nicht sehr komplexen Passwort.
In den Pausen wurden die Schülerzugaenge der jeweiligen Klasse gesperrt und nach Telefonanruf der Lehrkraft der Raum mit den festen Benutzernamen entsperrt.
Es gab zu den pruef-Zugaengen einen für alle Prüflingen Zugänglichen Netzlaufwerk für Aufgabenstellung und ähnliches...
Ein Home-Laufwerk für die Lösungen...
Über einen Squid-Proxy wurde der Weg ins INTERNET gesperrt, jedoch keine INtranet-Seiten da man teilweise Ebooks nutzte.
Bei Abmeldung musste ein Protokoll gegenzeichnet werden.
Mit Inhalten des Home-Laufwerkes u.a. für die Lösungen.
NACHTEILE:
- Es gab eine kleine Webhosting-Ecke incl. PHP-Interpreter..diese konnte von Intranet sowie Internet angesurft werden.
Dadurch konnte man über eine nicht deaktivierte PHP-Funktion eine Zeitlang über einen PHP-Proxy den Squid-Proxy umgehen.
- Temp-Ordner wurden genutzt um mögl. Lösungen abzulegen.
- USB-Geräte waren in dem Konzept garnich bedacht
- Theoretisch ständiges Drucken an alle Netzwerkdrucker währe möglich gewesen
// /
=> "Toilette gehen" -> Surfen auf einem UMTS-Handy
Gruss,
megacarsIT
Also zu meiner schulzeit.... ;)
Gab es feste Benutzernamen in der AD die nur an dem Rechner/Raum gebunden waren.
zum beispiel "pruef1" usw. .. mit nicht sehr komplexen Passwort.
In den Pausen wurden die Schülerzugaenge der jeweiligen Klasse gesperrt und nach Telefonanruf der Lehrkraft der Raum mit den festen Benutzernamen entsperrt.
Es gab zu den pruef-Zugaengen einen für alle Prüflingen Zugänglichen Netzlaufwerk für Aufgabenstellung und ähnliches...
Ein Home-Laufwerk für die Lösungen...
Über einen Squid-Proxy wurde der Weg ins INTERNET gesperrt, jedoch keine INtranet-Seiten da man teilweise Ebooks nutzte.
Bei Abmeldung musste ein Protokoll gegenzeichnet werden.
Mit Inhalten des Home-Laufwerkes u.a. für die Lösungen.
NACHTEILE:
- Es gab eine kleine Webhosting-Ecke incl. PHP-Interpreter..diese konnte von Intranet sowie Internet angesurft werden.
Dadurch konnte man über eine nicht deaktivierte PHP-Funktion eine Zeitlang über einen PHP-Proxy den Squid-Proxy umgehen.
- Temp-Ordner wurden genutzt um mögl. Lösungen abzulegen.
- USB-Geräte waren in dem Konzept garnich bedacht
- Theoretisch ständiges Drucken an alle Netzwerkdrucker währe möglich gewesen
// /
=> "Toilette gehen" -> Surfen auf einem UMTS-Handy
Gruss,
megacarsIT
Hallo urobe73!
Passt mir ganz gut ...
Zwischendurch aber trotzdem mal wieder ein Häppchen: Das Setzen der Berechtigungen sollte sich auch ohne Umweg über eine Batch-Datei (aber dennoch mit CMD-Mitteln) direkt aus der Schleife heraus erreichen lassen (nur oberflächlich getestet):
Damit sollten die Berechtigungen neu gesetzt (und damit die Vererbung unterbrochen) werden ...
[Edit] Beim "neu Setzen" der Rechte (also ohne "/E") lässt sich die Kombination "R + W" (für MUsername) nicht in einem Befehl verwenden - daher entweder (nur) "Ändern"-Rechte geben oder:
[/Edit]
Grüße
bastla
Passt mir ganz gut ...
Zwischendurch aber trotzdem mal wieder ein Häppchen: Das Setzen der Berechtigungen sollte sich auch ohne Umweg über eine Batch-Datei (aber dennoch mit CMD-Mitteln) direkt aus der Schleife heraus erreichen lassen (nur oberflächlich getestet):
PermL = "Administratoren:F Lehrer:C " & MUsername & ":R " & MUsername & ":W "
PermA = "Administratoren:F Lehrer:C " & MUsername & ":R "
CMD = "cmd /c echo j|cacls \\" & ServerName & LoesungsShare & "\" & MUsername & " /G " & PermL & " && " & _
"echo j|cacls \\" & ServerName & AngabeShare & "\" & ZielOU & " /G " & PermA
WshShell.Run CMD, 0, 1
[Edit] Beim "neu Setzen" der Rechte (also ohne "/E") lässt sich die Kombination "R + W" (für MUsername) nicht in einem Befehl verwenden - daher entweder (nur) "Ändern"-Rechte geben oder:
PermL1 = "Administratoren:F Lehrer:C " & MUsername & ":R"
PermL2 = MUsername & ":W"
PermA = "Administratoren:F Lehrer:C " & MUsername & ":R"
CMD = "cmd /c echo j|cacls \\" & ServerName & LoesungsShare & "\" & MUsername & " /G " & PermL1 & " && " & _
"echo j|cacls \\" & ServerName & LoesungsShare & "\" & MUsername & " /E /G " & PermL2 & " && " & _
"echo j|cacls \\" & ServerName & AngabeShare & "\" & ZielOU & " /G " & PermA
WshShell.Run CMD, 0, 1
Grüße
bastla