Montag, 11. November 2019

Exchange Hybrid nachträglich aufbauen nach Cutover Migration

Azenario: Exchange Migration lief per Cutover-Migration, Exchange wurde aus lokalem AD deinstalliert (mit allen Konsequenzen, wie verlorenen Attributen etc...).
Nachträglich wurde wieder ein Exchange Server installiert. Nun sind Mailboxes nur in der Cloud vorhanden, der lokale Exchange "weis" nichts über die O365 Postfächer.

Nachträglich kann man die Umgebungen wieder wie folgt verheiraten:
  1. Zuerst Mail User in Exchange erstellen 
  2. Set-ADUser -Identity <User>-Replace @{msExchRecipientDisplayType = "-2147483642"}
  3. Set-ADUser -Identity <User>-replace @{msExchRecipientTypeDetails = "2147483648"}
  4. Set-ADUser -Identity <User>-Replace @{msExchRemoteRecipientType = "100"}
Wobei 100 bei 4. der Wert für eine shared Mailbox ist. Normale Postfächer sind "1", Ressource Mailboxes "33".




Dienstag, 1. Oktober 2019

Externe Outlook Anywhere Verbindungen vorhindern mittels Set-CasMailbox -MAPIBlockOutlookExternalConnectivity

Wer in seiner Exchange Organisation intern Outlook Anywhere aktiv hat nur bestimmte Benutzer die direkte Outlook Verbindung von extern erlauben will, kann dies mit Set-CasMailbox -MAPIBlockOutlookExternalConnectivity tun. Damit werden OA-Verbindungen nur von internen Geräten zugelassen.

Siehe dazu:
https://docs.microsoft.com/en-us/powershell/module/exchange/client-access/set-casmailbox?view=exchange-ps

Es gibt auch Gründe die gegen eine Verwendung dieses Parameters sprechen. Diese wurden hier zusammengefasst: https://ingogegenwarth.wordpress.com/2017/01/23/why-using-mapiblockoutlookexternalconnectivity-is-a-bad-idea/

Dienstag, 30. Juli 2019

Microsoft RDS RDWEB 2019 html5 Webclient mit Netscaler veröffentlichen


Problem: Neuer RDWeb Client (Microsoft Windows Server 2019) funktioniert mit Veröffentlichung über Citrix Netscaler nicht. https://[name]/RDWeb/Webclient ist erreichbar, funktioniert intern und über NAT aber nicht über den Reverse Proxy (Stellt keinen Inhalt im Browser dar).  
Logs siehe unten.

Andere Leute haben ein ähnliches Problem: https://translate.google.com/translate?sl=auto&tl=en&u=https%3A%2F%2Fsocial.technet.microsoft.com%2FForums%2Fwindowsserver%2Fru-RU%2F96e72f2e-f26f-4057-9835-b414403fe468%2Frds-webclient%3Fforum%3Druwinserver2016
 
Lösung "Websockets" in System > Profiles > HTTP aktivieren (für die Policys, die vom Content Switching Virtual Server verwendet werden). Und schon funktioniert die Remotedesktopverbindung im Browser!

