Stichwort Suche

Autor: alpina27

Fileserver Struktur Cross Forest

Um eine Fileserver Struktur zu exportieren und importieren wie folgt vorgehen:

1) Auf dem Quell Fileserver export erstellen

dir /b > c:\temp\export-folder.txt

2) Auf dem Ziel Fileserver import durchführen

Exportierte .TXT anpassen und als .CSV speichern

Name
Dir1
Dir2
Dir3
Dir4

danach

Set-Location “E:\Share\”

$Folders = Import-Csv c:\temp\export-folder.csv

ForEach ($Folder in $Folders) {

New-Item $Folder.Name -type directory
}

Domänen Benutzer Kennwort Ablauf Powershell

Mit folgendem Befehl kann überprüft werden, wann die Kennwörter bei den Benutzern ablaufen:

Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} –Properties “DisplayName”, “msDS-UserPasswordExpiryTimeComputed” | Select-Object -Property “Displayname”,@{Name=“ExpiryDate”;Expression={[datetime]::FromFileTime($_.“msDS-UserPasswordExpiryTimeComputed”)}}

DFS Namespace Cross Forest migration

Um einen vorhanden DFS Namespace eins zu eins in einen neuen Forest zu übernehmen folgende Schritte ausführen:

1) Export Namespace aus der Quelle

“dfsutil /root:\\domain.com\rootname /export:c:\temp\exportedroot.txt /verbose”

Das .TXT File sieht wie folgt aus

<Root Name=”\\domain\Public” State=”1? Timeout=”300? Attributes=”64? >
<Target Server=”SERVERROOT1? Folder=”Public” State=”2? />
<Target Server=”SERVERROOT2? Folder=”Public” State=”2? />

<Link Name=”Accounting” State=”1? Timeout=”1800? >
<Target Server=”fs1? Folder=”accounting” State=”2? />
<Target Server=”fs2? Folder=”accounting” State=”2? />
</Link>

<Link Name=”utilities” State=”1? Timeout=”1800? >
<Target Server=”fs1? Folder=”utilities” State=”2? />
</Link>

<Link Name=”documentation” State=”1? Timeout=”1800? >
<Target Server=”fs2? Folder=”documentation” State=”2? />
</Link>

</Root>

2) .TXT für das Ziel anpassen und mit einem anderen Namen speichern.

<Root Name=”\\domainNEU\Public” State=”1? Timeout=”300? Attributes=”64? >

3) im Ziel DFS Namespace erstellen

Ist das Ziel noch nicht vorhanden erscheint eine Fehlermeldung bei dem Versuch die alte Konfiguration zu importieren:

System error 1168 has occurred.
Element not found.

4) .TXT importieren

Achtung! Der Import Vorgang überschreibt die Konfiguration im Ziel!

dfsutil /root:\\domainNEU.com\rootname /import: rootmodified.txt /set /verbose

Wenn alles geklappt hat erscheint eine Übersicht mit dem Ergebnis.

 

Zu beachten:
In der Coexistenz Phase zwischen zwei Forests in der DFS-Namespace Verwaltung den Ordnerziel Pfad mit FQDN angeben. Anderster wird nur der Netbios Name genutzt – dann klappt der Zugriff nicht korrekt.

 

Im Detail auch nachzulesen unter https://blogs.technet.microsoft.com/askds/2008/01/15/migrating-your-dfs-namespaces-in-three-sorta-easy-steps/

 

 

Windows Datendeduplizierung deaktivieren

Um auf einem Laufwerk eine vorhanden Datendeduplizierung zu deaktivieren folgende Schritte auf dem Laufwerk ausführen:

1) komplettes Laufwerk als Ausnahme hinterlegen

2) Volumes anzeigen lassen:

Get-DedupVolume

3) “End”-Duplizierung starten

Achtung dieser Vorgang kann einige Zeit in Anspruch nehmen. Zudem muss ausreichend Speicherplatz zur Verfügung stehen!

Start-DedupJob -Full -Path e: -Type Unoptimization

