Calendar

<<  May 2012  >>
MoTuWeThFrSaSu
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

Search

Integrate Lync Server 2010 with Exchange 2010 SP1 OWA - sha512 Certificate Limitation

by Omid Abdollahpour 27. December 2010 18:33
I'm still a beginner in Lync world but the Lync Server impresses me every single day I am spending some time with it. The deployment process of the Lync Server is quite simple; however in some cases few problems I've been experiencing makes me pull my hair. One of them was Lync Server 2010 integration with Exchange 2010 SP1 Outlook Web Access...

First of all, there are bunch of blog posts and instructions on the internet about how to integrate Lync Server 2010 with OWA so I won’t bother you with yet another instruction about how to do it. I would like to thank Ilse Van Criekinge and Jeff Guillet’s great step by step guides about the how to integrate Lync with OWA.

Jeff Guillet: How to Integrate Lync Server 2010 with Exchange 2010 SP1 OWA

Ilse Van Criekinge: Configuring Lync RC and Exchange 2010 SP1 to Enable OWA as a Lync Endpoint

Well, the problem I’ve been experiencing was that I couldn’t sign in to the “Instant Messaging” through Outlook Web Access which is based on Exchange Server 2010 SP1.


What I’ve seen so far on the internet is, it’s a quite common problem. Ilse has even written another blog post about how to troubleshoot Lync-Exchange OWA Integration. It really helped me to find out where the problem was but didn’t give me a clue about how to solve it, because I didn’t use any wildcard certificate or self-signed certificate. Obviously I could not see any problem with my implementation of the Lync Server. In my case, I’ve used a SAN certificate and defined following FQDN names:

Meet.domain.lcl
Dialin.domain.lcl
Admin-Lync.domain.lcl
Sip.domain.lcl
Lync.domain.lcl (the server host name)

Ilse’s blog post about troubleshooting Lync-Exchange OWA Integration

Before I get into more details with my problem, I would like to describe my lab environment:
- Two Domain Controllers
- Two Certificate Authority Servers with different configurations (more details will follow)
- One Exchange Server 2010 SP1 with all roles (CAS/HT/MBX/UM)
- Three Lync Servers (Standard with almost all roles/Director/Edge)

For troubleshooting, I’ve followed Ilse’s guides and this is what I’ve got.


It was quite strange that both Exchange and Lync servers could not communicate with each other even if they’ve got certificates from the same Issuing CA server which they also trusted (AD Certificate Services). After a little research on the internet, I couldn’t find any answers for why they couldn't communicate.

Just for the last try, I’ve enrolled brand new certificates for both Exchange Server and the Lync Server from another CA server in the same domain, reconfigured OWA Virtual Directory with the new certificate thumbprint in PowerShell and guess what; it made the integration work. The differences between these two CA servers are, the primary CA server issues certificates with sha512 hash algorithm while the other server issues with sha1.

For comparison, my old Exchange certificate:



And my new Exchange Certificate:


Please note that both the Exchange Server and the Lync Server have certificates from the same CA Server.

I've searched this behavior on the internet and the only single information I could find about this certificate limitation was an article in TechNet called “Request Certificates in Advance (Optional)”:

http://technet.microsoft.com/en-us/library/gg412733.aspx

Hope this information will also help you if you are also experiencing the same problem as I did... Now I may play with the Instant Messaging in OWA =)


By the way, Happy New Year!!!

Tags: ,

Exchange Server 2010 | Lync

Creating RBAC User Roles For Local Server Administration

by Omid Abdollahpour 13. December 2010 02:37

Time for yet another blog post...

My duty was to create RBAC user roles in Active Directory for delegating local administrator permissions on individual servers. The reason was having a better control of who are the local administrators in every single server in the domain and we also would like to create a new workflow that includes a team manager must approve their team members before the individual may become a local administrator on a single server which improves the internal security.

This task included creating Active Directory security groups for every single server, adding these groups in Administrators group and removing all other administrators which exists in the local Administrators group. Creating these groups and adding them one by one for 900 servers? No thanks, so what I've done is I've written three scripts, actually they are all identical but these scripts offers different types of input methods which is, "All Servers In Active Directory", "Single Server" and "A Server List in a CSV File". I could have wrap them up into a single script by using arguments and parameters in the functions but my deadline was quite short so I had to do it as effective and quick as possible.

Here we go, how these scripts works is:

- Load Quest ActiveRoles Management Shell for Active Directory in Powershell (To download the module, CLICK HERE)
- Ask for Domain Admin credentials
- Check AD if the server has a Windows Server OS. Drop all computers with Windows XP/Vista and 7. In cluster computer objects i AD, they don't include any OS information in AD which means the script doesn't create unnecessary security groups. Create a log file for dropped items
- Ping the server first, if the remote server responds - continue. Otherwise skip that server and create a log. The reason is minimizing the creation of the security groups becuase the risks of obsolete objects in AD. Yes, I know that some companies blocks ICMP in their internal environment but if you are 100% sure, go ahead and modify this script.
- Generate a security group name based on your naming standard and the server name and check if that name exists in AD. If that name exists in AD, create a log then move on the next server. If that object doesn't exist, go on to the next step.
- Create the AD object, wait for 15 seconds to replicate within the AD same site to ensure that the new security group is in place in every single AD server in the same site, then add the object in the servers local Administrators group.