2019-07-11T09:21:12.837Z Exception: Possibly unhandled rejection: backdrop click Cause: undefined
Logger/a.error@https://[external address]/RDWeb/WebClient/js/client.8c705614.js:1:2683,a/</<@https://[external address]/RDWeb/WebClient/js/client.8c705614.js:4:23141,j@https://[external address]/RDWeb/WebClient/js/components.baac831f.js:5:27051,$digest@https://[external address]/RDWeb/WebClient/js/components.baac831f.js:6:835,$evalAsync/<@https://[external address]/RDWeb/WebClient/js/components.baac831f.js:6:2461,e@https://[external address]/RDWeb/WebClient/js/components.baac831f.js:4:12767,ob/k.defer/c<@https://[external address]/RDWeb/WebClient/js/components.baac831f.js:4:14229,
2019-07-11T09:21:14.673Z RdpFileParser(NORM): Setting "redirectclipboard" = "1"
2019-07-11T09:21:14.674Z RdpFileParser(NORM): Setting "redirectprinters" = "1"
2019-07-11T09:21:14.677Z RdpFileParser(NORM): Setting "redirectcomports" = "1"
2019-07-11T09:21:14.677Z RdpFileParser(NORM): Setting "redirectsmartcards" = "1"
2019-07-11T09:21:14.677Z RdpFileParser(NORM): Setting "devicestoredirect" = "*"
2019-07-11T09:21:14.677Z RdpFileParser(NORM): Setting "drivestoredirect" = "*"
2019-07-11T09:21:14.677Z RdpFileParser(NORM): Setting "redirectdrives" = "1"
2019-07-11T09:21:14.677Z RdpFileParser(NORM): Setting "session bpp" = "32"
2019-07-11T09:21:14.677Z RdpFileParser(NORM): Setting "prompt for credentials on client" = "1"
2019-07-11T09:21:14.677Z RdpFileParser(NORM): Setting "server port" = "3389"
2019-07-11T09:21:14.678Z RdpFileParser(NORM): Setting "allow font smoothing" = "1"
2019-07-11T09:21:14.678Z RdpFileParser(NORM): Setting "promptcredentialonce" = "1"
2019-07-11T09:21:14.679Z RdpFileParser(NORM): Setting "gatewayusagemethod" = "2"
2019-07-11T09:21:14.679Z RdpFileParser(NORM): Setting "gatewayprofileusagemethod" = "1"
2019-07-11T09:21:14.679Z RdpFileParser(NORM): Setting "gatewaycredentialssource" = "4"
2019-07-11T09:21:14.679Z RdpFileParser(NORM): Setting "full address" = "[internal address]"
2019-07-11T09:21:14.679Z RdpFileParser(NORM): Setting "gatewayhostname" = "[external address]"
2019-07-11T09:21:14.679Z RdpFileParser(NORM): Setting "workspace id" = "[internal address]"
2019-07-11T09:21:14.679Z RdpFileParser(NORM): Setting "use redirection server name" = "1"
2019-07-11T09:21:14.680Z RdpFileParser(NORM): Setting "loadbalanceinfo" = "tsv://MS Terminal Services Plugin.1.QuickSessionCollection"
2019-07-11T09:21:14.680Z RdpFileParser(NORM): Setting "use multimon" = "1"
2019-07-11T09:21:14.680Z RdpFileParser(NORM): Setting "alternate full address" = "[internal address]"
2019-07-11T09:21:14.680Z RdpFileParser(NORM): Setting "signscope" = "Full Address,Alternate Full Address,Use Redirection Server Name,Server Port,GatewayHostname,GatewayUsageMethod,GatewayProfileUsageMethod,GatewayCredentialsSource,PromptCredentialOnce,RedirectDrives,RedirectPrinters,RedirectCOMPorts,RedirectSmartCards,RedirectClipboard,DevicesToRedirect,DrivesToRedirect,LoadBalanceInfo"
2019-07-11T09:21:14.680Z RdpFileParser(NORM): Setting "signature" = "AQABAAEAAAAMDwAAMIIPCAYJKoZIhvcNAQcCoIIO+TCCDvUCAQExDzANBglghkgB  ZQMEAgEFADALBgkqhkiG9w0BBwGggg1BMIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJ  MDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25h  dHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4XDTAwMDkz  MDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWdu  YXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJ  KoZIhvcNAQEBBQADggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb  7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1  lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9UL2AZd+3UWODyOKIYepLYYHs  Umu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRyxXtqqzTWMIn/  5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d  utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNC  MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSn  saR7LHH62+FLkHX/xBVghYkQMA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7u  KGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikugdB/OEIKcdBodfpga3csTS7MgROSR  6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGx  rancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bwRLtT  cm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsW  vIjJEubSfZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK  7p2CNTUQMIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0B  AQsFADA/MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAV  BgNVBAMTDkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2  NDA0NlowSjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAh  BgNVBAMTGkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0B  AQEFAAOCAQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCS  L7e4S0EFq6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP  /uaZ6WA8SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8j  KkKQDIZ0Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6Bl  spkENnWAa6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkx  Ez0tNvjj/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkw  EgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEE  czBxMDIGCCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRy  dXN0LmNvbTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9y  b290cy9kc3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/E  FWCFiRAwVAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggr  BgEFBQcCARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNV  HR8ENTAzMDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENB  WDNDUkwuY3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG  9w0BAQsFAAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3  JHRRHGJouM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/  1wXKtx8/wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joW  UoHOUgwuX4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8l  Gy+QsRlGPfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNK  EkROb3N6KOqkqm57TH2H3eDJAkSnh6/DNFu0QjCCBVkwggRBoAMCAQICEgP1g3dD  vfhZIdnc+qyLyINPnDANBgkqhkiG9w0BAQsFADBKMQswCQYDVQQGEwJVUzEWMBQG  A1UEChMNTGV0J3MgRW5jcnlwdDEjMCEGA1UEAxMaTGV0J3MgRW5jcnlwdCBBdXRo  b3JpdHkgWDMwHhcNMTkwNTI4MTEwNDEzWhcNMTkwODI2MTEwNDEzWjAbMRkwFwYD  VQQDDBAqLndlaW5tYW5uLmNsb3VkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB  CgKCAQEAyGQ1kUlBMoKJLElSDLp/knRThl0N6hoR4KW9SbeGAb9nNGLaPxJLThC2  mRDBiV2kr+gYbNq6vPnqU4yN5xSbxMWOipqWHJiuVFGFkO2JQlDOZ0qhN8xwEFoc  hZDH9QhIhx2WQYAlgq8Esm0Ukjy4Whi3BlIcsfJDbLo8ribKUAz+zIs7tcR6qfjG  66ygW0fb5ySjk4D5si/iGgD58BZygsGM/FEJVG6YfItuUw5wtNl/67S5XdYtG4vC  SP+QJg0spr+daXnvzoLmRHF8LluowiNUVOjC7Dnf8er9Ffy9et7FCngCxKsL7tTT  zabqfcG+d68ovTX7ydi9B70UxaUmQQIDAQABo4ICZjCCAmIwDgYDVR0PAQH/BAQD  AgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAA  MB0GA1UdDgQWBBQNPJEtvpnBuUhtulxJG6nS2/8WDzAfBgNVHSMEGDAWgBSoSmpj  BH3duubRObemRWXv86jsoTBvBggrBgEFBQcBAQRjMGEwLgYIKwYBBQUHMAGGImh0  dHA6Ly9vY3NwLmludC14My5sZXRzZW5jcnlwdC5vcmcwLwYIKwYBBQUHMAKGI2h0  dHA6Ly9jZXJ0LmludC14My5sZXRzZW5jcnlwdC5vcmcvMBsGA1UdEQQUMBKCECou  d2Vpbm1hbm4uY2xvdWQwTAYDVR0gBEUwQzAIBgZngQwBAgEwNwYLKwYBBAGC3xMB  AQEwKDAmBggrBgEFBQcCARYaaHR0cDovL2Nwcy5sZXRzZW5jcnlwdC5vcmcwggEF  BgorBgEEAdZ5AgQCBIH2BIHzAPEAdgDiaUuuJujpQAnohhu2O4PUPuf+dIj7pI8o  kwGd3fHb/gAAAWr+U5q0AAAEAwBHMEUCIEph0N9q5WOgz6U7uGHOGfEpaTmWKuIP  SKCZTdxXKy7KAiEAp8/J5Umq44p6ZOU2gNEk5VmT65ZnyJCREdkbwvl42n4AdwAp  PFGWVMg5ZbqqUPxYB9S3b79Yeily3KTDDPTlRUf0eAAAAWr+U5qlAAAEAwBIMEYC  IQDN/cSlEMGBsWsd3ssbAlGDGMB9cm1hdX3Z6gJgLP1w8gIhAONSxX0Fh8Qj50V1  g5qQrTj+verH/BLqyvoVvqnlF/DRMA0GCSqGSIb3DQEBCwUAA4IBAQBv7JoGPHtj  Q+cqO0Z7MrMWUlZN5R+vcoPdG9K0JCe8s8sUzV/wJhTvRw4wwdf1FzN2aJmRnxdT  9VdLj4LVFB1z0/4xGSzRG/qz6ZAb2XgvwnFMHZRY77s8E0UHkM1aGfVcNS2VSYiE  kkBOf46u4cD9Otil/oMxEa+pL79fkYFXYNFTwpefFyup5HK0dPHN+Jer5K3vMKMH  P//64hJrKRuXCP+Y4HsyVvqCSoiFjxos4wv+OmzH1sqbV2MJTc8guAelrjAmj2YW  Pi6/0Z8ycuOU0ZEUAtrCV07kW96x3LtY1wsoyfNUbzxlTsQBip4lJmavGI6rlb8N  ivq4WUrhKdw/MYIBizCCAYcCAQEwYDBKMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN  TGV0J3MgRW5jcnlwdDEjMCEGA1UEAxMaTGV0J3MgRW5jcnlwdCBBdXRob3JpdHkg  WDMCEgP1g3dDvfhZIdnc+qyLyINPnDANBglghkgBZQMEAgEFADANBgkqhkiG9w0B  AQEFAASCAQB/mqFt+yjEVdHpFGO5euR5/3P8/VaUNiPWI9YGPB0+tKVhDwqHcf8D  urtXyI2ZSs2UnMmSMJQ3oiwRrTDpnugXXEqpiLVqO8odpvUBpxFtjaTxIrvguqyg  M+zQrRXONZSGlKO6PmJQT/TjeSetaS7l0Y02FQtDcGpLT8IrXEtVBHRdn548sH/D  2DVbEUIpBSPS/RGdTmW0WpHLPKlBQ0i4b4nBfW7E1OaNnp8QFRCWwvf86BUHMvFS  zlkw4ebEigGIjb7InqM5IkK0hJ7scTOFjmXJOsy7DKL9Z/dG2bhtM1XcUDdsXmwT  HH2CBjay8ZGSZKw41lDQLOnlZeUixble  "
2019-07-11T09:21:14.683Z [SessionFactory] Redirections request
2019-07-11T09:21:17.325Z [ConnectionFactory] Creating connection to:
2019-07-11T09:21:17.325Z [object Object]
2019-07-11T09:21:17.329Z RdClientConnectionProxy::Create(NORM): loading webworkers from path: https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js
2019-07-11T09:21:17.333Z WebWorker(NORM): Created Webworker with path: https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js onMessage: HandleConnectionMessage
2019-07-11T09:21:17.346Z [SessionProvider] Connection created event received.
2019-07-11T09:21:17.346Z [SessionProvider] Session created received in provider
2019-07-11T09:21:17.347Z [SessionViewModel] Session created event received for: acb32204-0a33-458a-bd3c-4b70a64d7804
2019-07-11T09:21:17.347Z [Connection] Connection.connect called
2019-07-11T09:21:17.347Z [SessionViewModel] Received monitorBound event on UI layer
2019-07-11T09:21:17.354Z [Session] Session focus changed to true id:acb32204-0a33-458a-bd3c-4b70a64d7804 window id:null
2019-07-11T09:21:17.354Z [SessionViewModel] Session focused event received in view model session id: acb32204-0a33-458a-bd3c-4b70a64d7804
2019-07-11T09:21:20.006Z Connection(NORM): Connection created with correlation ID={151892f0-f8fa-49f6-b530-1a9b94960000}
2019-07-11T09:21:20.008Z DVCManager(NORM): Registered plugin DisplayControlGraphicsPlugin
2019-07-11T09:21:20.008Z DVCManager(NORM): Registered plugin InputPlugin
2019-07-11T09:21:20.009Z DVCManager(NORM): Registered plugin GfxChannelGraphicsPlugin
2019-07-11T09:21:20.027Z Core telemetry event: eventName=OnDetectAudioSupport, traceMessage=This system does support audio
2019-07-11T09:21:20.026Z DVCManager(NORM): Creating plugin DisplayControlGraphicsPlugin
2019-07-11T09:21:20.026Z DVCManager(NORM): Registering a listener for DVC Microsoft::Windows::RDS::DisplayControl
2019-07-11T09:21:20.027Z DVCManager(NORM): Creating plugin GfxChannelGraphicsPlugin
2019-07-11T09:21:20.028Z DVCManager(NORM): Registering a listener for DVC Microsoft::Windows::RDS::Graphics
2019-07-11T09:21:20.031Z Core telemetry event: eventName=GfxChannelGraphicsPluginStateTransition, traceMessage=State transition from "Closed(0)" to "Listening(1)"
2019-07-11T09:21:20.029Z DVCManager(NORM): Creating plugin InputPlugin
2019-07-11T09:21:20.031Z DVCManager(NORM): Registering a listener for DVC Microsoft::Windows::RDS::Input
2019-07-11T09:21:20.033Z GatewayTransport(NORM): Using the Gateway protocol variation for RD Gateway (on-prem)...
2019-07-11T09:21:20.033Z BaseTransportConnectState(NORM): Entering Gateway connection state BaseTransportConnectState
2019-07-11T09:21:20.035Z WebSocketTransport(NORM): Connection process begun for url=wss://[external address]:443/remoteDesktopGateway?CorId=%7B151892f0-f8fa-49f6-b530-1a9b94960000%7D&ConId=%7Bb3008232-4507-4a3d-91ed-fdc47fe57b9b%7D&ClGen=HTML%3D1&ClBld=Type%3DRdClient%3B%20Build%3Dprivate&AuthS=SSPI_NTLM
2019-07-11T09:21:20.036Z GatewayTransport(NORM): GatewayTransport connecting...
2019-07-11T09:21:20.038Z [Connection] Connection state changed to: Opening remote port
2019-07-11T09:21:20.437Z WebSocketTransport(ERR): WebSocket error received for url=wss://[external address]:443/remoteDesktopGateway?CorId=%7B151892f0-f8fa-49f6-b530-1a9b94960000%7D&ConId=%7Bb3008232-4507-4a3d-91ed-fdc47fe57b9b%7D&ClGen=HTML%3D1&ClBld=Type%3DRdClient%3B%20Build%3Dprivate&AuthS=SSPI_NTLM
    websockettransport.cpp(304): OnErrorFromJS()
