K.inc Tec Blog

Mein kleines EDV Logbuch

Category: Windows (Page 1 of 7)

MS Exchange – Freigegebenes Postfach – Kopie einer Nachricht im Gesendet-Ordner speichern

https://learn.microsoft.com/de-de/exchange/troubleshoot/user-and-shared-mailboxes/sent-mail-is-not-saved

Führen Sie mit Exchange PowerShell für E-Mails, die mit dem freigegebenen Postfach als Absender gesendet werden, das folgende Cmdlet aus:
PowerShell

set-mailbox <mailboxname> -MessageCopyForSentAsEnabled $True

Führen Sie mit Exchange PowerShell für E-Mails, die im Namen des freigegebenen Postfachs gesendet werden, das folgende Cmdlet aus:
PowerShell

set-mailbox <mailboxname> -MessageCopyForSendOnBehalfEnabled $True

Outlook / Exchange Postfach – Private Mails bei Vollzugriff anzeigen

Wird ein Exchange Postfach einem anderen Benutzer per Vollzugriff freigegeben, zeigt Outlook trotzdem als privat gekennzeichnete Mails nicht an. Das macht Sinn, da oft die Postfächer der Vorgesetzten für Mitarbeiter freigegeben werden. Die Vorgesetzten erhalten somit die Möglichkeit den Mitarbeitern bestimmten Mailverkehr vorzuenthalten.

Allerdings muss gesagt werden, dass nur Outlook diese Anzeige unterbeindet. Über OWA und bei anderen Mailclients werden auch die privaten Mails angezeigt. Man sollte sich also nicht blind auf diese Funktion verlassen.

Nun gibt es Fälle, in denen auch die als privat gekennzeichneten Mails eines Postfachs angezeigt werden sollen. Z.B. bei einem zentralen Postfach für die Personalabteilung, in der Bewerbungen eingehen. Diese gehen oft als privat gekennzeichnet ein.

Hierzu muss ein sogenanntes Delegate für einen Benutzer definiert werden. Das geht am besten mit einem PowerShell Script. Besonders, wenn das Delegate für mehere Benutzer eingerichtet werden soll.

Dazu habe ich 2 Blogeinträge gefunden. In folgendem Post muss zuvor die EWS Managed API auf einem Client installiert werden.

https://gsexdev.blogspot.com/2009/04/add-delegates-to-mailbox-with.html

In diesem Blog ist das Beispiel abgeändert und kann direkt auf dem Exchange Server über die Exchange Console ausgeführt werden:

https://www.windowspro.de/tipp/exchange-private-nachrichten-freigabepostfach-sichtbar-machen

Hier das Script:

ACHTUNG: in dem Skript wird versucht die Mailadresse des angemeldeten Benutzers auszulesen und damit ein autodiscover durchzuführen. Sollte der Admin, mit dem das Skript ausgeführt wird, keine Mailadresse haben, kann man irgendeine existierende Mailadresse aus dem Unternehmen nutzen: $service.AutodiscoverUrl(„irgendwas@domain.de“).

$mbtoDelegate = "sharedMailbox@domain.de"
$delegatetoAdd = "delegateMailbox@domain.de"

# ACHTUNG!!! Je nachdem, auf welchem Laufwerk der Exchange installiert wurde,
# muss der Pfad zur DLL angepasst werden!!!

$dllpath = "D:\exchange\Bin\Microsoft.Exchange.WebServices.dll"

[void][Reflection.Assembly]::LoadFile($dllpath)

$service = new-object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2007_SP1)
$windowsIdentity = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$sidbind = "LDAP://<SID=" + $windowsIdentity.user.Value.ToString() + ">"
$aceuser = [ADSI]$sidbind

$service.AutodiscoverUrl($aceuser.mail.ToString())
$service.ImpersonatedUserId = new-object Microsoft.Exchange.WebServices.Data.ImpersonatedUserId([Microsoft.Exchange.WebServices.Data.ConnectingIdType]::SmtpAddress, $mbtoDelegate);

