blog.icewolf.ch

Let's talk about IT!
posts - 1560, comments - 295, trackbacks - 0

My Links

Archives

Post Categories

icewolf

Friday, July 24, 2020

Mitarbeiter ausgetreten hat aber noch Resourcen in Outlook gebucht?

Hallo zusammen,

Ein Mitarbeiter verlässt die Firma, hat aber noch jede Menge Meetings gebucht. Da bleiben Räume und andere Ressourcen gebucht, obwohl die nie mehr stattfinden werden.

Wusstest du, dass es dafür ein Exchange cmdlet gibt?

Remove-CalendarEvents

https://docs.microsoft.com/en-us/powershell/module/exchange/remove-calendarevents?view=exchange-ps

Ich habe das mal mit einem Testuser durchgespielt. Der "Max Muster" musste dafür herhalten.

Er hat letzte Woche eine Menge Räume gebucht.

Mit folgendem Befehl und dem PreviewOnly Parameter kann man sich die Meetings anzeigen lassen.

Remove-CalendarEvents -Identity m.muster@icewolf.ch -CancelOrganizedMeetings -QueryStartDate 1/1/2020 -QueryWindowInDays 365 -PreviewOnly

Mit folgendem Befehl werden die Meetings dann auch gleich gelöscht. Das bedeutet natürlich auch, dass für jedes dieser Meetings eine Terminabsage versendet wird. Aber nur so werden die Resourcen auch wieder frei...

Remove-CalendarEvents -Identity m.muster@icewolf.ch -CancelOrganizedMeetings -QueryStartDate 1/1/2020 -QueryWindowInDays 365

Danach sind die Meetings weg und die Resourcen wieder frei.

Grüsse
Andres Bohren

posted @ Friday, July 24, 2020 5:27 PM | Filed Under [ Exchange ]

Exchange Room Statistics - PowerShell Auswertung mit EWS

Hallo zusammen,

Früher oder später kommt wohl mal jeder Exchange Administrator dazu, Auswertungen zu Exchange Room Mailboxen machen zu müssen.

Ich habe mich ein bisschen umgesehen und folgende zwei Varianten gefunden

Beim ersten Script gefällt mir, dass "InPolicy" und "Out-Of-Policy" (die Bürozeiten des Raumes)berücksichtigt werden. Man muss allerdings Rechte auf dem Kalender oder Full Access auf den Räumen haben.

Beim zweiten Script gefällt mir, dass da auch noch die Top Organizer und die Top Attandees aufgelistet sind. Ausserdem kann dort die EWS Impersonation genutzt werden.

Ich habe also aus den beiden Scripts ein neues gemacht.

Prerequisits
- Exchange Online Powershell V2 (Module ExchangeOnlineManagement)
- EWS Managed API 2.2
- Account with Exchange Administrator Role
- EWS Account with Impersonation Permission

Im Script muss man die EWS Credentials eintragen

###############################################################################
#EWS Connection
###############################################################################
[string]$Mailbox = "ewservice@domain.tld"
[string]$Username = "ewservice@domain.tld"
[string]$Password = "YourSecurePassword"
[string]$EWSURL = "https://outlook.office365.com/EWS/Exchange.asmx"

Danach kann es folgendermassen aufgerufen werden

\Get-RoomStatistics.ps1 -Startdate "01/01/2020" -EndDate "12/31/2020"

Wer nicht alle Räume auswerten will, kann untenstehende Zeile entsprechend abändern

###############################################################################
#Get Room Mailboxes
###############################################################################
$Mailboxes = Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails RoomMailbox

Zum Schluss wird ein CSV mit folgenden Spalten erzeugt:

StartDate = Start Datum aus dem Script (Auswertungszeitraum)
EndDate = End Datum aus dem Script (Auswertungszeitraum)
RoomEmail = Emailadresse des Raumes
DisplayName = Display Name des Raumes
Meetings = Anzahl der Meetings innerhalb vom Auswertungszeitraum
RecurringMeetings = Anzahl der wiederkehrenden Meetings (Ist ein Meeting jeden Monat so werden hier 12 Meetings angezeigt)
inPolicy = Anzahl der Stunden innerhalb der Bürozeiten des Raumes
Out-Of-Policy = Anzahl der Stunden ausserhalb der Bürozeiten des Raumes
TotalDuration = Total belegte Stunden
BookableTime = Total mögliche Stunden (Bürozeiten des Raumes)
BookedPercentage = Prozentsatz der Buchung (BookableTime/100*TotalDuration)
TopOrganizers = Die häufigsten Besprechungsorganisatoren
TopAttandees = Die häufigsten Teilnehmer

