Ich erstelle für meine Schule immer wieder Tutorial Videos: Benutzung der Nextcloud, Schreiben von Tickets in WebUntis oder Arbeiten mit Microsoft Teams. Manches in den Videos ist speziell für meine Schule ausgerichtet, manches aber auch allgemein verwendbar. Die Aufzeichnungen mache ich mit dem kostenlosen und empfehlenswerten OBS Studio. Anbei einige der Videos:
Nextcloud:
Anmelden und Teilen
Dateien erhalten und teilen
Office 365:
Teams öffnen
Team erstellen
Aufgaben in Teams bearbeiten (für SuS)
Tipps und Tricks zur Verwendung der paedML Linux. Alles ohne Gewähr! von Johannes Albani
Montag, 30. März 2020
Sonntag, 29. März 2020
Benutzer in Office 365 anmelden
Da während der Kriese Office 365 nun offiziell eingesetzt werden kann, habe ich meine Skripte zum Hochladen von Usern aktualisiert und verbessert.
Ich halte die Anleitung hier sehr knapp. Bei Fragen schicken Sie eine Mail an
Edit: Damit SuS keine eigene Teams erstellen können, ist eine weiteres Sktipt notwendig. Dieses Skript befindet sich am Ende dieses Artikels!
Edit2: Das SuS anmeldeskript wurde erweitert, die SuS werden nun zusätzlich zur Klassengruppe noch in die "Schueler" Gruppe eingeteilt.
Generell wird ein Office 365 Admin Konto und die kostenlosen Lizenzen für Lehrerde und SuS benötigt.
Hier das Skript für die SuS. Das Skript muss auf einem PC im Schulnetz ausgeführt werden, damit es LDAP Anfragen durchführen kann und legt auf h: eine Datei office365Benutzerliste.txt ab, in der die angelegten Accounts nochmals notiert werden.
Dazu muss man eine CSV mit den Überschriften vorname, name, email erstellen und mit den Daten der Lehrenden befüllen. Das Skript erwartet diese Datei unter h:\lehrende.csv, dies kann aber im Skript in Zeile 4 angepasst werden.
Um das Erstellen von Teams auf das Lehrer-Kollegium einzuschränken wird folgendes Skript verwendet. Achten Sie darauf, dass Lehrende, welche im Nachhinein noch in der Cloud angemeldet werden auch zur Sicherheitsgruppe "Lehrer" hinzugefügt werden müssen, um eigene Teams erstellen zu dürfen. Falls ihre Lehrerg Gruppe nicht "Lehrer" heißt, passen Sie die Zeile 2 des Skriptes bitte an. Das Skript kommt bis auf die ersten zwei Zeilen direkt von Microsoft, der Artikel dazu hier.
Ich halte die Anleitung hier sehr knapp. Bei Fragen schicken Sie eine Mail an
Edit: Damit SuS keine eigene Teams erstellen können, ist eine weiteres Sktipt notwendig. Dieses Skript befindet sich am Ende dieses Artikels!
Edit2: Das SuS anmeldeskript wurde erweitert, die SuS werden nun zusätzlich zur Klassengruppe noch in die "Schueler" Gruppe eingeteilt.
Generell wird ein Office 365 Admin Konto und die kostenlosen Lizenzen für Lehrerde und SuS benötigt.
Hier das Skript für die SuS. Das Skript muss auf einem PC im Schulnetz ausgeführt werden, damit es LDAP Anfragen durchführen kann und legt auf h: eine Datei office365Benutzerliste.txt ab, in der die angelegten Accounts nochmals notiert werden.
Install-Module MSOnlineFür das Anlegen von Lehrenden habe ich mich für einen CSV Import entschieden, da an meiner Schule sich die Lehrenden mit ihrer eMail-Adresse bei Microsoft anmelden, nicht mit ihrem Kürzel wie in der paedML.
Connect-MsolService
$SuSLizenz=$false
#Eine Liste aller bei Office angemeldeten Nutzer und ihren Passwörtern finden Sie auf h:\office365Benutzerliste.txt
New-Item -Path h:\ -Name "office365Benutzerliste.txt" -ErrorAction Ignore
######################Schuldomäne eintragen
$schulsuffix="@bsachern.onmicrosoft.com" #ein Beispiel
$schulsuffix=".365@meineschule.onmicrosoft.com" #ein komplexeres Beispiel
Write-Host "Sie müssen nun eingeben, wie die SuS sich bei Office365 anmelden sollen."-ForegroundColor Magenta
Write-Host "Tragen Sie im folgenden "-ForegroundColor Magenta -NoNewline
Write-Host "@meine-schule.de" -ForegroundColor Cyan -NoNewline
Write-Host " ein, wenn ihre SuS sich mit" -ForegroundColor Magenta
Write-Host "maxi.muster@meine-schule.de" -NoNewline -ForegroundColor Cyan
Write-Host " bei Office 365 anmelden sollen. maxi.muster ist" -ForegroundColor Magenta
Write-Host "dabei der Loginname der paedML." -ForegroundColor Magenta
$schulsuffix=Read-Host "Eingabe"
Write-Host $schulsuffix
$antwort = Read-Host "Ist die Einagabe korrekt?:" $schulsuffix " mit J und Eingabetaste bestätigen!"
if(-not($antwort -match "J")){
Write-Host "Sie haben nicht bestätigt, breche ab. " -ForegroundColor Red
break
}
Write-Host "Das Passwort der SuS wird auf klasse-Off!ce gesetzt, klasse entspricht dem Klassenbezeichner in der paedML" -ForegroundColor Magenta
Write-Host "also z.B. 1b-Off!ce oder auch 1bk2w3-Off!ce. Achten Sie auf das Ausrufezeichen bei Off!ce, Buchstaben der Klasse sind klein!" -ForegroundColor Magenta
Read-Host "Bestätigen mit Eingabetaste"
######################Lizenzen auslesen
$lizenzen=Get-MsolAccountSku
foreach($lizenz in $lizenzen.AccountSkuId){
Write-Host "Lizenz: " $lizenz
if($lizenz -match "STANDARDWOFFPACK_IW_STUDENT"){
Write-Host "Lizenz für SuS gefunden!" -ForegroundColor Green
$SuSLizenz = $lizenz
}
}
######################Lizenzen auslesen Ende
if(-not $SuSLizenz){
Write-Host "Die Lizenz für SuS wurde nicht gefunden, breche ab." -BackgroundColor Red
Write-Host "Wenn Sie die Lizenzen mit dem Befehl Get-MsolAccountSku selbst finden " -BackgroundColor Red
write-host "können Sie diese den Wert SuSLizenz in Zeile 3 von Hand zuweisen." -BackgroundColor Red
Write-Host "meineadressede:STANDARDWOFFPACK_IW_STUDENT sollte so ein Key heißen." -BackgroundColor Red
Write-Host "Löschen Sie beim manuellen Einfügen die Zeilen zwischen #####Lizenzen auslesen bis #####Lizenzen auslesen Ende" -BackgroundColor Red
Break
}
#Eine Gruppe in der alle SuS eingeteilt werden.
$SuSGroup = Get-MsolGroup -all | Where {$_.DisplayName -like "Schueler"}
if($SuSGroup -eq $null){
$SuSGroup=New-MsolGroup -DisplayName "Schueler"
}
else{
"ist schon da"
}
$SuSGroupID = $SuSGroup.ObjectId
$gruppen = [adsi]"LDAP://CN=klassen,CN=schueler,CN=groups,ou=schule,dc=paedml-linux,dc=lokal"
foreach($klasse in $gruppen.Children.distinguishedName){
$bezeichnung=($klasse.Split("=")[1]).Split(",")[0] -replace 'schule-'
write-host "################### Verarbeite Klasse " $bezeichnung "####################" -ForegroundColor Green
$pfad = "LDAP://CN=schule-$($bezeichnung),CN=klassen,CN=schueler,CN=groups,ou=schule,dc=paedml-linux,dc=lokal"
$SuS = [adsi]$pfad
#Klasasengruppe wird angelegt und ihre ID in gruppenID abgelegt.
$gruppenID = (New-MsolGroup -DisplayName $bezeichnung).ObjectId
#Remove-MsolGroup -ObjectId $gruppenID
foreach($s in $SuS.member){
if($s -match "lehrer"){
Write-Host "Lehrpersonen werden nicht in Klassen eingeteilt. Loginname: " ($s.Split("=")[1]).Split(",")[0] -ForegroundColor yellow
}
else{
$sname = ($s.Split("=")[1]).Split(",")[0]
Write-Host $sname -NoNewline -ForegroundColor Cyan
Write-Host " wird in die Klasse " -NoNewline
Write-Host $bezeichnung -NoNewline -ForegroundColor Green
Write-Host " eingetragen"
$schueler = [adsi]"LDAP://$s"
$loginname = [String]($sname+$schulsuffix)
$user=New-MsolUser -UserPrincipalName $loginname -DisplayName ([String]($schueler.displayName)) -FirstName ([String]($schueler.givenName)) -LastName ([String]($schueler.sn)) -Password "$($bezeichnung)-Off!ce" -ForceChangePassword $true -Department $bezeichnung -LicenseAssignment $SuSLizenz -UsageLocation de
Add-MsolGroupMember -GroupObjectId $gruppenID -GroupMemberObjectId $user.ObjectId
Add-MsolGroupMember -GroupObjectId $SuSGroupID -GroupMemberObjectId $user.ObjectId
$ausgabe = [String]($user.DisplayName) +", "+ [String]($user.UserPrincipalName) +", "+ [String]($user.Password)
Add-Content -Value $ausgabe -Path h:\office365Benutzerliste.txt
}
}
}
Write-Host "Die Anmeldung ist beendet, öffnen Sie h:\office365Benutzerliste.txt um die Benutzerdaten zu sehen. " -ForegroundColor Green
Dazu muss man eine CSV mit den Überschriften vorname, name, email erstellen und mit den Daten der Lehrenden befüllen. Das Skript erwartet diese Datei unter h:\lehrende.csv, dies kann aber im Skript in Zeile 4 angepasst werden.
Install-Module MSOnline
Connect-MsolService
$LuLLizenz=$false
$lehrende = Import-Csv "h:\lehrende.csv"
#Eine Liste aller bei Office angemeldeten Nutzer und ihren Passwärtern finden Sie auf h:\office365Benutzerliste.txt
New-Item -Path h:\ -Name "office365BenutzerlisteLehrer.txt" -ErrorAction Ignore
######################Schuldomäne eintragen
Write-Host "Die Benutzer werden aus der Datei h:\Lehrende.csv gelesen." -ForegroundColor Magenta
Write-Host "Das Passwort der Lehrenden wird auf Willkommen@Off!ce gesetzt" -ForegroundColor Magenta
Write-Host "Der Benutzernamen entspricht der eMail Adresse" -ForegroundColor Magenta
Write-Host "Die eMail Adresse muss bei der gleichen Domäne sein, wie ihre Office 365 Domäne." -ForegroundColor Magenta
Read-Host "Bestätigen mit Eingabetaste"
######################Lizenzen auslesen
$lizenzen=Get-MsolAccountSku
foreach($lizenz in $lizenzen.AccountSkuId){
Write-Host "Lizenz: " $lizenz
if(($lizenz -match "MEINE_EIGENE_LIZENZ")-or($lizenz -match "STANDARDWOFFPACK_IW_FACULTY")-or ($lizenz -match "STANDARDWOFFPACK_FACULTY") ){
Write-Host "Lizenz für Lehrende gefunden!" -ForegroundColor Green
$LuLLizenz = $lizenz
}
}
######################Lizenzen auslesen Ende
Write-Host "Diese Lizenz wird für Lehrende verwendet: " $LuLLizenz -ForegroundColor Green
Write-host "Abbrechen mit Strg + c"
Read-Host "Bestätigen mit Eingabetaste"
if(-not $LuLLizenz){
Write-Host "Die Lizenz für Lehrende wurde nicht gefunden, breche ab." -BackgroundColor Red
Write-Host "Wenn Sie die Lizenzen mit dem Befehl Get-MsolAccountSku selbst finden " -BackgroundColor Red
write-host "können Sie diese in Zeile 17 von Hand zuweisen." -BackgroundColor Red
Write-Host "meineadressede:STANDARDWOFFPACK_FACULTY sollte so ein Key heißen." -BackgroundColor Red
Write-Host 'Ändern Sie in Zeile 17 ' -NoNewline -BackgroundColor Red
Write-Host '$lizenz -match "MEINE_EIGENE_LIZENZ"' -ForegroundColor Green -NoNewline -BackgroundColor Red
Write-Host ' zu ' -BackgroundColor Red
Write-Host '$lizenz -match "GEWUENSCHTE_OFFICE_LIZENZ" ' -ForegroundColor Green -BackgroundColor Red
Break
}
$lehrende = Import-Csv "h:\Lehrende.csv"
Write-Host
Write-Host "Gefundene Lehrerinnen und Lehrer: " -BackgroundColor DarkGreen
foreach($lehrer in $lehrende){
Write-Host $lehrer.vorname $lehrer.name "" -NoNewline
Write-Host $lehrer.email -ForegroundColor Yellow
}
Write-Host
Write-Host "Kontrollieren Sie, ob die CSV reichtig gelsen wurde."
Write-Host "Wenn ihr Kollegium richtig angezeigt wird bestätigen Sie mit J und Enter"
$antwort = Read-Host "Soll die Anmeldung durchgeführt werden? J für ja eingeben. "
if(-not ($antwort -eq "J")){
Write-Host "Vorgang abgebrochen" -ForegroundColor Red
break
}
$gruppenID = (New-MsolGroup -DisplayName "Lehrer").ObjectId
foreach($lehrer in $lehrende){
Write-Host $lehrer.vorname $lehrer.name " wurde angemeldet."
$name = $lehrer.vorname +" "+ $lehrer.name
$user=New-MsolUser -UserPrincipalName $lehrer.email -DisplayName $name -FirstName $lehrer.vorname -LastName $lehrer.name -Password "Willkommen@Off!ce" -ForceChangePassword $true -Department "Lehrer" -LicenseAssignment $LuLLizenz -UsageLocation de
Add-MsolGroupMember -GroupObjectId $gruppenID -GroupMemberObjectId $user.ObjectId
$ausgabe = [String]($user.DisplayName) +", "+ [String]($user.UserPrincipalName) +", "+ [String]($user.Password)
Add-Content -Value $ausgabe -Path h:\office365BenutzerlisteLehrer.txt
}
Write-Host "Die Anmeldung ist beendet, öffnen Sie h:\office365BenutzerlisteLehrer.txt um die Benutzerdaten zu sehen. " -ForegroundColor Green
Um das Erstellen von Teams auf das Lehrer-Kollegium einzuschränken wird folgendes Skript verwendet. Achten Sie darauf, dass Lehrende, welche im Nachhinein noch in der Cloud angemeldet werden auch zur Sicherheitsgruppe "Lehrer" hinzugefügt werden müssen, um eigene Teams erstellen zu dürfen. Falls ihre Lehrerg Gruppe nicht "Lehrer" heißt, passen Sie die Zeile 2 des Skriptes bitte an. Das Skript kommt bis auf die ersten zwei Zeilen direkt von Microsoft, der Artikel dazu hier.
Install-Module AzureADPreview
$GroupName = "Lehrer"
$AllowGroupCreation = "False"
Connect-AzureAD
$settingsObjectID = (Get-AzureADDirectorySetting | Where-object -Property Displayname -Value "Group.Unified" -EQ).id
if(!$settingsObjectID)
{
$template = Get-AzureADDirectorySettingTemplate | Where-object {$_.displayname -eq "group.unified"}
$settingsCopy = $template.CreateDirectorySetting()
New-AzureADDirectorySetting -DirectorySetting $settingsCopy
$settingsObjectID = (Get-AzureADDirectorySetting | Where-object -Property Displayname -Value "Group.Unified" -EQ).id
}
$settingsCopy = Get-AzureADDirectorySetting -Id $settingsObjectID
$settingsCopy["EnableGroupCreation"] = $AllowGroupCreation
if($GroupName)
{
$settingsCopy["GroupCreationAllowedGroupId"] = (Get-AzureADGroup -SearchString $GroupName).objectid
}
else {
$settingsCopy["GroupCreationAllowedGroupId"] = $GroupName
}
Set-AzureADDirectorySetting -Id $settingsObjectID -DirectorySetting $settingsCopy
(Get-AzureADDirectorySetting -Id $settingsObjectID).Values
Dienstag, 17. Dezember 2019
Windows Versionsupgrade
Windows 10 Version 1909 wurde vor kurzem veröffentlicht. Aus diesem Anlass möchte ich hier kurz beschreiben, wie Sie unter Windows 10 ein Versions-Upgrade mit Opsi durchführen können. Dies funktioniert natürlich auch für Upgrades von z.B. 1803 auf 1809 oder 1903.
1. Schritt: Paket herunterladen
Laden Sie das Opsi-Produkt windows10-upgrade von https://download.uib.de/opsi4.1/testing/packages/windows/localboot/
2. Schritt: Paket auf dem Opsi-Server installieren.
Klicken Sie im opsi config editor oben rechts auf "Produkte", durch eine kleine Box dargestellt. Im Dialog klicken Sie in der Zeile "opsi-Paket" auf den Ordner und wählen die herunter geladene windows10-upgrade Datei.
Klicken Sie nun darunter auf das bunte Icon "Verbinden mit \\10.1.0.2\opsi_workbench um das Produkt auf dem Server zu installieren.
3. Schritt: Produkt vervollständigen
Kopieren Sie den Inhalt des aktuellen Windows 10 Datenträgers nach \\backup\opsi_depot_rw\windows10-upgrade\installfiles
und führen anschließend opsi-set-rights auf dem Opsi-Server aus.
4. Schritt: Installation auf den Clients.
Das Produkt kann nun auf den Clients installiert werden. Auf der Festplatte des Clients muss jedoch hinreichend Platz sein.
Bei der Konfiguration des Produktes können Sie bei "upgrade-to-version" die Zielversion wählen. Bei setup_after_install sollte "paedml-login, config-win10, opsi-client-agent, windomain" eingetragen werden um diese Produkte nach dem Upgrade erneut zu installieren.
2. Schritt: Paket auf dem Opsi-Server installieren.
Klicken Sie im opsi config editor oben rechts auf "Produkte", durch eine kleine Box dargestellt. Im Dialog klicken Sie in der Zeile "opsi-Paket" auf den Ordner und wählen die herunter geladene windows10-upgrade Datei.
Klicken Sie nun darunter auf das bunte Icon "Verbinden mit \\10.1.0.2\opsi_workbench um das Produkt auf dem Server zu installieren.
3. Schritt: Produkt vervollständigen
Kopieren Sie den Inhalt des aktuellen Windows 10 Datenträgers nach \\backup\opsi_depot_rw\windows10-upgrade\installfiles
und führen anschließend opsi-set-rights auf dem Opsi-Server aus.
4. Schritt: Installation auf den Clients.
Das Produkt kann nun auf den Clients installiert werden. Auf der Festplatte des Clients muss jedoch hinreichend Platz sein.
Bei der Konfiguration des Produktes können Sie bei "upgrade-to-version" die Zielversion wählen. Bei setup_after_install sollte "paedml-login, config-win10, opsi-client-agent, windomain" eingetragen werden um diese Produkte nach dem Upgrade erneut zu installieren.
Mittwoch, 4. Dezember 2019
Automatische Medienwiedergabe konfigurieren
In der Windows 10 Default-Installation in der paedML ist die automatische Wiedergabe von Medien nicht konfiguriert.
Das heißt, dass z.B. beim Einlegen einer Film-DVD schlicht nichts passiert, kein automatisches Abspielen oder auch keine Aufforderung zum Abspielen, Explorer öffnen, etc.
Ein Blick in die Systemsteuerung über einen administrativen Benutzer verrät den "Gemütszustand" des AutoRuns:
Die Settings hinter den Rollbalken verstecken sich in der Registry unter
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlersDefaultSelection]
und parallel
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\UserChosenExecuteHandlers]
Das heißt, dass die Settings benutzerbezogen eingestellt werden.
Allerdings ist im Profil AProfLehrer die Systemsteuerung auch deaktiviert, dementsprechend bleiben entweder Gruppenrichtlinien oder ein OPSI-Logon-Script, um die gewünschten AutoRuns auf alle Benutzer zu verteilen.
Für Ersteres gibt es hier ein Beispiel:
Im obigen Beispiel wurde ein GPO "paedMLL_EigeneAnpassungen" mit der Sicherheitsfilterung "Authentifizierte Benutzer" erstellt.
Darin wird nun das Erstellen eines neuen Registrierungselements vorgenommen:
Als Parentkeys dienen immer oben genannte Reg-Keys.
Darunter werden mit dem GPO nun Childkeys erstellt, im Bildbeispiel wird mit dem Childkey "PlayDVDAudioOnArrival" der Autorun von Audio-DVDs konfiguriert.
In das Feld "Schlüsselpfad" muss hier "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlersDefaultSelection\PlayDVDAudioOnArrival" eingetragen werden.
Dazu wird ein Standard-Element des Typ REG_SZ mit den Wertdaten "VLCPlayDVDAudioOnArrival" erstellt.
Der Schritt muss danach noch mit den zweiten Parentkey (UserChosen...) wiederholt werden, da der Autoplay nur funktioniert, wenn es in beiden Parentkeys einen identischen Eintrag gibt.
----
Diese Elemente sorgen nun dafür, dass Audio-DVDs in Zukunft immer nach dem Einlegen ohne weiteres Zutun des Anwenders mit dem VLC Media Player abgespielt werden.
Ob das Implementieren des GPO erfolgreich war, kann man z.B. über die Remote-Registrierung nachschauen, sobald ein Lehrer oder Schüler auf einer Maschine angemeldet ist:
Der Childkey mitsamt Reg-Element wurden korrekt angelegt. Damit funktioniert nun der Autostart für Audio-DVDs.
Eine Sammlung (und auch die Quelle für diesen Blogpost) mit allen gängigen Childkeys und Reg-Werten (auch gültig für Windows 10) gibt es hier: https://smulpuru.wordpress.com/2012/01/29/windows-7-autoplay-registry-settings/
Das heißt, dass z.B. beim Einlegen einer Film-DVD schlicht nichts passiert, kein automatisches Abspielen oder auch keine Aufforderung zum Abspielen, Explorer öffnen, etc.
Ein Blick in die Systemsteuerung über einen administrativen Benutzer verrät den "Gemütszustand" des AutoRuns:
Die Settings hinter den Rollbalken verstecken sich in der Registry unter
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlersDefaultSelection]
und parallel
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\UserChosenExecuteHandlers]
Das heißt, dass die Settings benutzerbezogen eingestellt werden.
Allerdings ist im Profil AProfLehrer die Systemsteuerung auch deaktiviert, dementsprechend bleiben entweder Gruppenrichtlinien oder ein OPSI-Logon-Script, um die gewünschten AutoRuns auf alle Benutzer zu verteilen.
Für Ersteres gibt es hier ein Beispiel:
Im obigen Beispiel wurde ein GPO "paedMLL_EigeneAnpassungen" mit der Sicherheitsfilterung "Authentifizierte Benutzer" erstellt.
Darin wird nun das Erstellen eines neuen Registrierungselements vorgenommen:
Als Parentkeys dienen immer oben genannte Reg-Keys.
Darunter werden mit dem GPO nun Childkeys erstellt, im Bildbeispiel wird mit dem Childkey "PlayDVDAudioOnArrival" der Autorun von Audio-DVDs konfiguriert.
In das Feld "Schlüsselpfad" muss hier "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlersDefaultSelection\PlayDVDAudioOnArrival" eingetragen werden.
Dazu wird ein Standard-Element des Typ REG_SZ mit den Wertdaten "VLCPlayDVDAudioOnArrival" erstellt.
Der Schritt muss danach noch mit den zweiten Parentkey (UserChosen...) wiederholt werden, da der Autoplay nur funktioniert, wenn es in beiden Parentkeys einen identischen Eintrag gibt.
----
Diese Elemente sorgen nun dafür, dass Audio-DVDs in Zukunft immer nach dem Einlegen ohne weiteres Zutun des Anwenders mit dem VLC Media Player abgespielt werden.
Ob das Implementieren des GPO erfolgreich war, kann man z.B. über die Remote-Registrierung nachschauen, sobald ein Lehrer oder Schüler auf einer Maschine angemeldet ist:
Der Childkey mitsamt Reg-Element wurden korrekt angelegt. Damit funktioniert nun der Autostart für Audio-DVDs.
Eine Sammlung (und auch die Quelle für diesen Blogpost) mit allen gängigen Childkeys und Reg-Werten (auch gültig für Windows 10) gibt es hier: https://smulpuru.wordpress.com/2012/01/29/windows-7-autoplay-registry-settings/
Dienstag, 3. Dezember 2019
Neuer CSV-Import
VORSICHT! WORK IN PROGRESS! Für das beschriebene Vorgehen gibt es keine Gewähr.
Wir sind gerade dabei einen neuen CSV-Import für die paedML zu konfigurieren. Da einiges zu definieren und testen ist, hier meine Work-in-Progress Dokumentation. Alles basiert auf diesem und diesem Artikel von Univention.
Das Vorgehen funktioniert nur mit paedML 7.1 (UCS 4.3).
Um das Modul zu installieren muss auf der Server-Konsole
Wir sind gerade dabei einen neuen CSV-Import für die paedML zu konfigurieren. Da einiges zu definieren und testen ist, hier meine Work-in-Progress Dokumentation. Alles basiert auf diesem und diesem Artikel von Univention.
Das Vorgehen funktioniert nur mit paedML 7.1 (UCS 4.3).
Um das Modul zu installieren muss auf der Server-Konsole
univention-install ucs-school-umc-import
und
univention-install ucs-school-import-http-api
ausgeführt werden.
Nun muss festgelegt werden, welcher User den Import durchführen darf. Dazu klickt man auf der Schulkonsole auf Benutzer --> Gruppen und wählt die Gruppe schule-import-all und klickt auf bearbeiten. Bei Mitglieder dieser Gruppe klickt man auf HINZUFÜGEN und wählt die Benutzer die den Import durchführen dürfen aus, z.B: Administrator und Netzwerkberater, und klickt nochmal auf HINZUFÜGEN. Auf der Seite oben klickt man auf SPEICHERN um die änderungen zu übernehmen.
Nun muss eine passende Konfigurationsdatei nach /var/lib/ucs-school-import/configs/user_import.json kopiert werden.
Der Inhalt wird für die paedML Linux z.B: so aussehen:
{ "csv": { "mapping": { "Skript 4": "record_uid", "Vornamen": "firstname", "Familienname": "lastname", "Klasse": "school_classes" } }, "scheme": { "username": { "default": "<:umlauts><firstname>[0].<lastname><:lower>[COUNTER2]", "student": "<:umlauts><firstname:alphanum>[0:10].<lastname:alphanum><:lower>[COUNTER2]", "teacher": "<record_uid><:lower>[COUNTER2]" } }, "school": "schule", "password_length": 8 }Der Import schluckt nun den "Export für paedML"-Export aus ASV-BW sobald er in CSV umgewandelt wird.
Sonntag, 13. Oktober 2019
VAMT-Fehler bei Proxy activate
Bei VAMT kommt es hin und wieder zu Fehlern, sobald man nach der Key-Installation Diese über "Proxy activate" bei Microsoft aktivieren möchte:
1) “VAMT reported that the response from the activation server did not match the request”
Dieser Fehler taucht seit VAMT 2 (u.A. auch in der paedML Linux 5.1) immer wieder auf. Hier erwartet der MS-Aktivierungsserver eine andere Regionaleinstellung von der anfragenden Station (hier die AdminVM).
Damals wie heute hilft es, die Regionaleinstellung in der Systemsteuerung der AdminVM zu manipulieren:
Bei 3) tauscht man das Komma gegen einen Punkt und bei 4) den Punkt gegen eine Leerstelle aus. Danach ist dieser Fehler behoben und die Geräte können aktiviert werden.
2) "The request failed with http status 417:Expectation Failed"
Dieser sehr seltene Fehler wird vom Squid verursacht, wenn es bei der HSTS-Kommunikation (HTTP Strict Tansport Security) zu einem Fehler kommt.
Lösen lässt sich das Problem, indem man die Zeile
ignore_expect_100 on
in die Datei /etc/squid/squid.conf auf dem paedML Server schreibt und den Squid dann neustartet.
1) “VAMT reported that the response from the activation server did not match the request”
Dieser Fehler taucht seit VAMT 2 (u.A. auch in der paedML Linux 5.1) immer wieder auf. Hier erwartet der MS-Aktivierungsserver eine andere Regionaleinstellung von der anfragenden Station (hier die AdminVM).
Damals wie heute hilft es, die Regionaleinstellung in der Systemsteuerung der AdminVM zu manipulieren:
Bei 3) tauscht man das Komma gegen einen Punkt und bei 4) den Punkt gegen eine Leerstelle aus. Danach ist dieser Fehler behoben und die Geräte können aktiviert werden.
2) "The request failed with http status 417:Expectation Failed"
Dieser sehr seltene Fehler wird vom Squid verursacht, wenn es bei der HSTS-Kommunikation (HTTP Strict Tansport Security) zu einem Fehler kommt.
Lösen lässt sich das Problem, indem man die Zeile
ignore_expect_100 on
in die Datei /etc/squid/squid.conf auf dem paedML Server schreibt und den Squid dann neustartet.
Donnerstag, 26. September 2019
Microsoft 365 mit per Powershell mit Zugangsdaten versorgen
Wenn man seinen Schülerinnen und Schülerin über einen Rahmenvertrag eine Office 365 Lizenz geben möchte muss dies über die Azure-Cloud erfolgen. Hier sammle ich die Befehle die zum Hochladen der Benutzerdaten benutze.
Die folgenden Befehle sind KEIN SKRIPT! Die Befehle sollten einzeln ausgeführt werden und einzelne Teile gegebenenfalls angepasst werden.
Modul installieren
zu Cloud verbinden
Modul aktivieren
Zum Auflisten aller Befehle:
Zum Auslesen der verfügbaren Lizenzen:
Alle User in der Cloud löschen (VORSICHT! ALLE User außer dem Admin werden gelöscht!)
Ließt die CSV Datei der paedML Importliste aus
Die Importierten Daten haben die Attribute Klasse, Vorname, Nachname, Benutzername und Passwort. Sie können nun für jeden User in der Liste eine Aktion ausführen lassen. Im Beispiel wird für jeden User der Vorname ausgegeben.
Microsoft verlangt einen Ländercode beim Zuweisen der Lizenz
In der Abteilung kann die Klasse abgelegt werden.
Für meine Schule habe ich die Parameter wie folgt gesetzt:
Das Passwort ist nicht sehr sicher, aber kann von den Lehrern gut kommuniziert werden.
Es sieht bei uns dann so aus "SGGG13-1-Office!"
Das Anlegen komplett:
Die User werden nun angelegt und die Lizenz zugewiesen.
Die folgenden Befehle sind KEIN SKRIPT! Die Befehle sollten einzeln ausgeführt werden und einzelne Teile gegebenenfalls angepasst werden.
Modul installieren
Install-Module MSOnline
zu Cloud verbinden
Connect-MsolService
Modul aktivieren
Import-Module MSOnline
Zum Auflisten aller Befehle:
Get-Command -Module MSOnline
Zum Auslesen der verfügbaren Lizenzen:
Get-MsolAccountSkuKopieren Sie die gewünschte Lizenz, sie muss später beim Benutzer anlegen mitgegeben werden.
Alle User in der Cloud löschen (VORSICHT! ALLE User außer dem Admin werden gelöscht!)
Get-MsolUser -all | Remove-MsolUser -Force
Ließt die CSV Datei der paedML Importliste aus
$users=Import-Csv -Path 'H:\paedml_import_liste.csv'
Die Importierten Daten haben die Attribute Klasse, Vorname, Nachname, Benutzername und Passwort. Sie können nun für jeden User in der Liste eine Aktion ausführen lassen. Im Beispiel wird für jeden User der Vorname ausgegeben.
foreach($user in $users){ Write-Host $user.Vorname}Die Azure-Cloud Benötigt für New-MsolUser (Neuer User anlegen)
-UserPrincipalNameDer Loginname mit Domäne z.B. vname.nname@meineschule.onmicrosoft.com
-DisplayNameDer angezeigte Name
-FirstName -LastNameVor- und Nachname (eventuell nicht unbedingt benötigt?)
-PasswordDas Passwort darf den Benutzernamen NICHT enthalten!
-ForceChangePassword $trueDer User muss das Passwort beim ersten Login ändern, $false falls nicht
-DepartmentDie passende Lizenz, welche mit Get-MsolAccountSku ausgelesen wurde
-LicenseAssignment *****schule:OFFICESUBSCRIPTION_STUDENT
Microsoft verlangt einen Ländercode beim Zuweisen der Lizenz
-UsageLocation de
In der Abteilung kann die Klasse abgelegt werden.
Für meine Schule habe ich die Parameter wie folgt gesetzt:
New-MsolUser -UserPrincipalName "$($as.Benutzername).365@****schule.de" -DisplayName "$($as.Vorname) $($as.Nachname)" -FirstName $as.Vorname -LastName $as.Nachname -Password "$($as.Klasse)-Office!" -ForceChangePassword $true -Department $as.Klasse -LicenseAssignment ****schule:OFFICESUBSCRIPTION_STUDENT -UsageLocation de
Das Passwort ist nicht sehr sicher, aber kann von den Lehrern gut kommuniziert werden.
Es sieht bei uns dann so aus "SGGG13-1-Office!"
Das Anlegen komplett:
$users=Import-Csv -Path 'H:\paedml_import_liste.csv'
foreach($user in $users){ New-MsolUser -UserPrincipalName "$($user.Benutzername).365@****schule.de" -DisplayName "$($user.Vorname) $($user.Nachname)" -FirstName $user.Vorname -LastName $user.Nachname -Password "$($user.Klasse)-Office!" -ForceChangePassword $true -Department $user.Klasse -LicenseAssignment ****schule:OFFICESUBSCRIPTION_STUDENT -UsageLocation de
}
Die User werden nun angelegt und die Lizenz zugewiesen.
Abonnieren
Posts (Atom)