$mbMailbox = new-object Microsoft.Exchange.WebServices.Data.Mailbox($mbtoDelegate)
$dgUser = new-object Microsoft.Exchange.WebServices.Data.DelegateUser($delegatetoAdd)
$dgUser.ViewPrivateItems = $true
$dgUser.ReceiveCopiesOfMeetingMessages = $false
$dgUser.Permissions.CalendarFolderPermissionLevel = [Microsoft.Exchange.WebServices.Data.DelegateFolderPermissionLevel]::Editor
$dgUser.Permissions.InboxFolderPermissionLevel = [Microsoft.Exchange.WebServices.Data.DelegateFolderPermissionLevel]::Reviewer

$dgArray = new-object Microsoft.Exchange.WebServices.Data.DelegateUser[] 1
$dgArray[0] = $dgUser

$service.AddDelegates($mbMailbox, [Microsoft.Exchange.WebServices.Data.MeetingRequestsDeliveryScope]::DelegatesAndMe, $dgArray);


Windows Dienste mit Benutzerrechten starten und stoppen

Gunnar Haslinger hat dazu einen guten Beitrag, der keine Fragen offen lässt:

https://hitco.at/blog/windows-dienste-mit-benutzer-rechten-starten-und-stoppen/

Exchange Health Checker

Den aktuellen Exchange Health Checker gibt es imme rhier:

https://aka.ms/ExchangeHealthChecker

Event Log – Wichtige Abfragen

Konfiguration

Wichtig ist, dass die Logs auch verfügbar sind, wenn man sie braucht. Das geht entweder über die Retention Policy pro Server und Log oder über eine SIEM-Lösung (Security Information and Event Management). Ein SIEM-Client schickt dabei alle relevanten Logs an einen zentralen Server. Ähnlich wie bei Remote Syslog. Ein SIEM kann normalerweise auch Syslogs direkt empfangen und verarbeiten.

Retention Policy

Um hier alle Logs nach einer Vorgabe zu konfigurieren, sollte man die Retention Policy per PowerShell Script ausrollen. Anleitung hierfür folgt.

SIEM

Abschnitt folgt.

Wer hat Software installiert?

im Application Log nach dem Event 11707 filtern:

Windows nicht löschbare Datei löschen

Manchmal erlebt man mit Windows kuriose Dinge. Admins die schon länger dabei sind kennen es noch von früher. Eine Datei lässt sich nicht löschen. Meistens liegt das daran, das sich die Datei durch einen Prozess im Zugriff befindet.

Es gibt aber auch den Fall, dass kein Prozess mehr auf die Datei zugreift. Irgendetwas im Dateisystem ist korrupt. Man erhält die Meldung die Datei wurde nicht gefunden oder bereits verschoben.

Früher konnte man sich über dir /X den 8.3 Namen der Datei anzeigen lassen und darüber die Datei löschen. Nun schalten Admins an Fileservern diese 8.3 Namen gerne ab.

HKLM\System\CurrentControlSet\Control\FileSystem\NtfsDisable8Dot3NameCreation=1 [DWORD] 

Weil das angeblich die Performance verbessert:

https://helgeklein.com/blog/why-disabling-the-creation-of-83-dos-file-names-will-not-improve-performance-or-will-it/

So und wie löscht man nun diese korrupten Dateien? So:

rd /s \\?\C:\Documents and Settings\User\Desktop\Annoying Folder.

AD Konto und Keytab für Single Sign On erzeugen

Eine KEYTAB-Datei wird verwendet, um einen Principal auf einem Host für Kerberos zu authentifizieren, ohne dass Benutzer eingreifen müssen (SSO). Die Datei ist verschlüsselt, sollte aber gut gesichert sein, da jeder, der Zugriff auf die Datei hat, als dieser Principal fungieren kann.

Mit einer solchen Datei kann also zum Beispiel der Zugang zu einem Webdienst über AD-Konten gesteuert werden. Sind die Brwoser entsprechend konfiguriert, können AD-Benutzer Webdienste sogar ohne die Eingabe von Zugangsdaten über Single Sign On (SSO) nutzen.

Weiterlesen

Adminrechte trotz Point and Print nach Printingnightmare