Das ganze Script könnt ihr euch auf meinem GitHub Repository ansehen: https://github.com/BohrenAn/ExchangeRoomStatistics

Grüsse
Andres Bohren

posted @ Friday, July 24, 2020 3:54 PM | Filed Under [ Exchange ]

Rätselhafte private Termine in Outlook ohne private Flag

Hallo zusammen,

Ich hatte diese Woche einen mysteriösen Fall. Jemand hatte gemeldet, dass seine Termine bei anderen als "Privat" angezeigt werden, obwohl das "Private" Flag mit dem Schlösschen gar nicht gesetzt ist. Das hat aber nur Termine betroffen, welche eine Besprechung mit anderen Personen waren.

So sieht ein Termin aus, welcher als "privat" markiert ist.

Es gab aber trotzdem Termine, welche so ausgesehen haben.

Ich habe mir den Termin dann mit MFCMapi genauer angeschaut.

Tatsächlich, das private Flag ist nicht gesetzt, aber das hatte ich ja auch schon im Outlook gesehen.

Allerdings bin ich dann auf das PR_SENSITIVITY gestossen

Vertraulichkeit - Sensitivity
https://www.msxfaq.de/konzepte/vertraulich.htm

Const CdoNoSensitivity = 0 ' Default
Const CdoPersonal      = 1 ' Personal
Const CdoPrivate       = 2 ' Private
Const CdoConfidential  = 3 ' Vertraulich

Es hat sich herausgestellt, dass der Anwender in den Optionen die "Standardstufe für Vertraulichkeit" auf "Privat" gesetzt hatte.

Somit wird bei jedem Meeting Request, die Vertraulichkeit auf Privat gesetzt und das wirkt sich dann auch auf den Besprechungstermin im Outlook aus.

Grüsse
Andres Bohren

posted @ Friday, July 24, 2020 2:59 PM | Filed Under [ Exchange ]

Exchange RBAC Role for Set-Userphoto

Hallo zusammen,

Mit dem Exchange cmdlet Set-UserPhoto kann man hochauflösende Fotos (JPEG mit 648 x 648 Pixel und einer Farbtiefe von 24 Bit) speichern.

Konfigurieren der Verwendung von Fotos mit hoher Auflösung in Skype for Business Server

https://docs.microsoft.com/de-de/skypeforbusiness/deploy/integrate-with-exchange-server/high-resolution-photos?redirectedfrom=MSDN

 

Uploading High Resolution User Profile Pictures in Office 365

https://tahoeninjas.blog/2015/04/10/uploading-high-resolution-user-profile-pictures-in-office-365/

 

Set-UserPhoto -Identity "boa" -PictureData ([System.IO.File]::ReadAllBytes("C:\Scripts\Avatar.jpg"))

 

Exchange Role Based Access Control (RBAC) On-Prem

Oft sind verschiedene Teams für Identity, Exchange und den Bilderimport verantwortlich. Also gilt es, eine entsprechende Exchange RBAC Rolle zu erstellen, welche nur genau die Bilder anpassen darf.

Habe schon mal so eine ähnliche RBAC Rolle für Exchange 2010 erstellt.

Exchange 2010 RBAC ImportGALPicture

Schauen wir also mal in welchen Rollen denn das cmdlet Set-UserPhoto vorhanden ist

Get-ManagementRole -Cmdlet set-userPhoto | ft Name,Roletype,IsEndUserRole

Es gibt nur zwei Rollen, welche nicht eine EnduserRolle sind und das cmdlet enthalten. Mal sehen wie viele cmdlets die Rollen sonst noch so enthalten.

Get-ManagementRole -RoleType MailRecipients | Get-ManagementRoleEntry | measure
Get-ManagementRole -RoleType UserOptions | Get-ManagementRoleEntry | measure

Die Rolle "UserOptions" hat weniger cmdlets, welche entfernt werden müssen. Deshalb fahren wir mit der weiter.

Ich kopiere mir die comandlets in die Zwischenablage (Clipboard) und lasse sie anzeigen