Logger/a.errorWithoutTimestamp@https://[external address]/RDWeb/WebClient/js/client.8c705614.js:1:2471,b/<@https://[external address]/RDWeb/WebClient/js/client.8c705614.js:4:24270,methodCaller_emscripten$$val_$emscripten$$val_emscripten$$val$@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js line 86 > Function:6:26,__emval_call_method@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:86:1511223,CZa@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:94:1,Ugd@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:99:1,invoke_viiiii@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:86:1563077,BZa@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:94:1,Sgd@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:99:1,invoke_viii@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:86:1562669,r_a@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:94:1,zdb@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:97:1,Qgd@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:99:1,invoke_vii@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:86:1562281,m$a@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:94:1,Qgd@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:99:1,invoke_vii@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:86:1562281,n$a@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:94:1,Sgd@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:99:1,dynCall_viii_468@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js line 86 > Function:4:12,OnMessageCallback$Invoke@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js line 86 > Function:9:1,ASM_CONSTS</attachingObject.CreateMessageInvoker/<@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:86:106254,
2019-07-11T09:21:20.438Z WebSocketTransport(NORM): WebSocket closed, url=wss://[external address]:443/remoteDesktopGateway?CorId=%7B151892f0-f8fa-49f6-b530-1a9b94960000%7D&ConId=%7Bb3008232-4507-4a3d-91ed-fdc47fe57b9b%7D&ClGen=HTML%3D1&ClBld=Type%3DRdClient%3B%20Build%3Dprivate&AuthS=SSPI_NTLM, wasClean=false, code=1006, reason=""
2019-07-11T09:21:20.443Z Connection(ERR): The connection generated an internal exception with disconnect code=ConnectionBroken(8), extended code=<null>, reason=WebSocket closed with code: 1006 reason:
 Thrown in thread 396952 at:
    websockettransport.cpp(330)