Exchange Cross Forest Free Busy Error 2010 / 2016

Bei der Outlook Free Busy Abfrage zwischen Exchange 2010 SP3 CU19 in Domäne A zu Exchange 2016 CU8 in Domäne B gab es folgende Fehler:

 

Auf dem Exchange 2010:

Quelle: MSExchange Availability

Ereignis-ID: 4002

 

Prozess ‘4932’: Fehler bei ‘ProxyWebRequest CrossForest from S-1-5-21-3386154569-1807573594-3971606385-1119 to https://owa-q.bema-con.de/EWS/Exchange.asmx’. Anrufer-SIDs: NetworkCredentials. Die zurückgegebene Ausnahme ist ‘Microsoft.Exchange.InfoWorker.Common.Availability.ProxyWebRequestProcessingException: System.Web.Services.Protocols.SoapException: Interner Serverfehler. Fehler bei diesem Vorgang.
bei System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
bei System.Web.Services.Protocols.SoapHttpClientProtocol.EndInvoke(IAsyncResult asyncResult)
bei Microsoft.Exchange.InfoWorker.Common.Availability.Proxy.Service.EndGetUserAvailability(IAsyncResult asyncResult)
bei Microsoft.Exchange.InfoWorker.Common.Availability.FreeBusyApplication.EndProxyWebRequest(ProxyWebRequest proxyWebRequest, QueryList queryList, Service service, IAsyncResult asyncResult)
bei Microsoft.Exchange.InfoWorker.Common.Availability.ProxyWebRequest.EndInvoke(IAsyncResult asyncResult)
bei Microsoft.Exchange.InfoWorker.Common.Availability.AsyncWebRequest.EndInvokeWithErrorHandling(). The request information is ProxyWebRequest type = CrossForest, url = https://owa-q.bema-con.de/EWS/Exchange.asmx
Mailbox list = <test mig>SMTP:test.mig@migbema-con.de, Parameters: windowStart = 26.02.2018 00:00:00, windowEnd = 09.04.2018 00:00:00, MergedFBInterval = 30, RequestedView = MergedOnly
. —> System.Web.Services.Protocols.SoapException: Interner Serverfehler. Fehler bei diesem Vorgang.
bei System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
bei System.Web.Services.Protocols.SoapHttpClientProtocol.EndInvoke(IAsyncResult asyncResult)
bei Microsoft.Exchange.InfoWorker.Common.Availability.Proxy.Service.EndGetUserAvailability(IAsyncResult asyncResult)
bei Microsoft.Exchange.InfoWorker.Common.Availability.FreeBusyApplication.EndProxyWebRequest(ProxyWebRequest proxyWebRequest, QueryList queryList, Service service, IAsyncResult asyncResult)
bei Microsoft.Exchange.InfoWorker.Common.Availability.ProxyWebRequest.EndInvoke(IAsyncResult asyncResult)
bei Microsoft.Exchange.InfoWorker.Common.Availability.AsyncWebRequest.EndInvokeWithErrorHandling()
— Ende der internen Ausnahmestapelüberwachung —
. Name of the server where exception originated: OLD-EX01′. Stellen Sie sicher, dass der Active Directory-Standort/die Active Directory-Gesamtstruktur mit dem Benutzerpostfach mindestens einen lokalen Exchange 2010-Server aufweist, der den Verfügbarkeitsdienst ausführt. Aktivieren Sie die Protokollierung für den Verfügbarkeitsdienst, und prüfen Sie die grundlegende Netzwerkkonnektivität.

 

In der Outlook Protokollierung war folgender Fehler in dem Free Busy Log sichtbar:

2018/03/19 13:27:27.245: Getting ASURL

2018/03/19 13:27:27.245: URL returned from cached autodiscover: https://owa-old.bema-con.de/EWS/Exchange.asmx

2018/03/19 13:27:27.245: Request to URL: https://owa-old.bema-con.de/EWS/Exchange.asmx