Get-ManagementRole -RoleType UserOptions | Get-ManagementRoleEntry | select name | clip
Get-ManagementRole -RoleType UserOptions | Get-ManagementRoleEntry

Nun erstelle ich eine neue Management Rolle. In Exchange basiert die eben immer auf einer bestehenden Rolle. Nicht benötige cmdlet's werden dann entfernt.

Ich habe es mir angewöhnt für solche angepassten Rollen einen Prefix zu benutzen, damit man sie bereits am Namen als solche erkennt. Ich habe "ICE-" als Abkürzung für Icewolf genommen. Denkbar wäre aber auch "Custom-" oder den Firmennamen.

New-ManagementRole -Parent "User Options" -Name ICE-UserPhoto

Nun kann man sich nochmals die cmdlets der Rolle anzeigen lassen.

Get-ManagementRoleEntry -Identity "ICE-UserPhoto\*"

Im Notepad ++ ersetze ich die Leerzeichen aus dem Clipboard mit einem Regex

\s+
\r\n

Nun können die cmdlets bis auf folgende entfern werden

  • Get-UserPhoto
  • Set-UserPhoto
  • Remove-UserPhoto
  • Import-RecipientDataProperty

Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-CASMailbox" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-Recipient" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Remove-SweepRule" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MailboxUserConfiguration" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-OnlineMeetingConfiguration" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-MailboxAutoReplyConfiguration" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MailboxPreferredLocation" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-MailboxMessageConfiguration" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-SweepRule" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-MailboxCalendarFolder" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\New-SweepRule" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MobileDeviceStatistics" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-Mailbox" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-UnifiedAuditSetting" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-MailboxJunkEmailConfiguration" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Start-AuditAssistant" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\New-InboxRule" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-SweepRule" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Remove-MailboxUserConfiguration" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-MailboxCalendarConfiguration" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Enable-SweepRule" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-InboxRule" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-UnifiedAuditSetting" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-User" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Disable-SweepRule" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Clear-MobileDevice" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\New-App" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-ADServerSettings" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-Mailbox" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MailboxStatistics" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-HybridConfiguration" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\New-HybridConfiguration" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-MailUser" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Stop-UMPhoneSession" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Enable-UMCallAnsweringRule" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Remove-App" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Enable-App" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Disable-UMCallAnsweringRule" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Remove-MobileDevice" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Disable-App" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Remove-UMCallAnsweringRule" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Start-UMPhoneSession" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-App" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-User" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\New-UMCallAnsweringRule" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-UMMailboxConfiguration" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-UMCallAnsweringRule" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-UMPhoneSession" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-UMMailboxConfiguration" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-UMCallAnsweringRule" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MailboxSentItemsConfiguration" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-MailboxSentItemsConfiguration" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Write-AdminAuditLog" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Disable-InboxRule" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Enable-InboxRule" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Remove-InboxRule" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MailboxRegionalConfiguration" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-MailboxRegionalConfiguration" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-ADServerSettings" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-UMMailboxPIN" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-MailboxSpellingConfiguration" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-CalendarProcessing" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Remove-ActiveSyncDevice" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\New-MailMessage" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-TextMessagingAccount" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MessageClassification" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MessageCategory" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MailboxSpellingConfiguration" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MailboxMessageConfiguration" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MailboxJunkEmailConfiguration" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MailboxCalendarFolder" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MailboxCalendarConfiguration" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MailboxAutoReplyConfiguration" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-InboxRule" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-DomainController" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-CalendarProcessing" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-CalendarNotification" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-ActiveSyncDeviceStatistics" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-ActiveSyncDevice" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Clear-ActiveSyncDevice" | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MobileDevice " | Remove-ManagementRoleEntry -Confirm:$false
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-CASMailbox" | Remove-ManagementRoleEntry -Confirm:$false

Noch einfacher geht es mit folgendem Befehl

Get-ManagementRole -Identity "ICE-UserPhoto" | Get-ManagementRoleEntry | Where-Object { $_.Name -ne "Get-UserPhoto" -and $_.Name -ne "Set-UserPhoto" -and $_.Name -ne "Remove-UserPhoto" -and $_.Name -ne "Import-RecipientDataProperty" } | Remove-ManagementRoleEntry -Confirm:$false

Schaut man sich nun die Rolle an sind nur noch die vier cmdlets enthalten