Call Stack:
        at Rjb
        at Ojb
        at rp
        at Ugd
        at invoke_viiiii
        at unsigned __int128
        at Qgd
        at invoke_vii
        at unsigned __int128
        at Sgd
        at dynCall_viii_175
        at WebSocketTransport$OnCloseFromJS
        at ASM_CONSTS</WebSocketJSBridge/jsWebSocket.onclose

    connection.cpp(1318): OnException()
Logger/a.errorWithoutTimestamp@https://[external address]/RDWeb/WebClient/js/client.8c705614.js:1:2471,b/<@https://[external address]/RDWeb/WebClient/js/client.8c705614.js:4:24270,methodCaller_emscripten$$val_$emscripten$$val_emscripten$$val$@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js line 86 > Function:6:26,__emval_call_method@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:86:1511223,CZa@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:94:1,Ugd@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:99:1,invoke_viiiii@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:86:1563077,BZa@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:94:1,Sgd@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:99:1,invoke_viii@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:86:1562669,r_a@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:94:1,zdb@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:97:1,Qgd@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:99:1,invoke_vii@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:86:1562281,m$a@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:94:1,Qgd@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:99:1,invoke_vii@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:86:1562281,n$a@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:94:1,Sgd@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:99:1,dynCall_viii_468@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js line 86 > Function:4:12,OnMessageCallback$Invoke@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js line 86 > Function:9:1,ASM_CONSTS</attachingObject.CreateMessageInvoker/<@https://[external address]/RDWeb/WebClient/js/rdcore.52db1618.js:86:106254,
2019-07-11T09:21:20.445Z Core telemetry event: eventName=ConnectionException, traceMessage=An exception has occurred. Details: disconnect code=ConnectionBroken(8), extended code=<null>, reason=WebSocket closed with code: 1006 reason:
 Thrown in thread 396952 at:
    websockettransport.cpp(330)
