Pages

Saturday, February 6, 2016

Configuring Load Balanced LDAPS Load Balancing Virtual Server on NetScaler version 11

I recently had to configure a Load Balanced LDAPS Load Balancing Virtual Server on a NetScaler version 11 for a client and since the procedure is slightly different than earlier versions, I took the time to document the steps so I can write this post for future reference.  The Netscaler used in this example will be a VPX 200 NS11.0 62.10.nc:

image

Step #1 – Create Server Objects

Begin by logging into the NetScaler appliance and navigating to Traffic Management > Load Balancing > Servers and create the server objects that represent your domain controllers that will be used in the load balancing virtual server:

image

For this example, I will be creating 3 server objects for 3 Domain Controllers:

image

image

Step #2 – Create LDAPS Monitor

With the server objects created, navigate to Management > Load Balancing > Monitors to create the monitor object that will reach out to the domain controllers and execute an LDAPS query to verify the health of the server:

image

Type in a name to represent this monitor that will query servers to verify LDAPS is operational, select LDAP as the Type:

image

Leave all of the text fields as the default then scroll all the way down to the bottom and select the Secure checkbox:

image

**Note that previous to NetScaler version 11, we would have had to customize the regular LDAP monitor script (nsldap.pl) to perform LDAPS health verification.

Scroll back up to the top of the page and select the Special Parameters tab:

image

Proceed to fill in the following fields:

Script Name: nsldap.pl

Dispatcher IP: 127.0.0.1

Dispatcher Port: 3013

Base DN: dc=yourDomain,dc=com

Bind DN: svc_netscaler@yourDomain.com

Filter: cn=builtin

Password: <password for the service account>

image

Proceed by clicking on the Create button to create the monitor:

image

Step #3 – Create Service Group

With the server objects representing the domain controllers and monitor capable of querying to verify the health of LDAPS, continue by creating a service group that represents the domain controllers that will represent a physical site or a logical separation from other domain controllers in your environment. For the purpose of this example, I will be creating a group that represents domain controllers that reside in the same datacenter. Navigate to Management > Load Balancing > Service Groups and click on the Add button:

image

Type in a name to represent the Load Balancing Service Group then select SSL_TCP as the Protocol then click on the OK button to continue:

image

Proceed by clicking on the No Service Group Member item:

image

In the Create Service Group Member window, click on the Server Based option:

image

image

Then select the server objects that were created earlier to represent the domain controllers:

image

With the servers selected, put in the value 636 as the Port number then click on the Create button to create the Service Group Member:

image

Continue by clicking the OK button:

image

With the Service Group Members assigned, continue by clicking on the Monitors button on the right side of the menu then click on the No Service Group to Monitor Binding item:

image

image

In the Load Balancing Monitor Binding window, click on the Select Monitor option:

image

Select the LDAPS monitor that was created earlier in Step #2:

image

Click on the Bind button:

image

Before navigating out of the Load Balancing Service Group, click on the 3 Service Group Members item:

image

Select one of the domain controllers and then click on Monitor Details:

image

Verify that the Last Response status is labeled as Success – Probe succeeded:

image

Repeat for the other domain controllers then proceed to exit out of the monitors then click on Done to complete the creation of the Load Balancing Service Group:

image

It’s important to note that the Effective State may be labeled as DOWN after the initial creation but a few refreshes of the console should list it as being up:

image

image

Step #4 – Create the Load Balancing Virtual Server

With the server, the monitor and the service group representing the domain controllers created, proceed by importing the certificate that will be used to secure the traffic to the load balancing virtual server’s VIP when clients attempt to connect to the FQDN that resolves to the IP address:

image

Then create a new load balancing virtual server:

image

Enter a name to represent the load balancing virtual server, SSL_TCP as the Protocol, a unique IP address for this virtual server, and 636 for the Port and the Ok button to apply the configuration:

image

Continue by click on the No Load Balancing Virtual Server ServiceGroup Binding item:

image

Select the service group that was created earlier:

image

image

Click on the Bind button:

image

Click on the Continue button:

image

Click on the No Server Certificate item:

image

Select the certificate used for this load balancing virtual server:

image

image

Click on the Bind button to bind the certificate to the load balancing virtual server:

image

Click on the Continue button:

image

Then the done button to complete the creation:

image

The new load balancing virtual server representing the 3 domain controllers for LDAPS configuration is now ready to be used:

image

Friday, February 5, 2016

Unable to search Skype Directory when logged in through the Edge Server after upgrading to Skype for Business Server 2015

Problem

You’ve successfully completed upgrading your Lync Server 2010 or 2013 environment to Skype for Business Server 2015 but noticed that you receive the following error when attempting to use the SKYPE DIRECTORY tab to search the Skype directory:

Search for Skype contacts by name, Skype Name, email address, phone number, and location.

An error occurred during the search. Please try again, and contact your support team if the problem continues.

image

You’ve confirmed that the Edge server properties in the Topology Builder has the following configuration enabled:

Enable Skype-Skype federation search for this Edge pool (port 4443)

Choose this option, Skype-Skype federation will have federation search enabled by default.

image

You’ve successfully recreated the Skype Public Provider with:

New-CsPublicProvider -Identity Skype -ProxyFqdn federation.messenger.msn.com –IconUrl https://images.edge.messenger.live.com/Messenger_16x16.png -NameDecorationRoutingDomain msn.com -NameDecorationExcludedDomainList "msn.com,outlook.com,live.com,hotmail.com" -VerificationLevel UseSourceVerification -Enabled $true -EnableSkypeIdRouting $true -EnableSkypeDirectorySearch $true

You’ve noticed that the SKYPE DIRECTORY search feature works when you are internally logged in:

image

Using the Remote Connectivity Analyzer tool online at https://testconnectivity.microsoft.com/ returns green status with no errors.

Solution

This issue threw me off for an hour because all the external tests I ran came back in good health yet it was apparently there was something wrong with the Edge server because searching the Skype directory worked internally.  As I began running out of ideas, I decided to check the TMG publishing rule for the Web Services and to my surprise threw the following error when I attempted to test the rule:

image

All of the required secure 4443 port publishing tests failed with the error:

image

Category: Destination server certificate error

Error details: 0x80090322 – The target principal name is incorrect.

Action: Go to http://go.microsoft.com/fwlink/?LinkId=115965

To confirm that external web services was indeed broken, I attempted to browse to the URL:

https://<domain>/groupexpansion/service.svc

… and was able to confirm I did not get a authentication prompt. After spending a bit of time reviewing the TMG publishing rule then replacing the external web services certificate to use an internally generated certificate rather than the same certificate used on the TMG that was published by an external CA, the tests were finally in good health:

image

Correcting the issue with SfB’s Web Services fixed the Skype directory lookup error when logging in through the Edge server:

image

Hope this helps anyone out there who may come across this issue as the root cause wasn’t obvious because publishing the Web Services through TMG meant using the Remote Connectivity Analyzer tool online at https://testconnectivity.microsoft.com/ returns green if the TMG is able to listen to traffic but not successfully communicate to the Lync front-end pool.

Thursday, February 4, 2016

VMware Horizon View Agent installation fails with: "Error 1311. Source file not found:"

Problem

You attempt to install the VMware Horizon View agent onto a Windows 7 virtual machine but the installation fails with the following error message:

Error 1311. Source file not found:

C:\Users\<userName>\Appdata\Local\Temp\{68CA9784-0791-433F-8EBF-0714B20B627F}~setup\VmwVau~1.cab. Verify that the file exists and that you can access it.

Navigate to the path above shows that the VmwVau~cab file exists and permissions are set correctly:

imageimage

Solution