2018/03/19 13:27:27.245: Request action: http://schemas.microsoft.com/exchange/services/2006/messages/GetUserAvailability

2018/03/19 13:27:27.245: Request XML: <?xml version=”1.0″?>

<q:Envelope xmlns:q=”http://schemas.xmlsoap.org/soap/envelope/”><q:Header><wsa:MessageID xmlns:wsa=”http://www.w3.org/2005/08/addressing/”>urn:uuid:146BDD7C-11EA-4B3E-BD47-555CDF88A5A3</wsa:MessageID></q:Header><q:Body xmlns:wsa=”http://www.w3.org/2005/08/addressing/”><ex12m:GetUserAvailabilityRequest xmlns:ex12m=”http://schemas.microsoft.com/exchange/services/2006/messages” xmlns:ex12t=”http://schemas.microsoft.com/exchange/services/2006/types”><ex12t:TimeZone><ex12t:Bias>-60</ex12t:Bias><ex12t:StandardTime><ex12t:Bias>0</ex12t:Bias><ex12t:Time>03:00:00</ex12t:Time><ex12t:DayOrder>5</ex12t:DayOrder><ex12t:Month>10</ex12t:Month><ex12t:DayOfWeek>Sunday</ex12t:DayOfWeek></ex12t:StandardTime><ex12t:DaylightTime><ex12t:Bias>-60</ex12t:Bias><ex12t:Time>02:00:00</ex12t:Time><ex12t:DayOrder>5</ex12t:DayOrder><ex12t:Month>3</ex12t:Month><ex12t:DayOfWeek>Sunday</ex12t:DayOfWeek></ex12t:DaylightTime></ex12t:TimeZone><ex12m:MailboxDataArray><ex12t:MailboxData><ex12t:Email><ex12t:Address>test.mig@migbema-con.de</ex12t:Address><ex12t:RoutingType>SMTP</ex12t:RoutingType></ex12t:Email><ex12t:AttendeeType>Required</ex12t:AttendeeType></ex12t:MailboxData></ex12m:MailboxDataArray><ex12t:FreeBusyViewOptions><ex12t:TimeWindow><ex12t:StartTime>2018-03-03T14:00:00</ex12t:StartTime><ex12t:EndTime>2018-04-02T14:00:00</ex12t:EndTime></ex12t:TimeWindow><ex12t:MergedFreeBusyIntervalInMinutes>30</ex12t:MergedFreeBusyIntervalInMinutes><ex12t:RequestedView>Detailed</ex12t:RequestedView></ex12t:FreeBusyViewOptions></ex12m:GetUserAvailabilityRequest></q:Body></q:Envelope>

2018/03/19 13:27:27.245: Sending request

2018/03/19 13:27:27.401: Request sent

2018/03/19 13:27:27.401: Response error code: 00000000

2018/03/19 13:27:27.401: HTTP status code: 200