Call Stack:
        at Rjb
        at Ojb
        at rp
        at Ugd
        at invoke_viiiii
        at unsigned __int128
        at Qgd
        at invoke_vii
        at unsigned __int128
        at Sgd
        at dynCall_viii_175
        at WebSocketTransport$OnCloseFromJS
        at ASM_CONSTS</WebSocketJSBridge/jsWebSocket.onclose

2019-07-11T09:21:20.445Z [Connection] Disconnecting
2019-07-11T09:21:20.444Z WebSocketTransport(NORM): Connection close initiated for url=wss://[external address]:443/remoteDesktopGateway?CorId=%7B151892f0-f8fa-49f6-b530-1a9b94960000%7D&ConId=%7Bb3008232-4507-4a3d-91ed-fdc47fe57b9b%7D&ClGen=HTML%3D1&ClBld=Type%3DRdClient%3B%20Build%3Dprivate&AuthS=SSPI_NTLM, code=1000, reason="NormalClosure(1000)"
2019-07-11T09:21:20.445Z GatewayTransport(NORM): GatewayTransport closed.
2019-07-11T09:21:20.448Z [Connection] Disconnected
2019-07-11T09:21:20.448Z [SessionViewModel] Received retireCanvas event on UI layer, connectionID=151892f0-f8fa-49f6-b530-1a9b94960000
2019-07-11T09:21:20.448Z [SessionProvider] Session disconnect received in provider
2019-07-11T09:21:20.448Z [SessionViewModel] Received didDisconnect event on UI layer
2019-07-11T09:21:20.448Z [Connection] Cleaning up connection
2019-07-11T09:21:20.448Z [SessionProvider] Connection destroyed event received.
2019-07-11T09:21:20.448Z [SessionProvider] Session disconnect received in provider
2019-07-11T09:21:20.449Z [SessionViewModel] Received didDisconnect event on UI layer
2019-07-11T09:21:20.449Z WebWorker(NORM): Destroying Webworker
2019-07-11T09:21:20.478Z [SessionViewModel] Canvas lost focus
2019-07-11T09:21:23.225Z [SessionViewModel] Session destroy event received for: acb32204-0a33-458a-bd3c-4b70a64d7804
2019-07-11T09:21:23.226Z [Session] Session focus changed to false id:acb32204-0a33-458a-bd3c-4b70a64d7804 window id:null
2019-07-11T09:21:23.226Z [Connection] Graphics sink not set yet, cannot set focus to: false

