Skip Ribbon Commands
Skip to main content

Xadean's Empirical Musing

:

Quick Launch

Xadean's contribution to the consulting community through sharing his anthology of lesson's learned and technical insights.
August 03
Modify Exchange Migration Throttling Policies

Creating a New, Non-Default Throttling Policy

To create a new, non-default throttling policy, run the New-ThrottlingPolicy cmdlet and set the parameters you want. Any parameters that you omit will inherit the values from the default throttling policy. The following example creates a new throttling policy, ClientThrottlingPolicy2. The new policy has nearly the same settings as the default throttling policy. The difference is that the new non-default throttling policy, ClientThrottlingPolicy2, sets EWSPercentTimeInCAS to 80 and turns off EWSPercentTimeInAD throttling.

New-ThrottlingPolicy -Name ClientThrottlingPolicy2 -EWSPercentTimeInCAS 80 -EWSPercentTimeInAD $null;

Get-ThrottlingPolicy | where-object {$_.IsDefault -eq $true}

 

Connect to Exchange Online using below commands:

$UserCredential = Get-Credential

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

Import-PSSession $Session

 

Once connected run below logs to collect the output for migration statuses:

 

Start-Transcript C:\Temp\MigrationSlow.txt

Get-MigrationBatch –Identity <name of the migration batch> | fl *status*

Get-MigrationUser -Identity <user_mailbox_alias>

Get-MigrationUser -Identity <user_mailbox_alias>

Get-MoveRequestStatistics <job_1_name> -IncludeReport -DiagnosticInfo verbose | Export-CliXml C:\Temp\MoveReportUser1.xml

Get-MoveRequestStatistics <job_2_name> -IncludeReport -DiagnosticInfo verbose | Export-CliXml C:\Temp\MoveReportUser2.xml

Stop-Trancript

 

For Exchange 2010 MRS Proxy Enabled CAS-role Servers

If the production Exchange 2010 CAS are being used as MRS Proxies:

All Exchange 2010 CAS that are in the load balanced namespace are required to be enabled for MRS Proxy. For example, if the MRS Proxy endpoint is published to the internet as https://webmail.contoso.com, and that namespace is loadbalanced, then all Exchange 2010 CAS that participate in that load balanced configuration would have to have the MRS Proxy capability enabled on them,

Several settings can reduce performance for mailbox moves. Editing the MSExchangeMailboxReplication.exe.config file, located on all CAS servers in the same folder where Exchange is installed: \Program Files\Microsoft\Exchange Server\V14\Bin\MSExchangeMailboxReplication.exe.config. and modifying the following parameters to higher values can help improve migration throughput if an Exchange 2010 CAS is enabled as an MRS Proxy:

  1. MaxActiveMovesPerSourceMDB - This property specifies the total number of tasks MRS can perform that involve the mailbox database as a data source. Types of tasks include moving mailboxes located on the database, exporting mailbox data from mailboxes located on the database, and restoring mailbox data from the database. You can specify a value from 0 through 100. The default value is 5 concurrent tasks. Consider raising to 10
  2. MaxActiveMovesPerTargetMDB - This property specifies the total number of tasks MRS can perform that involve the mailbox database as a data target. Types of tasks include moving mailboxes to the database, importing mailbox data into a mailbox located on the database, and restoring mailbox data to a mailbox located on the database. You can specify a value from 0 through 100. The default value is 2 concurrent tasks. Consider raising to 10 or higher.
  3. MaxActiveMovesPerSourceServer - This property specifies the total number of tasks MRS can perform that include the server as a data source. You can specify a value from 0 through 1000. The default value is 50 concurrent moves. I don't see this as an issue, but mentioning it for thoroughness.
  4. MaxActiveMovesPerTargetServer - This property specifies the total number of tasks MRS can perform that involve the server as a data target. You can specify a value from 0 through 1000. The default value is 5 concurrent moves. Consider raising to 10

 

References

Understanding Client Throttling Policies: https://docs.microsoft.com/en-us/previous-versions/office/exchange-server-2010/dd297964(v=exchg.141)

https://blogs.technet.microsoft.com/vytas/2018/03/02/maximizing-and-optimizing-your-mailbox-move-data-throughput-for-on-premise-to-o365-and-exchange-online-migrations/

 

August 03
How to Make Exchange Legacy Public Folders Visible to Exchange Online Users in a Hybrid Configuration

Issue Description

In an environment that had a pre-existing Exchange Server 2010 SP3 (multiple distributed servers running Mailbox (M), Hub Transport (HT), Client Access (CAS), and Unified Messaging (UM) roles) and new configured hybrid integration with Exchange Online (ExO) in Office 365 tenant, migrated mailbox users were not able to access / view any of the legacy public folders homed on-premises in Exchange 2010.

Resolution

Here are the troubleshooting steps that we have done to make the legacy Exchange 2010 public folders visible to Office 365 ExO migrated mailbox users.

Step 1: Make remote public folders discoverable

 

If your public folders are on Exchange 2010 or later servers, you must install the Client Access server (CAS) role on all mailbox servers that have a public folder database. This allows the Microsoft Exchange RpcClientAccess service to be running so that all clients can access public folders. For more information, see Install Exchange Server 2010.

 

Note: This server doesn't have to be part of the Client Access load balancing. For more information, see Understanding Load Balancing in Exchange 2010.

 

  • Create an empty mailbox database on each public folder server. For Exchange 2010, run the following command. This command excludes the mailbox database from the mailbox provisioning load balancer. This prevents new mailboxes from being added automatically to this database.

 

New-MailboxDatabase -Server <PFServerName_with_CASRole> -Name <NewMDBforPFs> -IsExcludedFromProvisioning $true

 

