Microsoft Defender: Update Defender Definitions ohne Windows Updates

Problem:
Ich verwende auf einigen Servern Microsoft Defender. Mein Problem ist, dass die Definition-Updates nicht automatisch installiert werden, da ich den Windows Update Dienst auf manuell gestellt habe.

Lösung:
Ich habe ein kleines Powershell-Skript geschrieben, welches die Definitions aktualisiert und die Aktualisierung auch dem WSUS mitteilt, da ich die Definition-Updates vom WSUS herunterladen möchte

Das Powershell-Skript sieht wie folgt aus:

#Definition-Update:
Update-MpSignature -UpdateSource InternalDefinitionUpdateServer
#WSUS Report:
wuauclt.exe /detectnow /reportnow


Sollte man die Updates lieber vom Microsoft-Server herunterladen wollen, dann muss man den ersten Befehl wie folgt anpassen:
Update-MpSignature -UpdateSource MicrosoftUpdateServer


Das Skript habe ich dann in eine Aufgabe gepackt und lasse diese mehrfach am Tag laufen.

Zwei Sachen noch dazu:
- Sollte man die Definitions vom Microsoft-Server herunterladen wollen, dann muss der Server auch die entsprechenden Proxy- und/oder Firewall-Freigaben haben
- Wenn man die Definitions vom WSUS zieht, dann sollte man sich eine automatische Genehmigungsregel für die Definition-Updates einrichten, sonst muss man diese immer manuell freigeben.

Teams / Office 365 : Aufzeichnen von Meetings nicht möglich - Teil 2

Nachdem ich ja den Eintrag gemacht hatte wie man das mit Powershell fixen kann gingen komischerweise die Linux und die Mac Clients. Diese konnten Meetings aufzeichnen, jedoch gab es unter Windows 10 weiterhin Probleme das Meetings nicht aufgezeichnet werden konnten. Ich konnte das auf den Punkt "new meetings experience" zurückführen. Im aktuellen Client (11.12.2020) gibt es hier Probleme Meetings aufzunehmen. Wir haben das dann bei den betroffenen Clients deaktiviert und schon lief das recording ohne Probleme.

MS-Teams recording

Teams / Office 365 : Aufzeichnen von Meetings nicht möglich

Problem : Die Recording Funktionalität von Microsoft Teams ist ausgegraut.
Leider hab ich nur einen Screenshot wo das nicht mehr der Fall ist ;-)

Teams Recording
Lösung : Erstmal muss die Verbindung zu MS Teams aufgebaut werden.
# connect to MS Teams
Import-Module MicrosoftTeams
$sfbSession = New-CsOnlineSession
Import-PSSession $sfbSession
Anzeigen kann man die Einstellungen der Policy mit dem Befehl :
# get teams policy
Get-CsTeamsMeetingPolicy -Identity Global
Powershell Teams Policy
Dann kann man das mit dem Powershell Schnipsel fixen :
# set AllowRecordingStorageOutsideRegion 
Set-CsTeamsMeetingPolicy -Identity Global -AllowRecordingStorageOutsideRegion $True

Erklärung :
Bei uns liegt es daran das Teams bereits in der Germany Location ist der Service Stream aber selbst dort noch nicht verfügbar ist. Dieser ist im Moment nur in der Europe Region verfügbar. Die Einstellung sorgt dafür das Teams auch außerhalb Germanys die aufgezeichneten Daten ablegen darf. Was hier bedeutet unsere Recordings liegen auf Servern in der Europa Region

Exchange Online / Office 365 : Erstellen einer dynamischen Verteilerliste

Um uns die Arbeit etwas zu erleichtern haben wir unseren internen E-Mail Verteiler auf eine DynamicDistributionGroup in Exchange Online umgestellt. Das erspart uns die Arbeit neue Mitarbeiter immer manuell in den Verteiler aufzunehmen, außerdem reduziert es die Fehler (oder das vergessen die neuen User hinzuzufügen). Da wir in unserer Umgebung auch einige Funktionspostfächer haben mussten diese ausgeschlossen werden.

Erstmal habe ich eine Verteiler Gruppe erstellt in der ich die ganzen Funktionspostfächer aufnehme.
New-DistributionGroup -Name 'NODYNDIS'
Set-DistributionGroup -Identity 'NODYNDIS' -HiddenFromAddressListsEnabled $True
Mit einem ADD Befehl kann man neue Funktionspostfächer hinzufügen.
Add-DistributionGroupMember -Identity 'NODYNDIS' -Member 'user-email@domain'
Dann brauchen wir den DN der Gruppe für den Filter in der dynamischen Gruppe
Get-Group -Identity 'NODYNDIS' | Select-Object -ExpandProperty DistinguishedName

CN=NODYNDIS,OU=xxx,OU=xxx,DC=xxx,DC=xxx,DC=xxx
Dann kann man die dynamische Gruppe erstellen.
New-DynamicDistributionGroup -Name 'TESTVERTEILER' -RecipientFilter {((RecipientTypeDetails -eq 'UserMailbox') -and -not (MemberofGroup -eq 'CN=NODYNDIS,OU=xxx,OU=xxx,DC=xxx,DC=xxx,DC=xxx') -and -not (UserAccountControl -eq 'AccountDisabled, NormalAccount'))}
Kurz zur Erklärung der Filter :
(RecipientTypeDetails -eq 'UserMailbox')  : Es muss sich um ein Benutzer Postfach handeln
-and -not (MemberofGroup -eq 'CN=NODYNDIS,OU=xxx,OU=xxx,DC=xxx,DC=xxx,DC=xxx') : und nicht Mitglied dieser Gruppe
-and -not (UserAccountControl -eq 'AccountDisabled, NormalAccount') : User darf nicht deaktivert sein
Anzeigen aller Empfänger in dem dynamischen Verteiler
$mygroup = Get-DynamicDistributionGroup "TESTVERTEILER"
Get-Recipient -RecipientPreviewFilter $myGroup.RecipientFilter | Select Name,PrimarySmtpAddress

Infos :
Filterbare Eigenschaften für RecipientFilter
New-DynamicDistributionGroup
New-DistributionGroup
Set-DistributionGroup


Office 365 : Probleme beim Zugriff auf One Drive aus der UI heraus

Problem : Wir hatten hier einige User in unserem Tenant die aus dem Portal nicht auf ihr One Drive zugreifen konnten. Die Fehlermeldungen waren nicht wirklich hilfreich. Es sind immer wieder solche Fehler aufgelaufen.
one drive errors
Ein Ticket bei Microsoft hat uns dann die Lösung gebracht, auch wenn wir es nicht 100% nachvollziehen können. Vermutlich wird durch das Get-SPOSite ... | Select Owner ein neues provisioning angetriggert der dann das Feld füllt und dann auch der Zugriff aus der UI funktioniert. Ok einfach in Kurz .. davor ging es nicht danach konnte der User zugreifen ;-)
Lösung : Das Provisioning auslösen mit diesem Powershell Befehl
Get-SPOsite https://contoso-my.sharepoint.com/personal/user1_contoso_onmicrosoft_com | Select-Object -Property Url, Owner

Wir haben das alles nochmal in ein Skript geschrieben das noch andere Sachen checkt & korrigiert :-)
Hier gehts zum Skript : jhochwald/FixPersonalSPOSite.ps1

Office 365 : Anzeigen aller Gäste incl. Team

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
“Das einzig sichere System müsste ausgeschaltet, in einem versiegelten und von Stahlbeton ummantelten Raum und von bewaffneten Schutztruppen umstellt sein.”
Gene Spafford (Sicherheitsexperte)