Montag, 24. Juni 2019

Meta Cache Database in Exchange 2019 konfigurieren

Erstmal müssen die Commandlets separat importiert werden:
import-module "C:\Program Files\Microsoft\Exchange Server\V15\Scripts\Manage-MetaCacheDatabase.ps1"

Dann muss man sicherstellen, dass die SSD als solche erkannt wird:
Get-PhysicalDisk

Output kann z.B. so aussehen:
DeviceId FriendlyName      SerialNumber MediaType   CanPool OperationalStatus HealthStatus Usage        Size
-------- ------------      ------------ ---------   ------- ----------------- ------------ -----        ----
0        Msft Virtual Disk              Unspecified False   OK                Healthy      Auto-Select 90 GB
1        Msft Virtual Disk              Unspecified False   OK                Healthy      Auto-Select 20 GB
2        Msft Virtual Disk              Unspecified False   OK                Healthy      Auto-Select 80 GB
3        Msft Virtual Disk              Unspecified True    OK                Healthy      Auto-Select 10 GB

--> Toll alle haben den gleichen Friendlyname und MediaType "Unspecified"!

Zum Glück weis ich wie groß meine SSD ist und kann sie so auswählen:
Get-PhysicalDisk | where {$_.size -eq 10737418240} | Set-PhysicalDisk -MediaType SSD