Note: We recommend that the only mailbox that you add to this database is the proxy mailbox that you'll create in step 3. No other mailboxes should be created on this mailbox database.

 

  • Create a proxy mailbox within the new mailbox database and hide the mailbox from the address book. The SMTP of this mailbox will be returned by AutoDiscover as the DefaultPublicFolderMailbox SMTP, so that by resolving this SMTP the client can reach the legacy exchange server for public folder access.

 

New-Mailbox -Name <PFMailbox1> -Database <NewMDBforPFs>

Set-Mailbox -Identity <PFMailbox1> -HiddenFromAddressListsEnabled $true

   

  • For Exchange 2010, enable AutoDiscover to return the proxy public folder mailboxes.

 

Set-MailboxDatabase <NewMDBforPFs> -RPCClientAccessServer <PFServerName_with_CASRole>

 

  • Repeat the preceding steps for every public folder server in your organization.

 

Example: 

New-MailboxDatabase -Server SRVR01 -Name PFMailboxDB -IsExcludedFromProvisioning $true

New-MailboxDatabase -Server SRVR02 -Name PFMailboxDB2 -IsExcludedFromProvisioning $true        

   

New-Mailbox -Name PFMailbox1 -Database PFMailboxDB

Set-Mailbox -Identity PFMailbox1 -HiddenFromAddressListsEnabled $true

   

New-Mailbox -Name PFMailbox2 -Database PFMailboxDB2

Set-Mailbox -Identity PFMailbox1 -HiddenFromAddressListsEnabled $true

   

Set-MailboxDatabase PFMailboxDB -RPCClientAccessServer SRVR01

Set-MailboxDatabase PFMailboxDB2 -RPCClientAccessServer SRVR02

   

  • Run the below command on exchange online PowerShell to make the public folder as remote and add the name of on-premises public folder in remote.

    Set-OrganizationConfig -PublicFoldersEnabled Remote -RemotePublicFolderMailboxes PFMailbox1,PFMailbox2,PFMailbox******NAMES OF ALL PUBLIC FOLDER****"

     

  • Run the full sync on sync server:

    Start-ADSyncSyncCycle -PolicyType Initial

    Note: This process take up to 3 hours to replicate.

     

  • For Exchange 2010, enable AutoDiscover to return the proxy public folder mailboxes.

 

Set-MailboxDatabase <NewMDBforPFs> -RPCClientAccessServer <PFServerName_with_CASRole>

 

  • Run the following command in ExO Powershell.

     

    Get-casmailbox –resultsize unlimited | set-casmailbox – PublicFolderClientAccess $true

     

    Note: This is a critically important step. You may also configure individual users to access the legacy on-premises public folder by executing the following ExO Powershell command.

     

    Set-CASMailbox <user_mailbox_alias> -PublicFolderClientAccess $true

    Get-CASMailbox <user_mailbox_alias> | fl *public*

 

References

https://docs.microsoft.com/en-us/exchange/collaboration-exo/public-folders/set-up-legacy-hybrid-public-folders

 

Migrate Ex2010 Legacy Public Folders to O365

https://docs.microsoft.com/en-us/exchange/collaboration-exo/public-folders/batch-migration-of-legacy-public-folders

 

Migrate Ex2010 Public Folders to O365 Groups

https://docs.microsoft.com/en-us/exchange/use-batch-migration-to-migrate-exchange-2010-public-folders-to-office-365-groups-exchange-2013-help

   

https://technet.microsoft.com/en-us/library/dn912663%28v=exchg.150%29.aspx?f=255&MSPPError=-2147217396#Scripts 

   

https://thoughtsofanidlemind.com/2013/12/13/migration-modern-public-folders/

   

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

https://blogs.technet.microsoft.com/exchange/2015/11/02/running-powershell-cmdlets-for-large-numbers-of-users-in-office-365/

June 18
Cannot Activate Windows Server

Issue: Not able to Activate Windows Server 2019 (Datacenter & Standard)

 

Resolution: Execute the following commands from an elevated command prompt:

 

(For Windows Server 2019)

    slmgr /ipk "N6FCQ-4DRBT-F2W2G-TPMVG-V6F77"

    slmgr /ato

    

(For older versions of Windows Server)

    slui 3

February 27
CMS Replication (XDS) Not Working Between Front End & Edge Servers After Disabling Weak Protocols & Ciphers

Microsoft Case #: 13231981

Created on: Thursday, February 21, 2019

Support request number: 119022124001575

Product: Skype for Business Server 2015 (on-premises)

Issue: CMS Replication (XDS) Not Working Between Front End & Edge Servers After Disabling Weak Protocols & Ciphers

Description: Output of "Get-CsManagementReplicationStatus" shows false in UpToDate field for all Edge Servers in the on-premises deployment following execution of "Invoke-CsManagementStoreReplication" PS cmdlets. LastUpdateCreation shows a date in July 2018 of last year. Skype for Business (SFB) Control Panel showing red X next to Edge Servers in Topology. After capturing a debug trace of the replication process with CLSLogger tool, observed the following error message:

TL_WARN(TF_COMPONENT) [FEPoolNAME\FEServerNAME]1E14.0AA8::02/15/2019-19:29:20.931.00002004 (XDS_File_Transfer_Agent,FileTransferTask.CopyFilesFromReplicaUsingWcf:filetransfertask.cs(755)) (0000000002FFC0E0)[FileTransferTask(6, 2/15/2019 11:26:49 AM): {TASK_NOT_STARTED, fromReplica, [FEServerNAME.fqdn, HttpsWebService, 4443], 0}] Failed to copy files from replica. Exception: [System.ServiceModel.CommunicationException: An error occurred while making the HTTP request to https:// FEServerNAME.fqdn:4443/ReplicationWebService. This could be due to the fact that the server certificate is not configured properly with HTTP.SYS in the HTTPS case. This could also be caused by a mismatch of the security binding between the client and the server. ---> System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host

Also noticed the following error messaging after executing "Get-CsPoolFabricState -PoolFQDN FEPoolName.FQDN" PS cmdlet:

PS C:\Users\xahmasi> Get-CsPoolFabricState -PoolFqdn FEPoolName.FQDN

Get-CsPoolFabricState : An error occurred while receiving the HTTP response to

https:// FEServerName.FQDN /LiveServer/UserPinManagement/FabricManagement/. This could be due to the service endpoint

binding not using the HTTP protocol. This could also be due to an HTTP request context being aborted by the server

(possibly due to the service shutting down). See server logs for more details.

At line:1 char:1

+ Get-CsPoolFabricState -PoolFqdn FEPoolName.FQDN

+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo : InvalidOperation: (:) [Get-CsPoolFabricState], CommunicationException

+ FullyQualifiedErrorId : Error getting fabric state. For details, see inner exception.,Microsoft.Rtc.Management.H

ADR.FabricState.GetOcsPoolFabricStateCmdlet

Root Cause: The Windows Communications Framework (WCF) does not by default use TLS 1.1 or 1.2.  Instead, it uses TLS 1.0 and RC4 ciphers (specifically TLS_RSA_WITH_RC4_128_SHA).  These weak protocols (i.e. SSL 2.0/3.0 and TLS 1.0) and ciphers (i.e. RC2, RC4, DES, and 3DES) had been disabled due to governance compliance.

Resolution: In order to fix, under following keys for all the version key listed like V1.0, V2.0.50727,v3,v4.0.30319, create key "SchUseStrongCrypto" (type DWORD, value 1):

HKLM\software\Wow6432Node\Microsoft\.NETFramework\

HKLM\software\microsoft\,NETFramework\

After adding this key to and rebooting all Edge / Front End Servers and executing invoke-CsManagementReplicationStatus, the UpToDate status on all Edge / Front End Servers is showing True and there is a green check next to all Edge  / Front End Servers in the Skype for Business Control Panel under Topology.

Reference(s): https://blogs.msdn.microsoft.com/benjaminperkins/2014/11/04/using-tls-1-2-with-wcf/

 

 

 

November 26
Skype for Business (SFB) Client Drops from A/V Web Conferences Immediately after Joining

Description of Issue:

In an environment with the following on-premises elements installed, a single user kept experiencing getting dropped from SFB Online Meetings immediately after joining with audio.

 

  • Windows 2012 R2 Active Directory
  • Enterprise SFB 2015 Front End Pool
  • Enterprise SFB 2015 Edge Pool
  • SFB 2015 Persistent Chat Server
  • Office Web Apps Server
  • Windows 2012 R2 Web Application Proxy
  • Windows 2016 IIS ARR

 

The user began to experience this issue following a perimeter firewall upgrade and laptop rebuild. Ergo, there were several potential culprits as a root cause.

 

Root Cause Analysis & Resolution:

Since the firewall was recently upgraded, the initial thinking was the inbound access policies could be misconfigured and causing the user to be dropped. The peculiar thing was that other remote users did not experience the same issue. The assumption was that all users should be experiencing the same behavior if the firewall was the issue. Nonetheless, we configured a packet sniffer on the firewall and captured traces from the user with the issue and other users without the issue to compare the traffic flow. All traces showed the clients connecting to the SIP Access, Web Conferencing, and A/V Conferencing Edge interfaces as expected. We did notice that the user with the error was sending TCP rst and ICMP requests to the A/V Conferencing Edge interface right before being disconnected. Ruled the firewall out since it was accepting all the inbound traffic.

 

Analyzed the PC of the user with the issue beginning with adding exceptions to Windows Defender for the Lync.exe application. Disabled the firewall and real-time protection on the PC. Still the user experienced the issue. Had the user join another organization's SFB online meeting and the user did not experience the disconnect behavior. Looked at the SFB Edge Pool configuration and noticed that there is a SSL certificate assigned that was issued by an internal Certificate Authority (CA) Server. Exported the internal CA Server's root certificate and imported it into the Trusted Root Certificate Authorities store on the user's PC. VOILA! That solved the issue (importing the internal CA's root certificate).

November 05
Exchange Server 2013 Management Tools (EMS & EAC) Failing with Errors

Issue Experienced:

When attempting to launch Exchange Management Shell (EMS) and Exchange Admin Center (EAC), running into the following error messages respectively.

EMS Error #1:

 

Welcome to the Exchange Management Shell!

 

Full list of cmdlets: Get-Command

Only Exchange cmdlets: Get-ExCommand

Cmdlets that match a specific string: Help *<string>*

Get general help: Help

Get help for a cmdlet: Help <cmdlet name> or <cmdlet name> -?

Exchange team blog: Get-ExBlog

Show full output for a command: <command> | Format-List

 

Show quick reference guide: QuickRef

Tip of the day #63:

 

Any cmdlet that accepts a size value lets you specify whether the integer value is in kilobytes (KB), megabytes (MB), gi

gabytes (GB), or terabytes (TB). For example:

 

Set-Mailbox "Kim Akers" -ProhibitSendQuota 200MB -UseDatabaseQuotaDefaults $False

 

VERBOSE: Connecting to ExchSrvr.mail.com.

New-PSSession : [ExchSrvr.mail.com] Connecting to remote server ExchSrvr.mail.com failed with the

following error message : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>IIS 8.0 Detailed Error - 500.0 - Internal Server Error</title>

<style type="text/css">

<!--

body{margin:0;font-size:.7em;font-family:Verdana,Arial,Helvetica,sans-serif;}