Microsoft hat sich dazu endlich mal geäußert. Die Restriktionen fingen wegen der Printingnightmare-Lücke an. Microsoft hat einfach auch Adminrechte für die Treiberinstallation verlangt, obwohl Point and Print konfiguriert ist und die Treiberquellen damit auf die Druckserver beschränkt sind. Das kam mit dem 2. Sicherheitsupdate zu Printingnightmare. Dann haben die einen Registry-Wert eingeführt, mit dem man diese Einschränkung wieder aufheben kann. Und den Wert haben die nun endlich auch mal verraten.

Weiterlesen

Passwort Hashes aus Active Directory auslesen

https://www.langlitz-it.de/?p=1592

Die Passwort Hashes der AD User auszulesen, stellt sich leichter dar als vermutet. Natürlich sind diese Hashes nicht in Klartext umzuwandeln, aber diese als Hashes wieder in eine neue/andere Umgebung einzulesen, sollte auf diesem Wege möglich sein.

Zunächst wird ein Abbild der NTDS.dit Datenbank benötigt, in der diese Hashes abgelegt sind. Dies lässt sich über NTDSUtil realisieren. Der entsprechende Befehl lautet:

ntdsutil “ac i ntds” “ifm” “create full c:\temp” q q 

Anstelle von C:\Temp können Sie natürlich jedes beliebige Verzeichnis wählen.

Nach Abschluss dieses Snapshots sehen Sie im Temp (oder Ihrem eigenen) Verzeichnis zwei Unterverzeichnisse.

Im Verzeichnis Active Directory befindet sich der Snapshot der NTDS.dit. Im Verzeichnis registry befindet sich unter anderem der sogenannte Boot Key, den Sie zum Entschlüssen benötigen. Die vorhandene Kopie der NTDS.dit können Sie nun mit Get-ADDBAccount aus den DSInternal Tools auslesen. Auf die Beschreibung der Installation der DSInternal Tools verzichte ich hier. Diese sollte im angegebenen Link hinreichend beschrieben sein.

Nach erfolgreicher Einrichtung der DSInternals müssen Sie zunächst den Boot Key auslesen.

$key = Get-BootKey -SystemHivePath ‘C:\Temp\registry\SYSTEM’

Anschließend können Sie unter Verwendung dieses Keys die Hashes erhalten und z.B. in einer TXT ablegen.

Get-ADDBAccount -all -DBPath C:\_Marco\NTDS\ntds.dit -BootKey $key |fl Samaccountname,displayname,*hash* |Format-Custom -View HashcatNT |Out-File C:\_Marco\NTDS\hashes.txt -Encoding ASCII

Damit werden alle User und deren Passwort Hashes in der Datei hashes.txt gespeichert.

Sie können auch nach einzelnen Usern suchen.

Get-ADDBAccount -samaccountname name -DBPath C:\_Marco\NTDS\ntds.dit -BootKey $key |fl samaccountname,displayname,*hash* |Format-Custom -View HashcatNT 

Veraltete Einträge aus GPO’s entfernen

GPO Richtlinien werden als Registry Keys auf die zu verwaltenden Systeme ausgerollt. Mit der Zeit kann es vorkommen, dass Einstellungen in Windows oder anderer Software wegfallen (Office, Chrome, etc..). Wenn man nun die neuen ADMX-Dateien nutzt, kann e szu Verwaisten Einträgen in den Gruppenrichtlinien kommen. Das passiert gerne auch in Verbindung mit dem Central Store. Schaut man sich die Einstellungen einer solchen GPO an, steht ganz unten unter „Zusätzl. Reg.-einst.“:

„Office 2016 Für einige Einstellungen konnten keine Anzeigenamen gefunden werden. Eine Aktualisierung der von der Gruppenrichtlinienverwaltung verwendeten ADM-Dateien behebt möglicherweise das Problem.“

Das bedeutet zu der gesetzten Policy wird keine Beschreibung mehr in den aktuell genutzten ADMX-Dateien gefunden.

Man kann das aber mit PowerShell beheben und einzelne Richtlinien aus einer GPO entfernen (hatte so einen Fall bei Office365):

Remove-GPRegistryValue -Name "Office365" -Key "HKCU\Software\Policies\Microsoft\office\16.0\common\general" -ValueName enablepublishtodocs

Page 1 of 7

© 2016 kinc.de