Get-ManagementRoleEntry -Identity "ICE-UserPhoto\*"

Nun kann die eine Zuweisung der Rolle im Exchange Admin Center gemacht werden.

  • Die Rollengruppe braucht einen Namen
  • Der Write-Scope kann festgelegt werden
  • Die eben erstelle Management Role muss ausgewählt werden
  • Benutzer oder Gruppe (Mail Enabled Universal Security Group) zuweisen

Exchange Role Based Access Control (RBAC) Exchange Online

Das kann man natürlich auch unter Exchange Online machen.

Get-ManagementRole -Cmdlet set-userPhoto | ft Name,Roletype,IsEndUserRole
New-ManagementRole -Parent "User Options" -Name ICE-UserPhoto
Get-ManagementRoleEntry -Identity "ICE-UserPhoto\*"

Allerdings kann man beim Entfernen die Rolle nicht durch ein Pipe entfernen.

Remove Multiple Management Role Entries In Office 365

https://blog.rmilne.ca/2015/02/05/remove-multiple-management-role-entries-in-office-365/

Get-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-CASMailbox" | Remove-ManagementRoleEntry -Confirm:$false

So geht es jedoch

Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-CASMailbox" -Confirm:$false

Also auch hier alle unnötigen cmdlet's entfernen.

Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-CASMailbox" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-Recipient" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Remove-SweepRule" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MailboxUserConfiguration" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-OnlineMeetingConfiguration" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-MailboxAutoReplyConfiguration" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MailboxPreferredLocation" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-MailboxMessageConfiguration" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-SweepRule" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-MailboxCalendarFolder" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\New-SweepRule" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MobileDeviceStatistics" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-Mailbox" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-UnifiedAuditSetting" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-MailboxJunkEmailConfiguration" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Start-AuditAssistant" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\New-InboxRule" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-SweepRule" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Remove-MailboxUserConfiguration" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-MailboxCalendarConfiguration" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Enable-SweepRule" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-InboxRule" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-UnifiedAuditSetting" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-User" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Disable-SweepRule" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Clear-MobileDevice" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\New-App" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-Mailbox" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MailboxStatistics" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-MailUser" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Stop-UMPhoneSession" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Enable-UMCallAnsweringRule" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Remove-App" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Enable-App" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Disable-UMCallAnsweringRule" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Remove-MobileDevice" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Disable-App" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Remove-UMCallAnsweringRule" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Start-UMPhoneSession" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-App" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-User" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\New-UMCallAnsweringRule" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-UMMailboxConfiguration" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-UMCallAnsweringRule" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-UMPhoneSession" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-UMMailboxConfiguration" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-UMCallAnsweringRule" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Write-AdminAuditLog" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Disable-InboxRule" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Enable-InboxRule" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Remove-InboxRule" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MailboxRegionalConfiguration" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-MailboxRegionalConfiguration" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-UMMailboxPIN" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-MailboxSpellingConfiguration" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-CalendarProcessing" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Remove-ActiveSyncDevice" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\New-MailMessage" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-TextMessagingAccount" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MessageClassification" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MessageCategory" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MailboxSpellingConfiguration" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MailboxMessageConfiguration" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MailboxJunkEmailConfiguration" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MailboxCalendarFolder" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MailboxCalendarConfiguration" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MailboxAutoReplyConfiguration" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-InboxRule" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-CalendarProcessing" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-CalendarNotification" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-ActiveSyncDeviceStatistics" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-ActiveSyncDevice" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Clear-ActiveSyncDevice" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-CASMailbox" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MobileDevice" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-Clutter" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-Clutter" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-MessageRecallResult" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-SenderPermission" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Reset-EventsFromEmailBlockStatus" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Get-EventsFromEmailConfiguration" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Set-EventsFromEmailConfiguration" -Confirm:$false
Remove-ManagementRoleEntry -Identity "ICE-UserPhoto\Test-MailboxAssistant" -Confirm:$false

Wenn man sich danach die Rolle anschaut sind nur noch die vier cmdlets drin

Get-ManagementRoleEntry -Identity "ICE-UserPhoto\*"

Nun muss die Rollengruppe noch erstellt werden um die Rolle einem Benutzer oder Gruppe (Mail Enabled Universal Security Group) zuzuweisen

Grüsse
Andres Bohren