code{margin:0;color:#006600;font-size:1.1em;font-weight:bold;}

.config_source code{font-size:.8em;color:#000000;}

pre{margin:0;font-size:1.4em;word-wrap:break-word;}

ul,ol{margin:10px 0 10px 5px;}

ul.first,ol.first{margin-top:5px;}

fieldset{padding:0 15px 10px 15px;word-break:break-all;}

.summary-container fieldset{padding-bottom:5px;margin-top:4px;}

legend.no-expand-all{padding:2px 15px 4px 10px;margin:0 0 0 -12px;}

legend{color:#333333;;margin:4px 0 8px -12px;_margin-top:0px;

font-weight:bold;font-size:1em;}

a:link,a:visited{color:#007EFF;font-weight:bold;}

a:hover{text-decoration:none;}

h1{font-size:2.4em;margin:0;color:#FFF;}

h2{font-size:1.7em;margin:0;color:#CC0000;}

h3{font-size:1.4em;margin:10px 0 0 0;color:#CC0000;}

h4{font-size:1.2em;margin:10px 0 5px 0;

}#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS",Verdana,sans-serif;

color:#FFF;background-color:#5C87B2;

}#content{margin:0 0 0 2%;position:relative;}

.summary-container,.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}

.content-container p{margin:0 0 10px 0;

}#details-left{width:35%;float:left;margin-right:2%;

}#details-right{width:63%;float:left;overflow:hidden;

}#server_version{width:96%;_height:1px;min-height:1px;margin:0 0 5px 0;padding:11px 2% 8px 2%;color:#FFFFFF;

background-color:#5A7FA5;border-bottom:1px solid #C1CFDD;border-top:1px solid #4A6C8E;font-weight:normal;

font-size:1em;color:#FFF;text-align:right;

}#server_version p{margin:5px 0;}

table{margin:4px 0 4px 0;width:100%;border:none;}

td,th{vertical-align:top;padding:3px 0;text-align:left;font-weight:normal;border:none;}

th{width:30%;text-align:right;padding-right:2%;font-weight:bold;}

thead th{background-color:#ebebeb;width:25%;

}#details-right th{width:20%;}

table tr.alt td,table tr.alt th{}

.highlight-code{color:#CC0000;font-weight:bold;font-style:italic;}

.clear{clear:both;}

.preferred{padding:0 5px 2px 5px;font-weight:normal;background:#006633;color:#FFF;font-size:.8em;}

-->

</style>

 

</head>

<body>

<div id="content">

<div class="content-container">

<h3>HTTP Error 500.0 - Internal Server Error</h3>

<h4>Module &quot;WSMan&quot; could not be found</h4>

</div>

<div class="content-container">

<fieldset><h4>Most likely causes:</h4>

<ul> <li>The module could not be found.</li> <li>IIS received the request; however, an internal error

occurred during the processing of the request. The root cause of this error depends on which module handles the

request and what was happening in the worker process when this error occurred.</li> <li>IIS was not able to access

the web.config file for the Web site or application. This can occur if the NTFS permissions are set incorrectly.</li>

<li>IIS was not able to process configuration for the Web site or application.</li> <li>The authenticated user

does not have permission to use this DLL.</li> </ul>

</fieldset>

</div>

<div class="content-container">

<fieldset><h4>Things you can try:</h4>

<ul> <li>Verify that the module name is not misspelled in the configuration/system.webServer/globalModules

config section. The error description may contain additional information to help you determine which module is causing

the error.</li> <li>Ensure that the NTFS permissions for the web.config file are correct and allow access to the

Web server's machine account.</li> <li>Check the event logs to see if any additional information was logged.</li>

<li>Verify the permissions for the DLL.</li> <li>Create a tracing rule to track failed requests for this HTTP

status code. For more information about creating a tracing rule for failed requests, click <a

href="http://go.microsoft.com/fwlink/?LinkID=66439">here</a>. </li> </ul>

</fieldset>

</div>

 

<div class="content-container">

<fieldset><h4>Detailed Error Information:</h4>

<div id="details-left">

<table border="0" cellpadding="0" cellspacing="0">

<tr class="alt"><th>Module</th><td>&nbsp;&nbsp;&nbsp;IIS Web Core</td></tr>

<tr><th>Notification</th><td>&nbsp;&nbsp;&nbsp;BeginRequest</td></tr>

<tr class="alt"><th>Handler</th><td>&nbsp;&nbsp;&nbsp;Not yet determined</td></tr>

<tr><th>Error Code</th><td>&nbsp;&nbsp;&nbsp;0x80070002</td></tr>

 

</table>

</div>

<div id="details-right">

<table border="0" cellpadding="0" cellspacing="0">

<tr class="alt"><th>Requested URL</th><td>&nbsp;&nbsp;&nbsp;https://ExchSrvr.mail.com:444/powershell?serial

izationLevel=Full;ExchClientVer=15.0.1395.4;clientApplication=ManagementShell;TargetServer=;PSVersion=3.0&amp;sessionID

=Version_15.0_(Build_1394.4)=rJqNiZqNgaqsuqe8t8/O0ZyQkYuWkYqKkpGai9GckJKBzsbLzsbGycbOyoHNz87H0s7O0s/Kq8/LxczJxc3H</td><

/tr>

<tr><th>Physical Path</th><td>&nbsp;&nbsp;&nbsp;C:\Program Files\Microsoft\Exchange

Server\V15\ClientAccess\PowerShell-Proxy</td></tr>

<tr class="alt"><th>Logon Method</th><td>&nbsp;&nbsp;&nbsp;Not yet determined</td></tr>

<tr><th>Logon User</th><td>&nbsp;&nbsp;&nbsp;Not yet determined</td></tr>

 

</table>

<div class="clear"></div>

</div>

</fieldset>

</div>

 

<div class="content-container">

<fieldset><h4>More Information:</h4>

This error means that there was a problem while processing the request. The request was received by the Web server,

but during processing a fatal error occurred, causing the 500 error.

<p><a href="http://go.microsoft.com/fwlink/?LinkID=62293&amp;IIS70Error=500,0,0x80070002,9200">View more information

&raquo;</a></p>

<p>Microsoft Knowledge Base Articles:</p>

<ul><li></li></ul>

 

</fieldset>

</div>

</div>

</body>

</html>

Error occurred during the Kerberos reponse.

[Server=ExchSrvr, TimeStamp = 114/2018 23:28:18]

For more information, see the about_Remote_Troubleshooting Help topic.

At line:1 char:1

+ New-PSSession -ConnectionURI "$connectionUri" -ConfigurationName Microsoft.Excha ...

+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotin

gTransportException

+ FullyQualifiedErrorId : -2144108173,PSSessionOpenFailed

 

EMS Error #2:

failed with the following error message: [ClientAccessServer=,BackEndServer=,RequestId=d89f6ed1-19

8b-4a00-9941-a08f1bb78c54,TimeStamp=11/5/2018 6:58:02 AM]

[AuthZRequestId=b2c5b4c3-edd9-410c-a7fe-af0499783858][FailureCategory=AuthZ-SetupVersionInformationCorruptException] Unable to determine the installed file version from the registry key 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine'. For more information, see the about_Remote_Troubleshooting Help topic.

At line:1 char:1

 

EAC Error #1 (occurs with EMS Error #2):

Connecting to remote server failed with the following error message : IIS 8.0 Detailed Error - 500.0 - Internal Server Error

 

Cause:

EMS Error #1 occurs because the WS-Management (WSMan) module is not registered / loaded in IIS.

 

EMS Error #2 and EAC Error #1 occurs because Windows PowerShell version 2.0 is not installed.

 

Resolution:

To resolve EMS Error #1 follow these steps.

  1. Open IIS and navigate to the Default Web Site.
  2. In the control pane, click on Modules.
  3. WSMan should not be found in the enabled modules list.
  4. Click on Configure Native Modules in the action pane.
  5. Verify that WSMan is listed there without a check in the box next to it.
    1. If WSMan is not listed, go to step 10.
  6. Navigate to PowerShell virtual directory under Default Web Site.
  7. Click on Modules in the control pane.
  8. Verify WSMan is not in the list of enabled modules.
  9. Click on Configure Native Modules in the action pane. Verify that WSMan is listed without a check in the box next to it.
  10. If WSMan does not appear in the list, click on the Server's Name in the left navigation pane and then click on Modules in the control pane.
  11. Click on Configure Native Modules in the action pane.
  12. Click on the Register button.
  13. Enter "WSMan" in the Name field and "%windir%\system32\wsmsvc.dll" (both entries without the quotation marks). Click OK button to save and register.
  14. WSMan should now appear in the list of native modules without a check in the box next to it.
  15. Open a Command Prompt (w/ administrator privileges) and execute IISRESET /noforce command.

Error EMS #1 should now be resolved when you retry performing the action.

 

To resolve EMS Error #2 and EAC Error #1, perform the following steps to install Windows PowerShell version 2.0.

  1. Open Server Manager.
  2. Click on Manage and then select Add Roles and Features.
  3. Click next a few times in the wizard until you reach Select Features screen.
  4. Expand Windows PowerShell selection and check the box next to Windows PowerShell 2.0 Engine and then keep clicking next until you see an install button.
  5. Click install and wait until the operation completes.
  6. Reboot the server.

When you launch EMS or EAC, you should be able to get into both tools without any issue at this point.

September 01
Sonus SBC -  Not able to access web GUI

Problem Description:

Encountered the following error when attempting to access the web GUI of a Sonus SBC 1000/2000 using https://<IP_Addr>:

GOOGLE CHROME

This site can't provide a secure connection

10.22.203.15 uses an unsupported protocol.

ERR_SSL_VERSION_OR_CIPHER_MISMATCH

Unsupported protocol

The client and server don't support a common SSL protocol version or cipher suite.

MOZILLA FIREFOX

An error occurred during a connection to 10.22.203.15. Cannot communicate securely with peer: no common encryption algorithm(s). Error code: SSL_ERROR_NO_CYPHER_OVERLAP

INTERNET EXPLORER

Turn on TLS 1.0, TLS 1.1, and TLS 1.2 in Advanced settings and try connecting to https://10.22.203.15 again. If this error persists, it is possible that this site uses an unsupported protocol or cipher suite such as RC4 (link for the details), which is not considered secure. Please contact your site administrator.

 

RESOLUTION:

  1. In INTERNET EXPLORER, go to Tools, Options, select Advanced Tab, scroll down to Security section and check box next to SSL2.0, SSL3.0, and TLS1.0 and uncheck TLS1.1 and TLS1.2.
  2. Upgrade SBC firmware from 4.1.1 to 7.0.2. After upgrading, should be able to access with any browser.
September 01
Azure AD Connect Health Sync Agent failed to register

Description of Issue(s) Experienced:

Encountered the following error messages after upgrading Azure AD Connect on a Windows 2012 member server running Exchange Server 2013 in hybrid configuration. This server is responsible for executing periodic directory synchronization fo the on-premises Active Directory to Azure AD (Office 365). The AAD Health Sync Agent monitors the process and sends notification alerts via email to global administrators if there are any issues.

 

PS C:\>

PS C:\> $azureUserName="globaladmin@TenantID.onmicrosoft.com"

PS C:\>

PS C:\> $azurePassword="**********"

PS C:\>

PS C:\> $azureSecurePassword = ConvertTo-SecureString $azurePassword -AsPlainText -Force

PS C:\>

PS C:\> $azureCreds = New-Object System.Management.Automation.PSCredential $azureUserName, $azureSecurePassword

PS C:\>

PS C:\> Register-AzureADConnectHealthSyncAgent -Credential $azureCreds

2018-05-31 13:53:54.349 ProductName: Microsoft Azure AD Connect Health agent for sync, FileVersion: 3.0.164.0, Current

UTC Time: 2018-05-31 13:53:54Z

 

2018-05-31 13:53:54.349 enableRegiration: True

 

2018-05-31 13:53:54.349 AHealthServiceUri (ARM): https://management.azure.com/providers/Microsoft.ADHybridHealthService

/

 

2018-05-31 13:53:54.364 AdHybridHealthServiceUri: https://s1.adhybridhealth.azure.com/

 

2018-05-31 13:53:54.364 AHealthServiceUri (ARM): https://management.azure.com/providers/Microsoft.ADHybridHealthService

/

 

2018-05-31 13:53:54.364 AdHybridHealthServiceUri: https://s1.adhybridhealth.azure.com/

 

2018-05-31 13:53:54.786 AHealthServiceApiVersion: 2014-01-01

 

2018-05-31 13:53:56.112 Detecting AadSyncService roles...

 

2018-05-31 13:53:57.063 Detected the following role(s) for ContinuumInnovations.onmicrosoft.com:

 

2018-05-31 13:53:57.063     Microsoft Azure Active Directory Sync Services

 

2018-05-31 13:54:02.976 Aquiring Monitoring Service certificate using tenant.cert

 

Register-AzureADConnectHealthSyncAgent : Failed configuring Monitoring Service using command: C:\Program

Files\Microsoft Azure AD Connect Health Sync

Agent\Monitor\Microsoft.Identity.Health.AadSync.MonitoringAgent.Startup.exe sourcePath="C:\Program Files\Microsoft

Azure AD Connect Health Sync Agent\tenant.cert" version="1.1.819.0"

At line:1 char:1

+ Register-AzureADConnectHealthSyncAgent -Credential $azureCreds

+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo : NotSpecified: (:) [Register-AzureADConnectHealthSyncAgent], InvalidOperationException

+ FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.Identity.AadConnect.Health.AadSync.PowerShell

.ConfigurationModule.RegisterAzureAdConnectHealthSyncAgent

 

 

 

PS C:\temp> .\AADConnect-CommunicationsTest.ps1

 

Security warning

Run only scripts that you trust. While scripts from the internet can be useful, this script can potentially harm your

computer. If you trust this script, use the Unblock-File cmdlet to allow the script to run without this warning

message. Do you want to run C:\temp\AADConnect-CommunicationsTest.ps1?

[D] Do not run [R] Run once [S] Suspend [?] Help (default is "D"): R

Running all tests.

[2018-07-20 09:54:37] [SUCCESS] :: Successfully logged on to Azure Active Directory as .

[2018-07-20 09:54:37] [SUCCESS] :: User is a member of Global Administrators.

[2018-07-20 09:54:37] [SUCCESS] :: Successfully resolved _ldap._tcp.CONTINUUMNET.COM.

[2018-07-20 09:54:37] [SUCCESS] :: Successfully resolved BOSDC2.CONTINUUMNET.COM.

[2018-07-20 09:54:37] [ERROR] :: Exception: Error attempting TCP connection to BOSDC2.CONTINUUMNET.COM:53.

[2018-07-20 09:54:37] [ERROR] :: Exception: Error attempting TCP connection to BOSDC2.CONTINUUMNET.COM:135.

[2018-07-20 09:54:37] [ERROR] :: Exception: Error attempting TCP connection to BOSDC2.CONTINUUMNET.COM:389.

[2018-07-20 09:54:38] [ERROR] :: Exception: Error attempting TCP connection to BOSDC2.CONTINUUMNET.COM:445.

[2018-07-20 09:54:38] [ERROR] :: Exception: Error attempting TCP connection to BOSDC2.CONTINUUMNET.COM:3268.

[2018-07-20 09:54:38] [INFO] :: Testing CRL endpoint tests (Invoke-WebRequest).

[2018-07-20 09:54:38] [SUCCESS] :: Successfully obtained CRL from http://crl.microsoft.com/pki/crl/products/microsoftrootcert.crl.

[2018-07-20 09:54:38] [SUCCESS] :: Successfully obtained CRL from http://mscrl.microsoft.com/pki/mscorp/crl/msitwww2.crl.

[2018-07-20 09:54:38] [SUCCESS] :: Successfully obtained CRL from http://ocsp.verisign.com.

[2018-07-20 09:54:38] [SUCCESS] :: Successfully obtained CRL from http://ocsp.entrust.net.

[2018-07-20 09:54:38] [INFO] :: Testing Required Resources (TCP:443).

[2018-07-20 09:54:38] [ERROR] :: Error resolving or connecting to adminwebservice.microsoftonline.com [13.106.56.10]:443

[2018-07-20 09:54:38] [ERROR] :: Error resolving or connecting to login.microsoftonline.com [23.100.72.34]:443

[2018-07-20 09:54:38] [ERROR] :: Error resolving or connecting to login.microsoftonline.com [23.100.72.33]:443

[2018-07-20 09:54:38] [ERROR] :: Error resolving or connecting to login.microsoftonline.com [65.52.1.18]:443

[2018-07-20 09:54:38] [ERROR] :: Error resolving or connecting to login.microsoftonline.com [65.52.193.138]:443

[2018-07-20 09:54:38] [ERROR] :: Error resolving or connecting to login.microsoftonline.com [65.52.1.16]:443

[2018-07-20 09:54:38] [ERROR] :: Error resolving or connecting to login.microsoftonline.com [65.52.1.17]:443

[2018-07-20 09:54:39] [ERROR] :: Error resolving or connecting to provisioningapi.microsoftonline.com [65.52.193.139]:443

[2018-07-20 09:54:39] [ERROR] :: Error resolving or connecting to provisioningapi.microsoftonline.com [23.100.72.36]:443

[2018-07-20 09:54:39] [ERROR] :: Error resolving or connecting to provisioningapi.microsoftonline.com [65.52.1.19]:443

[2018-07-20 09:54:39] [ERROR] :: Error resolving or connecting to provisioningapi.microsoftonline.com [23.101.165.170]:443

[2018-07-20 09:54:39] [ERROR] :: Error resolving or connecting to provisioningapi.microsoftonline.com [23.100.72.35]:443

[2018-07-20 09:54:39] [ERROR] :: Error resolving or connecting to login.windows.net [23.100.72.33]:443

[2018-07-20 09:54:39] [ERROR] :: Error resolving or connecting to login.windows.net [65.52.1.18]:443

[2018-07-20 09:54:39] [ERROR] :: Error resolving or connecting to login.windows.net [65.52.1.17]:443

[2018-07-20 09:54:39] [ERROR] :: Error resolving or connecting to login.windows.net [65.52.193.137]:443

[2018-07-20 09:54:39] [ERROR] :: Error resolving or connecting to login.windows.net [65.52.1.16]:443

[2018-07-20 09:54:39] [ERROR] :: Error resolving or connecting to login.windows.net [65.52.193.138]:443

[2018-07-20 09:54:39] [ERROR] :: Error resolving or connecting to login.windows.net [23.100.72.34]:443

[2018-07-20 09:54:39] [ERROR] :: Error resolving or connecting to login.windows.net [65.52.193.136]:443

[2018-07-20 09:54:39] [ERROR] :: Error resolving or connecting to secure.aadcdn.microsoftonline-p.com [104.88.91.203]:443

[2018-07-20 09:54:39] [ERROR] :: Error resolving or connecting to management.core.windows.net [23.102.135.246]:443

[2018-07-20 09:54:39] [ERROR] :: Error resolving or connecting to bba800-anchor.microsoftonline.com [157.55.130.72]:443

[2018-07-20 09:54:40] [INFO] :: Testing Optional Resources (TCP:443).

[2018-07-20 09:54:40] [WARN] :: Error resolving or connecting to management.azure.com [52.235.62.51]:443

[2018-07-20 09:54:40] [WARN] :: Error resolving or connecting to policykeyservice.dc.ad.msft.net [23.101.165.170]:443

[2018-07-20 09:54:40] [WARN] :: Error resolving or connecting to policykeyservice.dc.ad.msft.net [65.52.193.139]:443

[2018-07-20 09:54:40] [WARN] :: Error resolving or connecting to policykeyservice.dc.ad.msft.net [23.100.72.36]:443

[2018-07-20 09:54:40] [WARN] :: Error resolving or connecting to policykeyservice.dc.ad.msft.net [23.100.72.35]:443

[2018-07-20 09:54:40] [WARN] :: Error resolving or connecting to policykeyservice.dc.ad.msft.net [65.52.1.19]:443

[2018-07-20 09:54:40] [WARN] :: Error resolving or connecting to s1.adhybridhealth.azure.com [65.52.193.139]:443

[2018-07-20 09:54:40] [WARN] :: Error resolving or connecting to s1.adhybridhealth.azure.com [23.100.72.36]:443

[2018-07-20 09:54:40] [WARN] :: Error resolving or connecting to s1.adhybridhealth.azure.com [23.100.72.35]:443

[2018-07-20 09:54:40] [WARN] :: Error resolving or connecting to s1.adhybridhealth.azure.com [65.52.1.19]:443

[2018-07-20 09:54:40] [WARN] :: Error resolving or connecting to s1.adhybridhealth.azure.com [23.101.165.170]:443

[2018-07-20 09:54:40] [INFO] :: Testing Required Resources Endpoints (Invoke-Webrequest).

[2018-07-20 09:54:41] [SUCCESS] :: Successfully connected to https://adminwebservice.microsoftonline.com/provisioningservice.svc.

[2018-07-20 09:54:41] [SUCCESS] :: Successfully connected to https://login.microsoftonline.com.

[2018-07-20 09:54:48] [SUCCESS] :: Successfully connected to https://provisioningapi.microsoftonline.com/provisioningwebservice.svc.

[2018-07-20 09:54:48] [SUCCESS] :: Successfully connected to https://login.windows.net.

[2018-07-20 09:54:48] [SUCCESS] :: Successfully connected to https://secure.aadcdn.microsoftonline-p.com/ests/2.1.5975.9/content/cdnbundles/jquery.1.11.min.js.

[2018-07-20 09:54:48] [INFO] :: Testing Optional Resources Endpoints (Invoke-Webrequest).

[2018-07-20 09:54:49] [SUCCESS] :: Successfully connected to https://policykeyservice.dc.ad.msft.net/clientregistrationmanager.svc.

[2018-07-20 09:54:49] [INFO] :: Testing Seamless SSO Endpoints (TCP:443).

[2018-07-20 09:54:49] [ERROR] :: Error resolving or connecting to autologon.microsoftazuread-sso.com [65.52.193.138]:443

[2018-07-20 09:54:49] [ERROR] :: Error resolving or connecting to autologon.microsoftazuread-sso.com [65.52.1.16]:443

[2018-07-20 09:54:49] [ERROR] :: Error resolving or connecting to autologon.microsoftazuread-sso.com [65.52.1.17]:443

[2018-07-20 09:54:49] [ERROR] :: Error resolving or connecting to autologon.microsoftazuread-sso.com [23.100.72.34]:443

[2018-07-20 09:54:49] [ERROR] :: Error resolving or connecting to autologon.microsoftazuread-sso.com [23.100.72.33]:443

[2018-07-20 09:54:49] [ERROR] :: Error resolving or connecting to autologon.microsoftazuread-sso.com [65.52.1.18]:443

[2018-07-20 09:54:49] [ERROR] :: Error resolving or connecting to aadg.windows.net.nsatc.net [65.52.1.16]:443

[2018-07-20 09:54:49] [ERROR] :: Error resolving or connecting to aadg.windows.net.nsatc.net [65.52.1.17]:443

[2018-07-20 09:54:49] [ERROR] :: Error resolving or connecting to aadg.windows.net.nsatc.net [23.100.72.34]:443

[2018-07-20 09:54:49] [ERROR] :: Error resolving or connecting to aadg.windows.net.nsatc.net [23.100.72.33]:443

[2018-07-20 09:54:49] [ERROR] :: Error resolving or connecting to aadg.windows.net.nsatc.net [65.52.1.18]:443

[2018-07-20 09:54:50] [ERROR] :: Error resolving or connecting to aadg.windows.net.nsatc.net [65.52.193.138]:443

[2018-07-20 09:54:50] [ERROR] :: Error resolving or connecting to 0.register.msappproxy.net [52.173.21.84]:443

[2018-07-20 09:54:50] [ERROR] :: Error resolving or connecting to 0.registration.msappproxy.net [52.173.21.84]:443

[2018-07-20 09:54:50] [INFO] :: Testing Additional Resources Endpoints (Invoke-Webrequest).

[2018-07-20 09:54:50] [WARN] :: Error resolving or connecting to watchdog.servicebus.windows.net [70.37.104.240]:5671

[2018-07-20 09:54:51] [INFO] :: Checking TLS settings for Windows Server 2012.

[2018-07-20 09:54:51] [INFO] :: Done! Logfile is 2018-07-20_AADConnectConnectivity.txt.

 

Recent changes that could have possibly contributed to creating this issue were as follows:

  1. Ran IISCrypto.exe to disable weak protocols (i.e. SSLv2 and SSLv3) and ciphers (i.e. RC2, RC4, DES, and 3DES) and enable strong protocols and ciphers (i.e. TLSv1.2, AES128, and AES256).
  2. Enabled and then disabled FIPS compliant security using the steps summarized as follows:
    1. Using an account that has administrative credentials, log on to the computer.
    2. Click Start, click Run, type gpedit.msc, and then press ENTER.
    3. In the Local Group Policy Editor, under the Computer Configuration node, double-click Windows Settings, and then double-click Security Settings.
    4. Under the Security Settings node, double-click Local Policies, and then click Security Options.
    5. In the details pane, double-click System cryptography: Use FIPS-compliant algorithms for encryption, hashing, and signing.
    6. In the System cryptography: Use FIPS-compliant algorithms for encryption, hashing, and signing dialog box, click Enabled, and then click OK to close the dialog box.
    7. Close the Local Group Policy Editor.
    8. If you wish to do this manually, you can also simply change the registry key HKLM\System\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy\Enabled to 1
  3. Added these two (2) registry keys:

 

Eventually we were not able to RDP to the Windows 2012 Server as a related issue experienced.

 

Resolution:

We resolved the issue by doing the following:

  1. Navigating to the "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys" folder.
    1. Modifying the security permissions on this folder (right-click on MachineKeys folder, click on properties, click on security tab, click on advanced, click on permissions, add full control permissions to Local Administrators group on the server, click on replace permissions check box). Note that you may need to take ownership of this folder in order to modify the permissions.
  2. Creating a subfolder named "Archive".
  3. Moving all the system files in this directory into the Archive subfolder (system files will have long alpha numeric names such as "f686aace6942fb7f7ceb231212eef4a4_ac81b1e3-5312-44a2-b264-124a1cc52d0f").
  4. Launched an elevated Windows PowerShell.  Executed the following command to manually register the health sync agent: Register-AzureADConnectHealthSyncAgent -AttributeFiltering $false -StagingMode $false.

After executing the preceding steps, the AAD Health Sync Agent was successfully registered and we could once again RDP into the Windows 2012 server successfully.

 

Tools / Resources Used:

PowerShell Commands

# The following command manually registers the Azure AD Connect Health Sync Agent.

Register-AzureADConnectHealthSyncAgent -AttributeFiltering $false -StagingMode $false

 

# The following command tests/validates the Azure AD Connect Health Sync Agent connectivity.

Test-AzureADConnectHealthConnectivity -Role Sync -ShowResult

PowerShell Scripts

AADConnect-CommunicationsTest.ps1

 

Reference Links:

What actually happens when you enforce FIPS140-2 compliant encryption within Windows. Details are at http://technet.microsoft.com/en-us/library/cc750357.aspx.

The official instructions to enable FIPS 140-2 compliance are at http://support.microsoft.com/kb/811833,

Article relating to resolving issues with connecting to Terminal Services via RDP: https://blogs.technet.microsoft.com/the_9z_by_chris_davis/2014/02/20/event-id-1057-the-terminal-server-has-failed-to-create-a-new-self-signed-certificate/.

May 28
Enable TLS 1.1 & 1.2 as Default Secure Protocols in WinHTTP

Reference Links:

https://www.admin-enclave.com/en/articles/windows/402-enable-tls-1-1-and-tls-1-2-as-a-default-secure-protocols-in-winhttp.html

https://support.microsoft.com/en-us/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-a-default-secure-protocols-in

 

The setting in the graphic is INCORRECT (this setting enables TLS 1.0, 1.1, and 1.2).  The CORRECT setting is 0x00000a00 (2560), which is Hex 0200 + Hex 0800 to enable TLS 1.1 & 1.2.

 

The registry value is a DWORD bitmap. The value to use is determined by adding the values corresponding to the protocols desired. 

DefaultSecureProtocols Value

Protocol enabled

0x00000008

Enable SSL 2.0 by default

0x00000020

Enable SSL 3.0 by default

0x00000080

Enable TLS 1.0 by default

0x00000200

Enable TLS 1.1 by default

0x00000800

Enable TLS 1.2 by default

For example:

The administrator wants to override the default values for WINHTTP_OPTION_SECURE_PROTOCOLS to specify TLS 1.1 and TLS 1.2.

Take the value for TLS 1.1 (0x00000200) and the value for TLS 1.2 (0x00000800) then add them together in calculator (in programmer mode), the resulting registry value would be 0x00000A00.

May 17
Two-Factor Authentication with Skype for Business
1 - 10Next
 

 Image Viewer

 
 

 About this blog

 
About this blog
Welcome to Xadean's contribution to the consulting community through sharing his anthology of lesson's learned and technical insights.