Prüfen:
Get-PhysicalDisk | Select-Object FriendlyName, MediaType,  Size

Jetzt die MCDB Commandlets ausführen:
Manage-MCDB -DagName DAG01 -ConfigureMCDBPrerequisite -SSDSizeInBytes 10737418240 -SSDCountPerServer 1

Hier geht es nicht weiter, da ich nur einen Server habe:
Get-ReplicationEnabledMailBoxDatabasesAcrossDAG : Es gibt keine Postfachdatenbank, die für die Replikation aktiviert ist.

Donnerstag, 13. Juni 2019

Free/Busy in Exchange Hybrid funktioniert nicht - Deaktivieren der IntraOrganizationConnectors hilft

Free/Busy in Exchange Hybrid funktioniert nicht - Deaktivieren der IntraOrganizationConnectors hilft

Wenn in einem Exchange Hybridverbund der Free/Busy Lookup, das Calendar Sharing etc. nicht funktioniert, können fehlerhafte IntraOrganizationConnectors das Problem sein. Dies kann daher kommen, dass früher einmal ein Hybridverbund mit einem einem Tenant existiert hat. Mit folgenden Befehlen kann man sie deaktvieren:


On-Premise Exchange Management Shell (EMS):
Get-IntraOrganizationConnector |Set-IntraOrganizationConnector -Enabled $false