posted @ Friday, July 24, 2020 1:37 PM | Filed Under [ Exchange ]

Saturday, July 18, 2020

How AAD Connect calculates ImmutableId

Hallo zusammen,

Wie die ImmutableId vom AAD Objekt mit dem synchronisierten Objekt im Active Directory zusammenhängt, habe ich in untenstehender Grafik versucht zu verdeutlichen.

Aber alles mal der Reihe nach....

Bis zur Version 1.1.486.0 wurde von AAD Connect das AD Attribut objectGUID als sourceAnchor verwendet. Ab der Version 1.1.542.0 und später wird das AD Attribut ms-DS-ConsistencyGuid als sourceAnchor verwendet. Beim Upgrade gab es ein entsprechendes Prozedere um den sourceAnchor anzupassen.

Azure AD Connect: Design concepts
https://docs.microsoft.com/en-us/azure/active-directory/hybrid/plan-connect-design-concepts

Wir schauen uns mal die objectGUID von meinem Active Directory User Objekt an.

In der HEX Ansicht sieht das so aus

Wir vergleichen das mit dem AD Attribut ms-DS-ConsistencyGuid ebenfalls in der HEX Ansicht. Wir stellen fest, der Wert ist identitisch und wurde vom AAD Connect so eingetragen.

Hier ein Screenshot vom AAD Connect. Man sieht, dass der Source Anchor auf das AD Attribut ms-DS-ConsistencyGuid festgelegt ist.

Einen User findet man mit dem AcitveDirectory PowerShell Modul auch über die objectGUID

Get-ADUser -Identity <objectGUID>

Die immutableId im Azure Active Directory ist im Prinzip nichts anderes als eine Base64 Encoding des Attributes objectGuid, bziehungsweise vom Attribut ms-DS-ConsistencyGuid.

$userUPN = "a.bohren@icewolf.ch"

$guid = [guid]((Get-ADUser -LdapFilter "(userPrincipalName=$userUPN)").objectGuid)

$immutableId = [System.Convert]::ToBase64String($guid.ToByteArray())

$immutableId

Schauen wir uns mal den Azure Active Directory mit dem MSOnline PowerShell Module an.

Get-Msoluser -UserPrincipalName <UPN> | fl Name, *id* 

Die objectGUID lässt sich auch aus der ImmutableId mittels Base64 Decoding errechnen.

$AADUser = Get-MsolUser -UserPrincipalName a.bohren@icewolf.ch

$ImmutableID = $AADUser.ImmutableID

$guid =([GUID][System.Convert]::FromBase64String($ImmutableID)).Guid

$guid

Grüsse
Andres Bohren

posted @ Saturday, July 18, 2020 10:40 AM | Filed Under [ O365 Azure ]

Wednesday, July 15, 2020

Azure Storage / Azure Storage Explorer / AzCopy

Hallo zusammen,

In diesem Blog Artikel habe ich mich etwas mit Azure Storage, dem Azure Storage Explorer und dem Command Line Tool AzCopy befasst.

Erstellen vom Azure Storage Account

In den folgenden Screenshots wird der Storage Account im Azure Portal erstellt https://portal.azure.com

Azure Storage Explorer

Azure Storage Explorer
https://azure.microsoft.com/en-us/features/storage-explorer/

Ist schon eine Weile her, dass ich den Storage Explorer das letzte mal benutzt habe. Da hat sich einigest getan.

Man kann sich mit verschiedenen Möglichkeiten einloggen. Ich habe mich dafür entschieden, das Azure Konto hinzuzufügen.

Habe dann einen Container "icewolf-container" hizugefügt. Dann kann man ein File hochladen.

Nach dem Hochladen kann man sich den AzCopy Befehl herunterladen.

Im Azure Portal gibt es schon seit längerer Zeit den Storage Explorer. Eine Art Web Version vom Storage Explorer.

AzCopy

Get started with AzCopy
https://docs.microsoft.com/en-us/azure/storage/common/storage-use-azcopy-v10

azcopy login 

Mit folgendem Befehl kann man ein File hochladen.

azcopy copy '<local-file-path>' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-name>'

Ich habe hier den AZBefehl aus dem Storage Explorer benutzt um ein File hochzuladen

Grüsse
Andres Bohren

posted @ Wednesday, July 15, 2020 11:11 PM | Filed Under [ Azure ]