2018/03/19 13:27:27.401: XML response:<?xml version=”1.0″ encoding=”utf-8″?><s:Envelope xmlns:s=”http://schemas.xmlsoap.org/soap/envelope/”><s:Header><h:ServerVersionInfo MajorVersion=”14″ MinorVersion=”3″ MajorBuildNumber=”382″ MinorBuildNumber=”0″ xmlns:h=”http://schemas.microsoft.com/exchange/services/2006/types” xmlns=”http://schemas.microsoft.com/exchange/services/2006/types” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema”/></s:Header><s:Body xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema”><GetUserAvailabilityResponse xmlns=”http://schemas.microsoft.com/exchange/services/2006/messages”><FreeBusyResponseArray><FreeBusyResponse><ResponseMessage ResponseClass=”Error”><MessageText>System.Web.Services.Protocols.SoapException: Interner Serverfehler. Fehler bei diesem Vorgang.&#xD;
bei System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)&#xD;
bei System.Web.Services.Protocols.SoapHttpClientProtocol.EndInvoke(IAsyncResult asyncResult)&#xD;
bei Microsoft.Exchange.InfoWorker.Common.Availability.Proxy.Service.EndGetUserAvailability(IAsyncResult asyncResult)&#xD;
bei Microsoft.Exchange.InfoWorker.Common.Availability.FreeBusyApplication.EndProxyWebRequest(ProxyWebRequest proxyWebRequest, QueryList queryList, Service service, IAsyncResult asyncResult)&#xD;
bei Microsoft.Exchange.InfoWorker.Common.Availability.ProxyWebRequest.EndInvoke(IAsyncResult asyncResult)&#xD;
bei Microsoft.Exchange.InfoWorker.Common.Availability.AsyncWebRequest.EndInvokeWithErrorHandling(). The request information is ProxyWebRequest type = CrossForest, url = https://owa-q.bema-con.de/EWS/Exchange.asmx
Mailbox list = &lt;test mig&gt;SMTP:test.mig@migbema-con.de, Parameters: windowStart = 03.03.2018 14:00:00, windowEnd = 02.04.2018 14:00:00, MergedFBInterval = 30, RequestedView = Detailed
., inner exception: Interner Serverfehler. Fehler bei diesem Vorgang.</MessageText><ResponseCode>ErrorProxyRequestProcessingFailed</ResponseCode><DescriptiveLinkKey>0</DescriptiveLinkKey><MessageXml><ExceptionType xmlns=”http://schemas.microsoft.com/exchange/services/2006/errors”>Microsoft.Exchange.InfoWorker.Common.Availability.ProxyWebRequestProcessingException</ExceptionType><ExceptionCode xmlns=”http://schemas.microsoft.com/exchange/services/2006/errors”>5016</ExceptionCode><ExceptionServerName xmlns=”http://schemas.microsoft.com/exchange/services/2006/errors”>OLD-EX01</ExceptionServerName></MessageXml></ResponseMessage><FreeBusyView><FreeBusyViewType xmlns=”http://schemas.microsoft.com/exchange/services/2006/types”>None</FreeBusyViewType></FreeBusyView></FreeBusyResponse></FreeBusyResponseArray></GetUserAvailabilityResponse></s:Body></s:Envelope>

2018/03/19 13:27:27.401: XML response processed successfully

 

 

Dies ist scheinbar ein Bug in Exchange 2016 CU8. Nach der Installation von Exchange 2016 CU7 funktioniert die Cross Forest Free Busy Abfrage ohne Probleme.

 

 

Exchange 2016 NET Framework 4.7 deinstallieren

Hat sich ausversehen mit einem Windows Update NET Framework 4.7 auf dem Exchange 2016 installiert, muss dieses aktuell wieder entfernt werden, da diese Version noch nicht supportet ist.

Eine aktuelle NET Framework Support Matrix findet sich hier:

https://technet.microsoft.com/en-us/library/ff728623(v=exchg.150).aspx

 

NET Framework Version kann über die Registry ausgelesen werden:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full

Version Wert des Versions-DWORD
.NET Framework 4.5 378389
.NET Framework 4.5.1 installiert mit Windows 8.1 378675
.NET Framework 4.5.1 installiert unter Windows 8, Windows 7 SP1 oder Windows Vista SP2 378758
.NET Framework 4.5.2 379893
.NET Framework 4.6, installiert unter Windows 10 393295
.NET Framework 4.6, installiert auf allen anderen Windows-Betriebssystemversionen 393297
.NET Framework 4.6.1, installiert unter Windows 10 394254
.NET Framework 4.6.1, installiert auf allen anderen Windows-Betriebssystemversionen 394271
.NET Framework 4.6.2, installiert unter Windows 10 Anniversary Update 394802
.NET Framework 4.6.2, installiert auf allen anderen Windows-Betriebssystemversionen 394806
.NET Framework 4.7 installiert unter Windows 10 Creators Update 460798
.NET Framework 4.7 installiert auf allen anderen Windows-Betriebssystemversionen 460805
.NET Framework 4.7.1 installiert unter Windows 10 Creators Update 461308
.NET Framework 4.7.1, installiert auf allen anderen Windows-Betriebssystemversionen 461310

 