(Keep in mind that it may take more than 15 seconds sometimes so in this case you might need to do a manual work for few servers. Take always look at the log files created by this script)

For removal of all other objects I have another script but I'll share it as soon as I find it in my laptop...

For a sneak preview of one of the scripts, click to: Create_RBAC_LocalAdmin_AllAD.ps1

To download all these scripts, CLICK HERE.

Tags: ,

Active Directory | Other | Powershell

Planning Tool for Microsoft Lync Server 2010 (Release Candidate)

by Omid Abdollahpour 12. October 2010 17:46

I've been interested in UC (Unified Communications) with Office Communications Server 2007 R2 for a long time but never really had the time to deploy a lab environment with OCS 2007 R2. However, there is new kid on the street, the Microsoft LYNC Server 2010, (Lync is a combination of "Link" and "Sync") which is the "new" version of OCS. I had the opportunity to play with the product at Swedish UC Club this evening and the only thing I may say about LYNC is, I LOVED IT!!!

This time, I am really serious about to learn (hopefully almost everything about) the Lync and found a great tool for starters and obviously I would like to share it...

Planning Tool for Microsoft Lync Server 2010, which is available at Microsoft Download website.

I installed the planning the tool for an hour ago and how it work is, at start, you have to answer few questions about how your current infrastructure looks like and what your needs are. Based on the answers, the tool will generate a Visio drawing of how your deployment may look like, port requirements for the network, hardware requirements and so on.

Download, install and have fun!

NOTE: Take a look at Tommy Clarke's blog if you also are interested in Lync Server. http://www.cinline.se/

 

Tags: , ,

Exchange Server 2007 | Exchange Server 2010 | Lync | OCS

A "Best Practice" in my own opinion when I write my PowerShell scripts

by Omid Abdollahpour 5. October 2010 20:39

Most people, when they are writing their own Powershell scripts, they are creating one script per task and they starts over when it's time for a new. Sometimes you may need to use exactly the same function in another script, but the problem is, if you have written a script long ago which includes the specific function that you are looking for now, it may take long time to find the "old" script itself (if you are lucky) and you will need to read through the whole script process to find what you really need.

Whenever I write a Powershell script what I'm focusing is, dividing the script into blocks (or "functions" is a better way to say). I always save those blocks seperately so I may reuse these functions easily in another script which may do something completely else than the first one. As soon as I am done with the individual blocks, I usually put them together like lego bits for the main script.

And never forget to put comments in your scripts because it really helps you to find out what you have done when you really need it.

Let me show you a good example. Please take a look at the "Create_LocalUsers_ServerList.ps1" script.

In this script, I've defined 3 different functions, "Ping-Svr" to check if the destination computer is alive, "Add-LocalUser" and "Add-LocalAdmin". Obviously what this script does is:

- Get a list of servers where this account will be created
- Define the local user name, password and description in a variable
- Depending on what you've provided, ping the server, if you get any answer, create the local user and add it as a member in "Administrators" group. Create log files when this task is executing.

So, when I'll post my scripts on my blog later on, I will try to publish these "blocks" instead of publishing the whole main script itself.

Download: Create_LocalUsers_ServerList.ps1 and Remove_LocalUsers_ServerList.ps1 scripts

Tags:

Powershell

PowerShell script - Shut down multiple computers

by Omid Abdollahpour 1. October 2010 14:18

I've been thinking for a while to share some of my "simple" PowerShell scripts on my blog so here we go, it's time to upload the first one.

For a year ago, I got a little request from my customer to shutdown more than 500 computers at the same time so to take care of this request, I've written a simple script which worked smoothly.

What this script does is, it reads a file called "computers.txt" and shuts down every single computer which is defined in this text file. You need to ensure that the RPC (port 135, because this script runs WMI queries) and ICMP ports are open on the firewalls. By the way, you have to be a "Domain Admin".

To see the script, please click here 

DOWNLOAD THE SCRIPT

Tags: ,

General | Powershell | Windows 7 | Windows Server 2008 | Windows Server 2008 R2

 

About

Well, my name is Omid and working as a virtualization specialist at a Swedish company called Xperta AB. My primary focus is on server virtualization with Hyper-V and management of virtual IT infrastructure with System Center Virtual Machine Manager. I'm a Microsoft Certified Trainer, MCITP and MCTS in different areas and spend also pretty much time with various Microsoft technologies such as Exchange Server, Active Directory, Powershell, Forefront TMG and System Center product family.

For more information, please check out www.kabal.se.


Locations of visitors to this page

Xbox Live