Unser Datenschützer wollte eine Übersicht über alle Gäste und den dazugehörigen Teams. Das kleine Skript erledigt diese Aufgabe für euch.
# Connect to Microsoft Teams
Connect-MicrosoftTeams
# Get all Guests and Teams
$Teams = Get-Team
$GuestUser = foreach ($Team in $Teams)
{
Get-TeamUser -GroupId $Team.GroupId | Where-Object -FilterScript {$_.Role -eq 'Guest'} | Select-Object -Property User, Role, @{n = 'TeamName';e = {$Team.DisplayName} }
}
#Export-CSV
$paramExportCsv = @{
Path = "c:\Externe\ExterneUser.csv"
Force = $true
Encoding = 'UTF8'
Delimiter = ';'
NoTypeInformation = $true
}
$GuestUser | Export-Csv @paramExportCsv
Problem : Mein WSUS hat sich immer wieder verabschiedet mit den verschiedensten Fehlermeldungen. Die häufigsten waren hier
System.IO.IOException und
System.Net.WebException.
Lösung : Nachdem ich dem wsuspool mehr Speicher gegeben habe tritt das Problem nicht mehr auf. Ich hab mich hier für 4GB entschieden.
Ich habe in meinem Laptop mehrere Festplatten und möchte nun auch die zweite Festplatte über LUKS verschlüsseln. Die erste Festplatte habe ich bereits bei der Installation verschlüsselt. Die Benutzung soll aber recht einfach sein. Es gibt bestimmt mehrere Wege das zu erreichen, ich zeige hier meinen
Als erstes legt man mal mit fdisk eine neue Partition an. Hierzu möchte ich mich an dieser Stelle nicht weiter auslassen. Diese verschlüsselt man dann mit cryptsetup.
cryptsetup -y -s 512 luksFormat /dev/sda1
/dev/sda1 ist hier die neu angelegt Partition (ALLE DATEN WERDEN GELÖSCHT !)
Als erstes müssen wir die verschlüsselte Partition mit cryptsetup mounten
cryptsetup luksOpen /dev/sda1 lvmsda1
dann muss ein volume initialisiert werden , eine volume group erstellt werden und ein logical volume angelegt werden. Das erledigen wir so
pvcreate /dev/mapper/lvmsda1
vgcreate -s64M vgdata /dev/mapper/lvmsda1
lvcreate -n DATA -L 1.8TB vgdata
Jetzt bekommt unser lv noch ein Dateisystem
mkfs.ext4 /dev/vgdata/DATA
Jetzt tragen wir die neue HDD in der crypttab ein und in der fstab
vi /etc/crypttab
vi /etc/fstab
die jeweiligen Werte könnte ihr aus dem Screenshot entnehmen
Da ich mir das nie merken kann, mach ich hier mal einen Eintrag.
Konfiguration auf dem PDC
cmd immer als Administrator starten
w32tm /config /manualpeerlist:"NTP-SERVER,0x8" /syncfromflags:manual /reliable:yes /update
net stop w32time && net start w32time
w32tm /resync
Konfiguration auf einem Member der Domain
Sollte ein Server nach ein paar Std. immer noch die falsche Zeit haben ist evtl. die w32tm falsch konfiguriert. Das kann man zurücksetzten mit
w32tm /config /syncfromflags:domhier /update
net stop w32time && net start w32time
w32tm /resync
weitere nützliche Befehle
ntp quelle überprüfen kann man mit dem Befehl
w32tm /stripchart /computer:NTP-SERVER
den Status überprüfen kann man mit
w32tm /query /status
die configuration kann man sich mit diesem Befehl anzeigen
w32tm /query /configuration
Quellen :
https://www.anreiter.at/windows-server-2019-zeitquelle-konfigurieren/#Zeit_in_der_Domaene_verteilen
https://docs.microsoft.com/de-de/windows-server/networking/windows-time-service/windows-time-service-tools-and-settings
Installieren des Modules :
Install-Module -Name ExchangeOnlineManagement
Jetzt kann man mal prüfen ob alles sauber installiert ist.
Verbindung zu Exchange Online aufbauen
$ParaConnectExchange = @{
UserPrincipalName = 'ADMIN-USER'
ShowProgress = $false
ShowBanner = $false
EnableErrorReporting = $false
UseMultithreading = $true
TrackPerformance = $false
}
Connect-ExchangeOnline @ParaConnectExchange
Das ist der neue Weg, und wenn man MFA aktiviert hat erscheint jetzt auch die Abfrage.
Ich habe hier einiges an sensible Daten in meinem Homeverzeichnis die ich nicht verlieren möchte. Deswegen habe ich mir ein borgbackup eingerichtet das mir alle 30 Minuten ein Backup auf meine zweite HDD schiebt. Da beide HDD bei mir mit LUKS verschlüsselt sind ist das Repo nicht gesondert gesichert.
Sollte man hier auf ein NFS oder ein anderes unverschlüsseltes Ziel sichern rate ich zu einer encryption !
Installieren von borgbackup
sudo apt install borgbackup
dann richten wir auf der zweiten HDD ein Repo ein. Das hab ich dann so gemacht
mkdir -p /media/chris/hdd2/backup
cd /media/chris/hdd2/backup
natürlich muss der mountpoint eurer Umgebung angepasst werden. Jetzt initialisieren wir das REPO für das Backup
borg init -e none /media/chris/hdd2/backup
Nochmal der Hinweis -e none kommt bei mir nur zum Einsatz da ALLE HDDs in meinem Notebook mit LUKS verschlüsselt sind
Ab jetzt kann man Backups in das Verzeichnis machen. Ich hab mir hier das ein Script zusammengebaut
!/bin/bash
_bbin=$(which borg)
_tbin=$(which tee)
# -----------------------------------------------------------------
# VARs
# -----------------------------------------------------------------
_own_path=$(dirname $(readlink -f ${0}))
_mnt_path="" # mount point 2 hdd
_src_path="" # was soll gesichert werden ? z.B. /home/test sichert das komplette Homeverzeichniss
_exclude="" # welche Verzeichnisse sollten nicht gesichert werden ? z.B. /home/test/Downloads
_tar_path="" # Wohin wird gesichert
_repo_name="HOME-$(date '+%Y%m%d-%H%M%S')" # Name der Sicherung
_borg_para="-v --stats -C lz4" # Parameter für das Borgbackup
_borg_log="${_own_path}/logs/borg.log" # wo liegt das log
# -----------------------------------------------------------------
# parameter for borg prune
# https://borgbackup.readthedocs.io/en/stable/usage/prune.html
KH=2 # keep hourly
KD=2 # keep daily
KW=4 # keep weekly
KM=3 # keep monthly
# create prune parameter
_borg_prune=""
if [ ${KH} != 0 ]; then
_borg_prune="${_borg_prune} --keep-hourly=${KH}"
fi
if [ ${KD} != 0 ]; then
_borg_prune="${_borg_prune} --keep-daily=${KD}"
fi
if [ ${KW} != 0 ]; then
_borg_prune="${_borg_prune} --keep-weekly=${KW}"
fi
if [ ${KM} != 0 ]; then
_borg_prune="${_borg_prune} --keep-monthly=${KM}"
fi
# -----------------------------------------------------------------
# check folders
if [ ! -d "${_own_path}/logs" ]; then
mkdir -p "${_own_path}/logs"
fi
# -----------------------------------------------------------------
# write all to logfile
exec > >(${_tbin} -i ${_borg_log})
exec 2>&1
# -----------------------------------------------------------------
_chk_mnt=$(mount | grep -iq "${_mnt_path}")
if [ $? -eq 0 ]; then
echo -e "\n#----------------------------------------------------------------------------------------------#"
echo "############### borg create ####################################################################"
echo -e "#----------------------------------------------------------------------------------------------#\n"
${_bbin} create ${_borg_para} ${_tar_path}::${_repo_name} ${_src_path}
if [ $? -eq 0 ]; then
echo -e "\n#----------------------------------------------------------------------------------------------#"
echo "############### borg prune #####################################################################"
echo -e "#----------------------------------------------------------------------------------------------#\n"
${_bbin} prune --list ${_tar_path} ${_borg_prune}
echo -e "\n#----------------------------------------------------------------------------------------------#"
echo "############### borg list ######################################################################"
echo -e "#----------------------------------------------------------------------------------------------#\n"
${_bbin} list ${_tar_path}
echo -e "\n#----------------------------------------------------------------------------------------------#"
echo "############### borg info ######################################################################"
echo -e "#----------------------------------------------------------------------------------------------#\n"
${_bbin} info ${_tar_path}
fi
exit 0
else
echo "$(date '%Y%m%d %H:%M') - ${_mnt_path} is not mounted exited" >> ${_borg_log}
exit 1
fi
diese Script legt man sich jetzt irgendwo auf die Platte und ruft es in crontab auf z.B. alle 30 Minuten
*/30 * * * * /scripts/create_borg_backup.sh