Vorgehen:

1) Aktuelle Version ermitteln

2) Offline installer der später gewünschten Version herunterladen

z.B. NET Framework 4.6.2

https://support.microsoft.com/en-us/help/3151800/the-net-framework-4-6-2-offline-installer-for-windows

3) Falls der Server seit der Installation von NET Framework 4.7 noch nicht neu gestartet wurde, dies noch tun

4) Exchange Dienste anhalten

(Test-ServiceHealth).ServicesRunning | %{Stop-Service $_ -Force}

5) Überprüfen, ob alle Dienste aus sind, falls nicht händisch ausschalten..

6) Windows Update, welches NET Framework 4.7 enthält deinstallieren

  • On Windows 7 SP1 / Windows Server 2008 R2 SP1, you will see the Microsoft .NET Framework 4.7 as an installed product under Programs and Features in Control Panel.
  • On Windows Server 2012 you can find this as Update for Microsoft Windows (KB3186505) under Installed Updates in Control Panel.
  • On Windows 8.1 / Windows Server 2012 R2 you can find this as Update for Microsoft Windows (KB3186539) under Installed Updates in Control Panel.
  • On Windows 10 Anniversary Update and Windows Server 2016 you can find this as Update for Microsoft Windows (KB3186568) under Installed Updates in Control Panel.

7) Server neu starten

8) Exchange Dienste anhalten

(Test-ServiceHealth).ServicesRunning | %{Stop-Service $_ -Force}

9) NET Framework Offline installer ausführen und NET Framework reparatur Installation starten

Über die normale Setup.exe erhalte ich nur die Meldung das NET Framework 4.6.2 schon installiert ist, aber ich kann keine reparatur Installation starten.

Daher muss die Kommandozeile her halten:

NET Framework repair installation cmd:

10) Server neustart, Fertig

 

Quellen zum vergleichen:

https://blogs.technet.microsoft.com/exchange/2017/06/13/net-framework-4-7-and-exchange-server/

Domain Controller SYSVOL FRS zu DFRS

Microsoft unterstützt für Domäne Controller basierend auf der Version Windows Server 2016 Build 1709 nicht mehr länger FRS ( File Replication Service ). Dieser wird genutzt das SYSVOL Share zu replizieren.

https://support.microsoft.com/en-us/help/4025991/windows-server-version-1709-no-longer-supports-frs

Stattdessen wird zukünftig nur noch DFRS unterstüzt.

Wurde z.B. damals eine Domäne von 2000/2003 auf 2008 migriert und die replikation nicht von FRS auf DFRS umgestellt muss dies vor der migration auf Server 2016 gemacht werden.

Dies geschieht mithilfe von dem Kommandozeilen Tool ” dfsrmig”. Der Vorgang ist in vier Schritte aufgeteilt. Und hat bisher ohne größere Probleme funktioniert.

State 0 – Start

State 1 – Prepared

State 2 – Redirected

State 3 – Elminated

Eine Ausführliche Anleitung befindet sich im Microsoft Blog.

https://blogs.technet.microsoft.com/filecab/2014/06/25/streamlined-migration-of-frs-to-dfsr-sysvol/

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd640019(v=ws.10)

 

Bis State 2 kann im Notfall ein Fallback erfolgen.

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd640509%28v%3dws.10%29

 

Exchange Postfächer Vollzugriffe anzeigen

Mit dem PS Befehl kann man sich Vollzugriffe auf andere Postfächer anzeigen lassen.

Get-Mailbox -Server “<servername>”  -resultsize “Unlimited” | Get-MailboxPermission | where { ($_.AccessRights -eq “FullAccess”) -and ($_.IsInherited -eq $false) -and -not ($_.User -like “NT AUTHORITY\SELF”) } | ft @{Name=”Identity”;expression={($_.Identity -split “/”)[-1]}}, User -AutoSize

Nächste Seite » « Vorherige Seite