Exchange Online PowerShell (EXO):
Get-IntraOrganizationConnector |Set-IntraOrganizationConnector -Enabled $false

 Nachteil dadurch, Oauth-Authentifizierung kann nicht mehr aktiviert werden (https://docs.microsoft.com/en-us/exchange/configure-oauth-authentication-between-exchange-and-exchange-online-organizations-exchange-2013-help). Damit stehen diese Features nicht mehr zu Verfügung:

Message Records Management (MRM)
Exchange In-place eDiscovery, Exchange
In-place Archiving.
 


Donnerstag, 11. April 2019

Microsoft Cloud Germany - Kein Free/Busy und Calendar Federation in Exchange Hybrid möglich

Microsoft Cloud Germany - Kein Free/Busy und Calendar Federation in Exchange Hybrid möglich

Die Überschrift sagt eigentlich alles, free/busy in einem Hybridverbund mit der German Cloud von Microsoft ist nicht möglich. Es wird immer das Microsoft Federation Gateway  verwendet, welches nur mit der Worldwide Cloud funktioniert. Ein eigenes Gateway fürdie Deutschland Cloud wurde nicht erstellt und wird (aufgrund der Abkündigung) nicht mehr implementiert.

Mittwoch, 13. März 2019

Roaming User Profiles werden nicht erstellt - Berechtigung auf Verzeichnis fehlt

Die Berechtigung hat auf dem Stammverzeichnis gefehlt:

"In this instance the user needed permission in the \\server\profiles folder to create a new folder."

Sobald diese gesetzt wurde gehts.

Montag, 4. März 2019

Wie wird das "OrganizationSummary Feld in get-OrganizationConfig befüllt?

Durch auslesen der "ExBPA.StayingInformed.Config.xml" Datei:
 
"Zusammenfassung: 3 Element(e). Erfolgreich: 3, Fehler: 0.
Verstrichene Zeit: 00:01:02


Datei lesen
Abgeschlossen

Ausführung eines Exchange-Verwaltungsshellbefehls abgeschlossen:
Binären Stream aus der Datei 'C:\Program Files\Microsoft\Exchange Server\V14\bin\ExBPA.StayingInformed.Config.xml' lesen.

Verstrichene Zeit: 00:00:00


Organisationsstatusdaten erfassen
Abgeschlossen

Ausführung eines Exchange-Verwaltungsshellbefehls abgeschlossen:
Test-SystemHealth -ConfigurationData '<Binärdaten>' -OutData

Verstrichene Zeit: 00:00:48


Organisationsstatusdaten speichern
Abgeschlossen

Ausführung eines Exchange-Verwaltungsshellbefehls abgeschlossen:
Set-OrganizationConfig -OrganizationSummary 'TotalExchangeServers,1,False','TotalMailboxServers,1,False','TotalUMServers,0,False','TotalClientAccessServers,1,False','TotalTransportServers,1,False','TotalCALMailboxes,27,False','EnterpriseCALs,0,False','StandardCALs,27,False','TotalJounalingUser,0,False','TotalDatabases,3,False','TotalDatabasesCopy,2,False','TotalDatabasesCopyUnhealthy,1,False','Total2009ExchangeServers,1,False','Total2007ExchangeServers,0,False','Total2003ExchangeServers,0,False','TotalUnlicensedExchangeServers,0,False','TotalRecipients,164,False','TotalMailboxes,27,False','TotalDistributionGroups,6,False','TotalDynamicDistributionGroups,0,False','TotalMailContacts,105,False','TotalMailUsers,0,False','TotalLegacyMailbox,0,False','TotalMessagingRecordManagementUser,0,False','TotalUnifiedMessagingUser,0,False','TotalOWAUser,31,False','TotalActiveSyncUser,31,False','TotalMAPIUser,31,False','TotalPOP3User,31,False','TotalIMAP4User,31,False'

Verstrichene Zeit: 00:00:13"