This issue threw me off for a bit because the only information I could find on the internet was that the VMware Horizon View agent installer was corrupted but comparing the files did not show any differences in byte count:

image

Since I’ve ran out of options, I went ahead and downloaded the agent directly from the VMware portal rather than copying it from a file share I had downloaded the file to previously and the installation completed.

Installing / Enabling Adobe Flash on Windows Server 2012 R2

I’ve been asked several times last year about how to install / enable Adobe Flash on a Windows Server 2012 R2 server and while I’m not a supporter of installing any Adobe products on servers, there are situations where it’s handy to have.  The following steps demonstrates how to get it installed / enabled:

If you ever attempt to access a web page such as the VMware Horizon View Administration webpage with Internet Explorer on a WIndows Server 2012 R2 server, you’ll be presented with the following:

View Administrator requires Adobe Flash 10.1 or higher. Click below to download.

image

Attempting to run an installer downloaded from the Adobe site will display the following message:

Adobe Flash Player 16.0 Installer

The installation encountered errors:

Your Microsoft Internet Explorer browser includes the latest version of the Adobe Flash Player built-in. Windows Update will inform you when new versions of the Flash Player are available.

image

image

To install / enable Adobe Flash, launch the Server Manager and click on Add roles and features:

image

Click through the wizard until you reach the Features options and scroll down to the User Interfaces and Infrastructure item:

image

Expand the User Interfaces and Infrastructure item and enable the Desktop Experience option:

imageimage

image

Proceed with the install:

image

image

Once the component has been installed and server rebooted, Adobe Flash should now be enabled for Internet Explorer:

image

If for whatever reason it isn’t enabled, click on the IE options icon on the top right corner, then open Manage add-ons:

image

From within the Toolbars and Extensions menu, you should see a Shockwave Flash Object item displayed. If it is disabled, proceed to enabling it:

image

Wednesday, February 3, 2016

Removing a Skype for Business Server 2015 Standard Server and Conference Directory

I was recently asked to assist with removing a Skype for Business Server 2015 Standard server from an environment after an administrator deployed a new Standard Edition server in an effort to upgrade the operating system from Windows Server 2012 R1 to R2 because the former continuously bluescreened and rebooted ever few hours.  All the users had been moved over the new pool but the administrator was unable to remove the Conference Directory which would then allow him to remove the legacy standard edition server.

The first step, which was to remove the Conference Directory, is to use the cmdlet:

Get-CsConferenceDirectory

… to list the conference directories so that we could identify which directory belonged to which pool:

image

As shown in the screenshot above, the conference directory that we would like to remove is the first one with the identity value of 1 (lyncstd01).  The next step is to use the cmdlet:

Remove-CsConferenceDirectory -Identity 1

… to remove the directory but when this cmdlet is executed, the output indicates that the removal was unsuccessful:

PS C:\> Remove-CsConferenceDirectory -Identity 1

Remove-CsConferenceDirectory : Conference directory with ID "1" is not empty.

If you delete this conference directory, you will affect users who use dial-in

conferencing. If you are sure that you want to delete it, use the Force

parameter with this command.

At line:1 char:1

+ Remove-CsConferenceDirectory -Identity 1

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

+ CategoryInfo : NotSpecified: (:) [Remove-CsConferenceDirectory]

, ConferenceDirectoryException

+ FullyQualifiedErrorId : Conference directory with ID "1" is not empty. I

f you delete this conference directory, you will affect users who use dial

-in conferencing. If you are sure that you want to delete it, use the Forc

e parameter with this command.,Microsoft.Rtc.Management.ConferenceDirector

yCmdlets.RemoveConferenceDirectoryCmdlet

PS C:\>

If you’ve verified that all the users are moved off and there are no associations to the pool, it is safe to use the -force switch option to forcefully remove the pool as such:

Remove-CsConferenceDirectory -Identity 1 -force

The output should be similar to the following:

PS C:\> Remove-CsConferenceDirectory -Identity 1 -force