SMB security enhancements

Hallo zusammen,

Beim Server Message Block (SMB) Protokoll handelt es sich um ein Netzwerkprotokoll für Datei und Druckerdienste. Seit Windows 8 / Windows 2012 wird das SMB v3 Protokoll untersützt, welches auch End-to-End Encryption unterstützt.

SMB security enhancements
https://docs.microsoft.com/en-us/windows-server/storage/file-server/smb-security

Verschlüsselter Zugriff auf SMB Shares?
https://www.advact.ch/advact/news/details/verschluesselter-zugriff-auf-smb-shares?li_fat_id=97cf6029-ad33-46d3-9d30-efd65a358861

Die SMB Server Einstellungen kann man sich mit folgendem Befehl anschauen

Get-SmbServerConfiguration

Um die SMB Encryption auf dem ganzen Server zu aktivieren wird folgender PowerShell Befehl benutzt

Set-SmbServerConfiguration –EncryptData $true

Hier ein Beispiel eines Windows Server 2012

Die Shares und die Konfiguration der einzelnen Shares kann man sich mit folgenden Befehlen anschauen

get-smbshare
get-smbshare -name <ShareName>| fl *
Um die Encryption nur auf einem Share zu aktivieren nutzt man folgenden Befehl
Set-SmbShare –Name <sharename> -EncryptData $true

Hier ein Beispiel eines Windows Server 2016

Grüsse
Andres Bohren

posted @ Wednesday, July 15, 2020 9:27 PM | Filed Under [ Windows ]

Keep your Jabra Headset Firmware up to date with Jabra Direct

Hallo zusammen,

Mit Skype for Business und Teams, sowie anderen VoIP und Meeting Technologien, wird ein gutes Headset immer wie wichtiger. Um bestmögliche Qualität während Anrufen und Meetings zu erhalten, muss es sich um zertifizierte Hardware handeln, denn diese muss gewisse Qualitätskriterien erfüllen.

Introducing new Teams certified devices
https://techcommunity.microsoft.com/t5/microsoft-teams-blog/introducing-new-teams-certified-devices/ba-p/1345703

Skype for Business and Teams certification program
https://docs.microsoft.com/en-us/SkypeForBusiness/certification/overview

Auserdem sollte man in regelmässigen Abständen die Firmware aktualiseren

https://www.jabra.com.de/software-and-services/jabra-direct

Grüsse
Andres Bohren

posted @ Wednesday, July 15, 2020 8:37 PM | Filed Under [ Hardware ]

Office Online Server Security Update KB4484451

Hallo zusammen,

Am gestrigen Microsoft Patchday gab es mal wieder ein Secuity Update für Office Online Server.

Beschreibung des Sicherheitsupdates für Office Online Server: 14. Juli 2020

https://support.microsoft.com/de-ch/help/4484451/security-update-for-office-online-server-july-14-2020

 

Security Update for Microsoft Office Online Server (KB4484451)

https://www.microsoft.com/en-us/download/details.aspx?id=101512

Grüsse
Andres Bohren

posted @ Wednesday, July 15, 2020 8:20 PM | Filed Under [ Office ]

Skype for Business Server 2015 - Juli 2020 update

Hallo zusammen,

Gestern war Microsoft Patchday und es wurde ein Security Update für Skype for Business Server 2015 CU 8 veröffentlicht.

Description of the security update for Skype for Business Server 2015 CU 8: July 14, 2020

https://support.microsoft.com/de-ch/help/4571333/description-of-the-security-update-for-skype-for-business-server-2015

 

Skype for Business Server 2015 Cumulative Update KB3061064

https://www.microsoft.com/en-us/download/details.aspx?id=47690

Installation auf einem Standardserver

Zuerst müssen die Services gestoppt werden

Stop-CsWindowsService

Stop-Service w3svc

Ausführen des SkypeServerUpdateInstaller.exe

Anschlissend müssen die Services wieder gestartet werden 

Start-CsWindowsService

Start-Service w3svc

Nun müssen noch die Datenbanken aktualisiert werden

Install-CsDatabase -Update -LocalDatabases

Grüsse
Andres Bohren

posted @ Wednesday, July 15, 2020 7:46 PM | Filed Under [ UM/Mobile ]

Powered by:
Powered By Subtext Powered By ASP.NET