WARNING: Conference directory with ID "1" will not be checked to see if it is

safe to delete because the operation was invoked with the Force parameter.

Confirm

Are you sure you want to perform this action?

Performing the operation "Remove-CsConferenceDirectory" on target "Conference

directory 1".

[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help

(default is "Y"):Y

PS C:\>

image

What I’ve noticed quite often when I get called is that administrators tend to execute Enable-CsTopology immediately only to find that the Conference Directory gets recreated.  What you should actually do at this point is to proceed with using the Topology Builder to delete the Standard Edition server, then publish the topology.  By following this proceedure, the pool will not get recreated and the publishing should complete successfully with both pool and conference directory removed.

image

Tuesday, February 2, 2016

Dell Wyse Device Manager Version 5.0 WDMServiceLog process pegs processor at 100%

Problem

Dell Wyse Device Manager Version 5.0 is installed onto a Windows Server 2012 R2 server:

clip_image002

… and you notice that the WDMServiceLog (32 bit) / RptSvcLog.exe process consistently consumes close to 100% of the CPU process pegging the processor at 100% and allowing the server down to a crawl:

clip_image002

clip_image002[4]

Solution

While the following may not be the best solution for the issue as it’s more of a workaround, it was the only one I could find while searching:

http://www.technicalhelp.de/forums/topic/problem-with-wdm-service-log-makes-cpu-usage-go-to-100/

The suggestion was to disable the WDM Service Logs logging service found here in the Preferences options:

clip_image002[6]

Disabling this service will cause the WDMServiceLog (32 bit) / RptSvcLog.exe never to run and therefore fixes the issue.

Monday, February 1, 2016

Attempting to add View Composer settings to a new VMware Horizon View deployment throws the error: “Error while checking the administrator. Please re-check your information.”

Problem

You’ve completed deploying a new set of VMware Horizon View 6.2.1 servers in an environment and began configuring the View Composer settings:

image

View Composer is collocated with the vCenter so you select the View Composer co-installed with vCenter Server option:

image

However, you receive the following error when committing the configuration settings:

Server Error

Error while attempting to connect to View Composer.

image

Server Error

A connection problem occurred between Connection Server, View Composer, and vCenter Server. Check that all the services are running and the ports and URLs are entered correctly.

image

Further attempts to continue without configuring the View Composer and then going back into the vCenter properties to configure it will throw the following error:

Server Error

Error while checking the administrator. Please re-check your information.

Solution

This error threw me off for over a few hours as I’ve never come across this issue and the only KB I could find to assist with troubleshooting this error was the following:

Adding the View Composer to the View Connection server fails with the error: Error while adding the administrator. Please re-check your information (1035626)
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1035626

… which point to connectivity errors but telnet tests to the View Composer port connect.  Further review of the debug logs show cryptic LDAP errors:

2016-01-19T21:16:40.737-04:00 ERROR (0644-152C) <pool-2-thread-1> [MessageBusSslConfigManager] Error reading common configuration: GSS-SPNEGO
2016-01-19T21:16:40.737-04:00 WARN  (0644-0A8C) <pool-1-thread-1> [LdapContextManager] Can't create a new LdapContext for server ldap://127.0.0.1:389/DC=vdi,DC=vmware,DC=int: javax.naming.AuthenticationException: GSS-SPNEGO [Root exception is javax.security.sasl.SaslException: Failed to initiate authentication: com.vmware.vdi.common.winauth.WinAuthCodifiedException: Failed to start authentication negotiation: Unknown error [Caused by com.vmware.vdi.common.winauth.WinAuthCodifiedException: Failed to start authentication negotiation: Unknown error]]

image

After not making any progress and waiting for a call back from the VMware engineer, I decided to ask the client to move the server to a different VLAN which caused the issue to instantly go away.  The client wasn’t able to tell me what the difference between the VLANs were but I assume there must have been some difference in firewall, routing or security rules.