Archive

Posts Tagged ‘Administration’

One liners: Get All Exchange Users Who Are Configured for Forwarding

May 7th, 2013 4 comments

Exchange 2013 logo 128x128Due to some legal requirements, I had a needed to list all users who were configured in Exchange to forward elsewhere. This was to ensure that mail wasn’t automatically leaving the environment. A simple, single line in the shell is all that’s needed to give me what I need.

Open Exchange Management Shell, and enter this:

Get-Mailbox -Resultsize Unlimited | Where-Object {$_.ForwardingAddress}

We can clean this up and make it a little more presentable using something like:

Get-Mailbox -Resultsize Unlimited | Where-Object {$_.ForwardingAddress} | Select-Object Name, @{Expression={$_.ForwardingAddress};Label="Forwarded to"}, @{Expression={$_.DeliverToMailboxAndForward};Label="Mailbox & Forward"}

And the results are a small table that shows the user name, which object mail is being forwarded to, and whether the mailbox is configured to both store and forward:

forwardedusers

This allowed me to take a look at those user accounts, and disable the forwarding, forcing the users to use their Exchange mailbox.

For a long list, or if you just want the info in a file, we can export the results to a .csv using Export-Csv. To do this, use:

Get-Mailbox -Resultsize Unlimited | Where-Object {$_.ForwardingAddress -ne $null} | Select-Object Name, @{Expression={$_.ForwardingAddress};Label="Forwarded to"}, @{Expression={$_.DeliverToMailboxAndForward};Label="Mailbox & Forward"} | Export-Csv c:\forwardedusers.csv -NoTypeInformation

Script: Grant-CsPolicyByADGroup.ps1 – Assign Lync/Skype for Business Policies to Users According to AD Group

September 10th, 2012 13 comments

Lync 2013 logo 128x128This idea is from a LinkedIn post that I responded to. The original poster wanted to know if there was a way to manage Lync external access policies based on AD group membership. Absolutely!

This is a fairly simple script that uses a scheduled task that runs every 4 hours, looks at the members of a given AD security group, including nested groups, and applies a Lync policy to each member. The name of the AD security group and the type and name of the policy are all configurable. The ActiveDirectory and Lync PowerShell modules are used to complete this. The actual moving parts are pretty simple – really just two lines of code. But some extra error catching, installation code, and safeguards make it a tad bigger.

Caveat – users get policies when they launch the Lync client. So even though a policy might be assigned to a user, they won’t see any change until the client is restarted.

Caveat #2 – if you configure this script with several scheduled tasks to handle different policies and different AD groups, make sure users don’t end up in multiple groups, or you could have unintended results. Also removing a user from a group does NOT revert their policy back. The reason I didn’t add that is because moving a user from one group to another could cause problems if the script set them back to a default policy, yet another group needed to change it to a different policy.

Installation

Execution Policy: Third-party PowerShell scripts may require that the PowerShell Execution Policy be set to either AllSigned, RemoteSigned, or Unrestricted. The default is Restricted, which prevents scripts – even code signed scripts – from running. For more information about setting your Execution Policy, see Using the Set-ExecutionPolicy Cmdlet.

Download the script from the DOWNLOAD section below. Open it in your favorite text editor.

Find the line that reads

[string]$GroupDN = "",

and put the Distinguished Name of the group in between the quotes. For example

[string]$GroupDN = "CN=Lync Policy Group,DC=contoso,DC=com",

Next, define the policy that will be granted to members of the group. Find the line that reads

[string]$PolicyName = "",

and put the name of the Lync policy in between those quotes, such as

[string]$PolicyName = "Executives External Access Policy",

The last thing we need to do in the script file is define what KIND of policy we’re going to grant.

Find the line that reads

[string]$PolicyType = "ExternalAccess",

And adjust accordingly. The allowed values are Archiving,Client,ClientVersion,Conferencing,ExternalAccess,HostedVoicemail,Location,Mobility,Pin,Presence,Voice to represent the various types of policies you can apply to a user. The default is ExternalAccess.

Next, ensure that the server where the script will run has both the ActiveDirectory and Lync PowerShell modules installed. Domain controllers typically have the ActiveDirectory module, and Lync servers have the Lync module. Install the appropriate ones using these steps.

To install the ActiveDirectory module, open PowerShell and type the following:

Import-Module ServerManager
Add-WindowsFeature -name AD-Domain-Services -IncludeManagementTools

To install the Lync Server Management Tools, which includes the PowerShell module, install the core components. See Install Lync Server Administrative Tools for details.

This will ensure that both modules are available. The ActiveDirectory module is used to get the members of the AD security group, and the Lync module is used to actually grant the policy.

The script must run as a member of the CsUserAdministrator or CsAdministrator groups, as those have the rights to assign policies.

Next, open PowerShell and run the script with the -install switch. The script will prompt for the password of the currently logged on user, and then create the scheduled task to run the script every 4 hours.

Grant-CsPolicyByADGroup.ps1 -install

The scheduled task will run every 4 hours, with a start time of when you ran the -install option. You can open the scheduled task in Task Manager and adjust as needed.

You can run the script manually as well. Just run

Grant-CsPolicyByADGroup.ps1

Note that it may take a while before the policy is visible on the user account due to AD replication.

Donations

I’ve never been one to really solicit donations for my work. My offerings are created because *I* need to solve a problem, and once I do, it makes sense to offer the results of my work to the public. I mean, let’s face it: I can’t be the only one with that particular issue, right? Quite often, to my surprise, I’m asked why I don’t have a “donate” button so people can donate a few bucks. I’ve never really put much thought into it. But those inquiries are coming more often now, so I’m yielding to them. If you’d like to donate, you can send a few bucks via PayPal at https://www.paypal.me/PatRichard. Money collected from that will go to the costs of my website (hosting and domain names), as well as to my home lab.

Download

v1.7 – 02-03-2017 – Grant-CsPolicyByADGroup.v1.7.zip

v1.6 – 09-23-2014 – Grant-CsPolicyByADGroup.v1.6.zip

v1.5 – 02-08-2014 – Grant-CsPolicyByADGroup.v1.5.zip

v1.4 – 01-27-2014 – Grant-CsPolicyByADGroup.v1.4.zip

v1.2 – 10-16-2012 – Grant-CsPolicyByADGroup.v1.2.zip

v1.1 – 09-19-2012 – Grant-CsPolicyByADGroup.v1.1.zip

v1.0 – 09-10-2012 – Grant-CsPolicyByADGroup.v1.0.zip

Changelog

See the changelog for this script for a description of changes with each release.

 

Lync Synthetic Tests: What They are and When They Don’t Work – Part II

August 18th, 2012 2 comments

In Part I of this series, I talked about what synthetic tests are, and some of the issues you may see when using them. Today I want to bring up another issue with synthetic tests. Let me show you how I found it.

I tried to use New-CsHealthMonitoringConfiguration to assign two newly created accounts for synthetic testing. As I mentioned in part I, configuring the accounts makes running the test cmdlets easier. The syntax to use is

New-CsHealthMonitoringConfiguration -identity [pool FQDN] -FirstTestUserSipUri [string] -FirstTestSamAccountName [string] -SecondTestUserSipUri [string] -SecondTestSamAccountName [string]

When I ran it in my client’s environment, I got back a nasty error:

New-CsHealthMonitoringConfiguration error

New-CsHealthMonitoringConfiguration error

Notice that regex expression. Value must match pattern:[^\\/:\*\?\”<>\|\.][^\\/:\*\?\”<>\|]{0,14}\\[^\\/:\*\?\”<>\|\.][^\\/:\*\?\”<>\|]{0,14}”

At first I thought I didn’t have the SamAccountName in the correct format, but the New-CsHealthMonitoringConfiguration documentation clearly says I can use the domain\user format. Just as I was about to break out regex buddy to see what that regex was trying to match, I noticed the (0,14) at the end and wondered if it was only expecting up to 15 characters (starting at 0, 14 would be the 15th number). I looked at the test user SamAccountNames and they were more than 15 characters long. So I shortened them to 15 characters and ran the cmdlet again, and bingo – that worked. I tested some more and verified that as soon as the SamAccountName reaches 16 characters or more, I get the above error.

I looked at the documentation for SamAccountName and found that it supports, as I suspected, that it can be up to 19 characters in length. So the New-CsHealthMonitoringConfiguration limitation, which isn’t documented anywhere that I could find, can catch you up in environments where usernames can be longer, such as in my client’s.

I’ve reported this to the product group to get it documented.

As a side note, you can configure test accounts for every Front End and Director pool, and they should be different users for each pool.

Hopefully, this info will save you some troubleshooting time.

Retrieving “Missing” Start Menu Items for Lync Server 2010

August 11th, 2012 No comments

When you install your first Lync Server in a 2010 environment, you see many options in the Start Menu such as the Lync Server Control Panel, Lync Server Management Shell, Topology Builder, etc.

Start Menu shortcuts on first server installed

Start Menu shortcuts on first server installed

However, when you install subsequent servers in the same environment, some of those options, like the Control Panel and the Topology Builder, are not listed.

Start Menu shortcuts on subsequent servers

Start Menu shortcuts on subsequent servers

That’s all fine and dandy if you’re always going to use the first server to perform those tasks. But what if that server is not available?

I’m completely OCD, and I like to have everything match perfectly. So – here’s how to get all of the options on each server. Open up Windows Explorer and go to the installation files for Lync. Browse to \Setup\amd64\Setup and run admintools.msi. Click ‘Yes’ on the UAC prompt.

Administrative Setup Tools UAC screen

Administrative Setup Tools UAC screen

At the Welcome screen, as shown below, click Next.

Admininstrative Tools Setup welcome screen

Administrative Tools Setup welcome screen

Carefully read the End-User License Agreement. If you agree, click the check box, then click Next.

Administrative Tools Setup license screen

Administrative Tools Setup license screen

At the destination folder screen, it should default to your Lync installation folder, which, by default, is c:\Program Files\Microsoft Lync Server 2010\. Click Next.

Administrative Tools Setup destination folder

Administrative Tools Setup destination folder

At the ready screen, click Install.

Administrative Tools Setup ready screen

Administrative Tools Setup ready screen

At the Completed screen, click Finish.

Administrative Tools Setup completed screen

Administrative Tools Setup completed screen

And now we have the shortcut items. Our OCD now settles down, and we can use these tools on each server.

April 2012 Technical Rollup: Unified Communications

April 6th, 2012 No comments

News

Premier

OpsVault – Operate and Optimize IT http://www.opsvault.com

Microsoft Premier Support UK – Site Home – TechNet Blogs http://blogs.technet.com/b/mspremuk/

Antigen & Forefront

Forefront Team Blog – Site Home – TechNet Blogs http://blogs.technet.com/b/forefront

Forefront Server Security Support Blog – Site Home – TechNet Blogs http://blogs.technet.com/b/fssnerds

Exchange

Exchange Team Blog – Site Home – TechNet Blogs http://blogs.technet.com/b/exchange/

MCS UK Unified Communications Blog – Site Home – TechNet Blogs http://blogs.technet.com/b/msukucc

  1. Demystifying the CAS Array Object – Part 2 http://blogs.technet.com/b/exchange/archive/2012/03/28/demystifying-the-cas-array-object-part-2.aspx
  2. Demystifying the CAS Array Object – Part 1 http://blogs.technet.com/b/exchange/archive/2012/03/23/demystifying-the-cas-array-object-part-1.aspx
  3. Exchange Server Deployment Assistant Update for Exchange 2010 SP2 and Office 365 Hybrid Deployments http://blogs.technet.com/b/exchange/archive/2012/03/21/exchange-server-deployment-assistant-update-for-exchange-2010-sp2-and-office-365-hybrid-deployments.aspx
  4. Check out Microsoft Script Explorer for Windows PowerShell (pre-release) http://blogs.technet.com/b/exchange/archive/2012/03/14/check-out-microsoft-script-explorer-for-windows-powershell-pre-release.aspx
  5. Exchange Client Network Bandwidth Calculator Beta 2 http://blogs.technet.com/b/exchange/archive/2012/03/09/exchange-client-network-bandwidth-calculator-beta2.aspx
  6. Introducing: Log Parser Studio http://blogs.technet.com/b/exchange/archive/2012/03/07/introducing-log-parser-studio.aspx
  7. MEC is Back! http://blogs.technet.com/b/exchange/archive/2012/03/06/mec-is-back.aspx

Lync

NextHop – Site Home – TechNet Blogs http://blogs.technet.com/b/nexthop/

DrRez: Microsoft Lync Server Technical Reference Hub http://blogs.technet.com/b/drrez/

  1. Lync Server 2010 Updates Now Available: March 2012 http://blogs.technet.com/b/nexthop/archive/2012/03/28/lync-2010-updates-now-available-march-2012.aspx
  2. Lync Server Documentation Update: March 2012 http://blogs.technet.com/b/nexthop/archive/2012/03/15/lync-server-documentation-update-march-2012.aspx
  3. Lync Wikis—Start a Wild and Wooly Conversation http://blogs.technet.com/b/nexthop/archive/2012/03/15/lync-wikis-start-a-wild-and-wooly-conversation.aspx
  4. Deploying and Troubleshooting Lync Server 2010 MSPL Applications http://blogs.technet.com/b/nexthop/archive/2012/03/14/deploying-and-troubleshooting-lync-server-2010-mspl-applications.aspx
  5. Lync 2010 Training Release Updates http://blogs.technet.com/b/nexthop/archive/2012/03/09/lync-2010-training-release-update.aspx

Outlook

Outlook Blog http://blogs.msdn.com/b/outlook/default.aspx

Other

The Master Blog – Site Home – TechNet Blogs http://blogs.technet.com/b/themasterblog

Documents

Exchange

Exchange Server 2010 SP2 Help
This download contains a standalone version of Microsoft Exchange Server 2010 SP2 Help. http://www.microsoft.com/download/en/details.aspx?id=28207

Microsoft Exchange Server 2010 Install Guide Templates
You can use these templates as a starting point for formally documenting your organization’s server build procedures for servers that will have Microsoft Exchange Server 2010 server roles installed on them. http://www.microsoft.com/download/en/details.aspx?id=17206

Best Practices for Virtualizing Exchange Server 2010 with Windows Server® 2008 R2 Hyper V
The purpose of this paper is to provide guidance and best practices for deploying Microsoft® Exchange Server 2010 in a virtualized environment with Windows Server® 2008 R2 Hyper V technology. This paper has been carefully composed to be relevant to organizations of any size. http://www.microsoft.com/download/en/details.aspx?id=2428

Migrate from Exchange Public Folders to Microsoft Office 365
This document outlines these considerations, discusses the most common public folder scenarios and how they are represented in Office 365 services. It also provides the information you need to decide whether Office 365 is a good match for you based on your current public folder usage. http://www.microsoft.com/download/en/details.aspx?id=27582

Lync

Unified Communications Phones and Peripherals Datasheets
These datasheets list the phones and peripheral devices that are qualified to display the “Optimized for Microsoft Lync” logo. http://www.microsoft.com/download/en/details.aspx?id=16857

Microsoft Lync Server 2010 Protocol Workloads Poster
This poster shows each workload in Microsoft Lync Server 2010 communications software, describing relationships, dependencies, flow of information, and certificate requirements. Version 5.11 corrects minor errors. http://www.microsoft.com/download/en/details.aspx?id=6797

Microsoft Lync Server 2010 Device Management and Troubleshooting Guide
The purpose of the Microsoft Lync Server 2010 Device Management and Troubleshooting Guide is to provide guidance on how to manage and update devices. It is also intended to answer frequently asked questions. This document identifies supported topologies, configurations, and scenarios described in detail in the Lync Server device deployment and planning documentation. http://www.microsoft.com/download/en/details.aspx?id=16277

Microsoft Lync Server 2010 Mobility Guide
This document guides you through the process of deploying the Microsoft Lync Server 2010 Mobility Service and the Microsoft Lync Server 2010 Autodiscover Service. http://www.microsoft.com/download/en/details.aspx?id=28355

Troubleshooting Microsoft Lync Server 2010 Clients: Help Desk Resource
This resource is for first-level help desk agents who support Microsoft Lync Server 2010 clients. Note: The .zip file contains both the print documentation and the Help file. http://www.microsoft.com/download/en/details.aspx?id=7373

Microsoft Lync Server 2010 Reference: Call Data Recording and Quality of Experience Database Schema
This document describes the call detail recording (CDR) and the Quality of Experience (QoE) databases schemas in Microsoft Lync Server 2010. http://www.microsoft.com/download/en/details.aspx?id=18099

Microsoft Lync Server 2010 Reference: Group Chat Database Schema
This document describes the Group Chat database schema in Microsoft Lync Server 2010. http://www.microsoft.com/download/en/details.aspx?id=21632

Microsoft Lync Server 2010 Security Guide
The Security Guide provides guidelines for assessing and managing security risks to your Lync Server 2010 deployment. http://www.microsoft.com/download/en/details.aspx?id=2729

Migrating from Office Communications Server 2007 R2 to Lync Server 2010
This document provides guidance from migration from Office Communications Server 2007 R2 to Microsoft Lync Server 2010. http://www.microsoft.com/download/en/details.aspx?id=9109

Migrating from Office Communications Server 2007 to Lync Server 2010
This document provides guidance from migration from Office Communications Server 2007 to Microsoft Lync Server 2010. http://www.microsoft.com/download/en/details.aspx?id=7327

Microsoft Lync Server 2010 Supportability Guide
This guide provides a central, high-level reference for supported server topologies and configurations and supported client configurations. It is also intended to answer frequently asked questions. This document identifies supported topologies, configurations, and scenarios described in detail in the Lync Server deployment and planning documentation. http://www.microsoft.com/download/en/details.aspx?id=13148

Enabling Quality of Service with Microsoft Lync Server 2010
If your Windows Server network supports Quality of Service (QoS) management, you can take advantage of this functionality to optimize media traffic in your Microsoft Lync Server 2010 deployment. This guide shows you how. http://www.microsoft.com/download/en/details.aspx?id=12633

Microsoft Lync Server 2010 Monitoring Deployment Guide
This document guides you through the process of deploying Lync Server 2010 Monitoring Server. http://www.microsoft.com/download/en/details.aspx?id=8207

Microsoft Lync Server 2010 Standard Edition Deployment Guide
This document guides you through the process of deploying Lync Server 2010 Standard Edition and configuring dial-in conferencing. http://www.microsoft.com/download/en/details.aspx?id=5317

Microsoft Lync Server 2010 Enterprise Voice Deployment Guide
This download contains two documents: Deploying Enterprise Voice at Central sites and Deploying Branch Sites http://www.microsoft.com/download/en/details.aspx?id=4816

Deploying Lync Server 2010 in a Multiple Forest Environment
This document explains how to deploy Lync Server 2010 in a multiple forest environment. http://www.microsoft.com/download/en/details.aspx?id=11300

Microsoft Lync Server 2010: Deploying Lync Server 2010 Enterprise Edition by Using the Planning Tool
This document describes the how to deploy Lync Server 2010 Enterprise Edition by using the Planning Tool. http://www.microsoft.com/download/en/details.aspx?id=8692

Microsoft Lync Server 2010 Group Chat Deployment Guide
This document guides you through the process of migrating and deploying Lync Server 2010 Group Chat Server and the related components that are required to let organizations set up searchable, topic-based chat rooms that persist over time, allowing geographically distributed teams to better collaborate with one another while preserving organizational knowledge. http://www.microsoft.com/download/en/details.aspx?id=9735

Microsoft Lync Server 2010 Remote Call Control Deployment Guide
This document describes the how to deploy remote call control in a Lync Server 2010 deployment. http://www.microsoft.com/download/en/details.aspx?id=16598

Microsoft Lync Server 2010 Edge Server Deployment Guide
This document guides you through the process of deploying Lync Server 2010 edge servers and Directors. http://www.microsoft.com/download/en/details.aspx?id=11379

Microsoft Lync Server 2010 Response Group Deployment Guide
This download guides you through the process of configuring the Response Group feature for Enterprise Voice. http://www.microsoft.com/download/en/details.aspx?id=6233

Microsoft Lync Server 2010 Active Directory Guide
This document guides you through the process of preparing Active Directory for Microsoft Lync Server 2010 and includes the Active Directory schema reference. http://www.microsoft.com/download/en/details.aspx?id=9448

Backing Up and Restoring Lync Server 2010
This document describes a methodology for backing up and restoring the data that is required for full recovery of Microsoft Lync Server 2010 services. http://www.microsoft.com/download/en/details.aspx?id=3364

Microsoft Lync Server 2010 Enterprise Edition Deployment Guide
This document guides you through the process of deploying Lync Server 2010 Enterprise Edition and configuring dial-in conferencing for Lync Server 2010. http://www.microsoft.com/download/en/details.aspx?id=9596

Microsoft Lync Server 2010 Client and Device Deployment Guide
This download guides you through the process of deploying client software and devices for Lync 2010. http://www.microsoft.com/download/en/details.aspx?id=15985

Microsoft Lync Server 2010 Group Chat Administration Guide
This document guides you through the process of administering Lync Server 2010 Group Chat Server and the related components that are required to let organizations set up searchable, topic-based chat rooms that persist over time, allowing geographically distributed teams to better collaborate with one another while preserving organizational knowledge. http://www.microsoft.com/download/en/details.aspx?id=6126

Microsoft Lync Server 2010 Announcement Deployment Guide
This download guides you through the process of configuring the Announcement call management feature for Enterprise Voice. http://www.microsoft.com/download/en/details.aspx?id=9823

Microsoft Lync Server 2010 Documentation Help File
This download contains a compiled help file (chm) of all the available Lync Server 2010 IT professional documentation on the Technical Library. http://www.microsoft.com/download/en/details.aspx?id=23888

Microsoft Lync Server 2010 Archiving Deployment Guide
The purpose of the Microsoft Lync Server 2010 Archiving Deployment Guide is to guide you through the process of deploying Lync Server 2010 Archiving Server and the related components that are required to support archiving of instant messaging and web conferencing (meeting) content. http://www.microsoft.com/download/en/details.aspx?id=4711

Microsoft Lync Server 2010 Administration Guide & Windows PowerShell Supplement
The Lync Server Administration Guide and the Windows PowerShell Supplement contain procedures and guidance for administering a Lync Server 2010 deployment. http://www.microsoft.com/download/en/details.aspx?id=13161

Uninstalling Microsoft Lync Server 2010 and Removing Server Roles
To maintain any system, you need to modify the deployment over time. An important part of maintenance is the retiring or decommissioning of existing components that you replace with different or newer components. “Uninstalling Lync Server 2010 and Removing Server Roles” includes procedures for removing server roles and decommissioning a deployment. http://www.microsoft.com/download/en/details.aspx?id=18692

Microsoft Lync Server 2010: Using Monitoring Server Reports
This document describes the how to use Monitoring Server Reports in a Lync Server 2010 deployment. http://www.microsoft.com/download/en/details.aspx?id=890

Live Meeting-To-Lync Transition Resources
Resources included in this download package are designed to support your organization’s Live Meeting Service to Lync (Server or Online) transition planning. This download will be updated with additional resources as available. http://www.microsoft.com/download/en/details.aspx?id=26494

Microsoft Lync 2010 Conferencing and Collaboration Training
Learn how to schedule, join, and manage online meetings with Microsoft Lync 2010. http://www.microsoft.com/download/en/details.aspx?id=7606

IM an Expert for Microsoft Lync Server 2010
IM an Expert is an instant messaging question and answer service that you can set up within your organization. With the IM an Expert service, you can use Microsoft Lync or the IM an Expert Welcome page to submit a question to the service. The IM an Expert service will locate an expert for you within your company and initiate an IM session between you and the expert who can answer your question. http://www.microsoft.com/download/en/details.aspx?id=8475

A Microsoft Lync Server 2010 Multi-tenant Pack for Partner Hosting Reference Architecture Case Study
Describes a case study of a real world implementation of a reference architecture for the Microsoft Lync Server 2010 Multi-tenant Pack for Partner Hosting. http://www.microsoft.com/download/en/details.aspx?id=29044

Microsoft Lync 2010 Phone Edition for Polycom CX500, Polycom CX600 and Polycom CX3000
Microsoft® Lync 2010 Phone Edition for Polycom® CX500, Polycom® CX600 and Polycom® CX3000 is the first generation of software designed specifically for the phones from Polycom to interoperate with Microsoft® Lync Server 2010. Lync Phone Edition provides traditional and advanced telephony features, integrated security, manageability and much more. http://www.microsoft.com/download/en/details.aspx?id=23866

Microsoft Lync 2010 Phone Edition for Aastra 6721ip and Aastra 6725ip
Microsoft® Lync 2010 Phone Edition for Aastra 6721ip and Aastra 6725ip is the first generation of software designed specifically for the phones from Aastra to interoperate with Microsoft® Lync Server 2010. Lync Phone Edition provides traditional and advanced telephony features, integrated security, manageability and much more. http://www.microsoft.com/download/en/details.aspx?id=18390

Microsoft Lync 2010 Phone Edition for HP 4110 and HP 4120
Microsoft® Lync 2010 Phone Edition for HP 4110 and HP 4120 is the first generation of software designed specifically for the phones from HP to interoperate with Microsoft® Lyncâ„¢ Server 2010. Lync Phone Edition provides traditional and advanced telephony features, integrated security, manageability and much more. http://www.microsoft.com/download/en/details.aspx?id=28158

Microsoft Lync 2010 Phone Edition for Polycom CX700 and LG-Nortel IP Phone 8540
Microsoft® Lync 2010 Phone Edition for Polycom® CX700 and LG-Nortel IP Phone 8540 is the next generation of software designed for the phones from Polycom and LG-Nortel to interoperate with Microsoft® Lync Server 2010. Lync Phone Edition provides traditional and advanced telephony features, integrated security, manageability and much more. http://www.microsoft.com/download/en/details.aspx?id=21644

Microsoft Lync Server 2010 Multi-tenant Pack for Partner Hosting Deployment Guide
The Microsoft Lync Server 2010 Multi-tenant Pack for Partner Hosting is an extension of Microsoft Lync Server 2010 software that is designed to allow service providers and system integrators to customize a Lync Server 2010 deployment and offer it as a service to their customers. This guide describes how to deploy and configure a basic architecture. http://www.microsoft.com/download/en/details.aspx?id=28587

Reference Architecture for the Microsoft Lync Server 2010 Multitenant Pack for Partner Hosting
Describes a reference architecture for the Microsoft Lync Server 2010 Multitenant Pack for Partner Hosting. http://www.microsoft.com/download/en/details.aspx?id=29045

Downloads

  1. Lync Lync Server 2010 Hotfix KB 2493736 This download includes all available updates for Lync Server 2010. http://www.microsoft.com/download/en/details.aspx?id=11551
  2. Lync 2010 Hotfix KB 2684739 (64 bit) This download includes all available updates for Lync 2010. http://www.microsoft.com/download/en/details.aspx?id=14490
  3. Lync 2010 Hotfix KB 2684739 (32 bit) This download includes all available updates for Lync 2010. http://www.microsoft.com/download/en/details.aspx?id=25055
  4. Microsoft Lync 2010 Training Download Package This zipped folder contains all of the available training and user education resources for Microsoft Lync 2010. The included Lync Training Plans workbook helps you choose the resources that will work best for your users. http://www.microsoft.com/download/en/details.aspx?id=9642
  5. IM an Expert for Microsoft Lync Server 2010 Documentation Version 1.5 This download provides documentation for the IM an Expert for Microsoft Lync Server 2010 service http://www.microsoft.com/download/en/details.aspx?id=16104

Events/Webcasts

Core presents An Introduction to the Microsoft Cloud (Office 365 and Windows Intune)

Starts: 18 April 2012 09:30
Ends: 18 April 2012 12:45
Time zone: (GMT) GMT, London
Welcome Time: 09:00

Cloud technology – it’s all you hear about right now! But for many, it can be confusing. Core can help you make sense of it all. Join us at our Introduction to the Microsoft Cloud seminar to learn how your organization can take advantage of Microsoft’s latest cloud offerings to transform your IT infrastructure and drive your business forward! Reduce your capital expenditure and save money by paying only for the computing power you need! https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032502492&culture=en-GB

New KBs

Antigen & Forefront Microsoft Forefront Security for Exchange Server: Some default deletion messages in Forefront Security for Exchange Server may mislead a user or an administrator to assume that an error occurred or that a virus was found http://support.microsoft.com/kb/961385

Exchange

Microsoft Exchange Server 2003 Enterprise Edition

  1. Exchange Server experiences performance issues when a PDC emulator is used for DSAccess or ADAcess http://support.microsoft.com/kb/298879

Microsoft Exchange Server 2007 Enterprise Edition

  1. An Exchange Server 2007 Transport Rule does not work as expected http://support.microsoft.com/kb/2673160

Microsoft Exchange Server 2007 Service Pack 3

  1. Exchange ActiveSync does not synchronize some Outlook contact information as expected http://support.microsoft.com/kb/2692134

Microsoft Exchange Server 2007 Standard Edition

  1. Message  when you try to open an attachment in Outlook Web Access or Outlook Web App: “Right-click the link, and then click ‘Save Target As’ to save the attachment.” http://support.microsoft.com/kb/2688092

Microsoft Exchange Server 2010 Coexistence

  1. Error message when you try to use Outlook Web App to access an Exchange Server 2010 mailbox: “There was a problem opening your mailbox” http://support.microsoft.com/kb/2606268
  2. You cannot add mailbox database copies in Exchange Server 2010 http://support.microsoft.com/kb/2627725

Microsoft Exchange Server 2010 Enterprise

  1. Event 1000, 1001, or 1002 occurs when SCOM is monitoring Exchange Server 2007 or Exchange Server 2010 http://support.microsoft.com/kb/2681932
  2. Chat feature missing in Outlook Web App for Exchange 2010 http://support.microsoft.com/kb/2688771

Microsoft Exchange Server 2010 Standard

  1. You cannot synchronize an Exchange ActiveSync device with a mailbox when external URLs are not resolved on an Exchange Server 2010 Client Access server http://support.microsoft.com/kb/2679228
  2. Users cannot use Outlook to access their mailbox after migration to Exchange 2010 http://support.microsoft.com/kb/2688982

Lync

Microsoft Lync 2010

  1. A user whose display name is in Korean cannot be found in Lync 2010 http://support.microsoft.com/kb/2661952
  2. You receive a System.UnauthorizedAccessException exception when you disconnect a call in a Lync 2010 SDK-based application http://support.microsoft.com/kb/2664812
  3. The Windows logoff process is delayed when Lync 2010 is started http://support.microsoft.com/kb/2666324
  4. A customized Lync 2010 Help URL does not work in Lync 2010 http://support.microsoft.com/kb/2666338
  5. A RTF header is displayed instead of the conversation history in the Conversation tab of Lync 2010 http://support.microsoft.com/kb/2666340
  6. The time stamp that is displayed in the IM conversation windows is truncated in Lync 2010 http://support.microsoft.com/kb/2666702
  7. You cannot use client policy to exclude a folder from contact search in Lync 2010 http://support.microsoft.com/kb/2666704
  8. Help with Lync Server 2010 configurations for very small business http://support.microsoft.com/kb/2667699
  9. Description of the cumulative update for Lync 2010: February 2012 http://support.microsoft.com/kb/2670326
  10. The typing status message is not displayed when you use an IME to type double-byte characters in Lync 2010 http://support.microsoft.com/kb/2672922
  11. A contact is displayed with an incorrect picture and incorrect presence information in Lync 2010 http://support.microsoft.com/kb/2672944
  12. Double-byte text is transparent in desktop alerts on a computer that is running Windows XP and that has Lync 2010 installed http://support.microsoft.com/kb/2672945
  13. Description of the cumulative update package for Lync 2010 for iPad: March 2012 http://support.microsoft.com/kb/2673225
  14. The conversation list is not displayed correctly in the chats window after you delete a conversation in Lync 2010 for iPad http://support.microsoft.com/kb/2673304
  15. Users have to manually input the user name every time that they sign in to the Lync 2010 client http://support.microsoft.com/kb/2681509

Microsoft Lync 2010 for iPhone

  1. A user whose SIP URI address only contains numbers is displayed as a telephone contact in Lync 2010 for iPhone http://support.microsoft.com/kb/2672940
  2. Description of the cumulative update package for Lync 2010 for iPhone: March 2012 http://support.microsoft.com/kb/2673223
  3. Meetings are not shown in the Meetings tab in Lync 2010 for iPhone http://support.microsoft.com/kb/2673298
  4. A deleted contact group is still displayed in Lync 2010 for iPhone http://support.microsoft.com/kb/2673303
  5. “Me:” and “Missed:” are translated incorrectly in the chats window in a Korean version of Lync 2010 for iPhone http://support.microsoft.com/kb/2677215
  6. Discovery address text strings are translated incorrectly on the sign-in page of the Chinese Version of Microsoft Lync 2010 for iPhone http://support.microsoft.com/kb/2677216

Microsoft Lync 2010 for Windows Phone

  1. Lync 2010 for Windows Phone displays Japanese text in the Microsoft Yahei font unexpectedly http://support.microsoft.com/kb/2666321
  2. Description of the cumulative update package for Lync 2010 for Windows Phone: March 2012 http://support.microsoft.com/kb/2673226
  3. Lync 2010 mobile clients always prompt the user for a mobile phone number http://support.microsoft.com/kb/2685372

Microsoft Lync 2010 Group Chat

  1. Description of the cumulative update for the Lync Server 2010, Group Chat Administration Tool: February 2012 http://support.microsoft.com/kb/2672318
  2. Description of the cumulative update for Lync 2010 Group Chat: February 2012 http://support.microsoft.com/kb/2672325

Microsoft Lync 2010 Phone Edition

  1. Description of a new feature that lets users set or change their presence information by using a telephone in Lync 2010 Phone Edition http://support.microsoft.com/kb/2666706
  2. Lync 2010 Phone Edition enabled phones report 10 Mbps network link speed http://support.microsoft.com/kb/2686136

Microsoft Lync 2010 Phone Edition for Aastra 6721ip and Aastra 6725ip

  1. The maximum ringer volume is too low on certain telephone products that are running Lync 2010 Phone Edition http://support.microsoft.com/kb/2666323

Microsoft Lync Server 2010 Enterprise Edition

  1. “The owner of the object passed does not match the original owner.” error message when a Lync 2010 user calls a CAA access number to join a conference http://support.microsoft.com/kb/2500431

Microsoft Lync Server 2010 Enterprise Edition

  1. Error message when you run the “Enable-CsAdDomain” command in a Lync Server 2010 environment http://support.microsoft.com/kb/2672929

Microsoft Lync Server 2010 Software Development Kit

  1. A user cannot add a custom location to their contact information by using an application that is developed by using Lync Server 2010 SDK http://support.microsoft.com/kb/2672943

Microsoft Lync Server 2010 Standard Edition

  1. “Please verify your logon credentials and try again” error message when a user signs in to Lync Server 2010 http://support.microsoft.com/kb/2637105
  2. You cannot add a DFS file share as a file store in Topology Builder of Lync Server 2010 http://support.microsoft.com/kb/2666344
  3. Delay processing incoming calls in Lync Server 2010 http://support.microsoft.com/kb/2666349
  4. Error message when you run the Set-CsRegistrar command in Lync Server Management Shell in a Lync Server 2010 environment http://support.microsoft.com/kb/2666710
  5. Error message when you run the “CsFileTransferFilterConfiguration” command in a Lync Server 2010 environment http://support.microsoft.com/kb/2666711
  6. Description of the cumulative update for Lync Server 2010, Conferencing Attendant: February 2012 http://support.microsoft.com/kb/2670540
  7. Text that is typed by using the right-to-left reading order is displayed by using the left-to-right reading order in the sent message pane in Lync 2010 http://support.microsoft.com/kb/2672924
  8. A global client policy in which the “EnableExchangeContactSync” parameter is set to False does not work in Lync Server 2010 http://support.microsoft.com/kb/2672933
  9. Federated users do not receive a meeting invitation in Lync Server 2010 http://support.microsoft.com/kb/2672935
  10. A delegate cannot perform operations on behalf of the manager in a Lync Server 2010 environment http://support.microsoft.com/kb/2673299
  11. A user cannot call a number that matches a normalization rule that begins with optional digits in a Lync Server 2010 environment http://support.microsoft.com/kb/2673302
  12. Description of the cumulative update for Lync Server 2010, Mobility Service: February 2012 http://support.microsoft.com/kb/2675053
  13. A Front End Server does not route network traffic to Lync 2010 Mobile clients if the Collocated Mediation Server option is enabled in Lync Server 2010 http://support.microsoft.com/kb/2675221
  14. The Address Book service does not synchronize user information when data in the RTC database is corrupted in a Lync Server 2010 environment http://support.microsoft.com/kb/2675222
  15. Microsoft Lync Server 2010, Group Chat
  16. A user does not receive an invitation when the user is added to a distribution list that is a member of a chat room in Lync Server 2010, Group Chat http://support.microsoft.com/kb/2666341
  17. The Channel service stops when a user signs in to a Group Chat client in Lync Server 2010, Group Chat http://support.microsoft.com/kb/2666342
  18. Description of the cumulative update for Lync Server 2010, Group Chat: February 2012 http://support.microsoft.com/kb/2670342

Outlook

Microsoft Office Outlook 2003

  1. Description of the Outlook 2003 Junk Email Filter update: March 13, 2012 http://support.microsoft.com/kb/2598246
  2. Description of the policy for how e-mail is filtered by the junk e-mail filters in Outlook or in Exchange Server http://support.microsoft.com/kb/954199

Microsoft Office Outlook 2007

  1. Description of the Outlook 2007 hotfix package (Outlook-x-none.msp): March 7, 2012 http://support.microsoft.com/kb/2597964
  2. Description of the Outlook 2007 Junk Email Filter update: March 13, 2012 http://support.microsoft.com/kb/2597970
  3. Outlook Anywhere cannot be disabled in Outlook 2007 and in Outlook 2010 http://support.microsoft.com/kb/2686042

Microsoft Outlook 2002 Standard Edition

  1. You cannot use Outlook to complete a Microsoft Word Mail Merge http://support.microsoft.com/kb/2149769

Microsoft Outlook 2010

  1. An email message body contains text that is added from previously opened email messages when you access a mailbox by using an IMAP4 client in Outlook 2010 http://support.microsoft.com/kb/2597991
  2. Description of the Outlook 2010 hotfix package (x86 Outexum-x-none.msp, x64 Outexum-x-none.msp): February 28, 2012 http://support.microsoft.com/kb/2598024
  3. Outlook 2010: Leave a copy of the message on the server is missing http://support.microsoft.com/kb/2671941
  4. How to deploy a default email signature in Outlook http://support.microsoft.com/kb/2691977

 

Function: New-Password – Creating Passwords with PowerShell

December 26th, 2011 2 comments

Description

When creating new accounts, an admin needs to assign a password. We often then check the box to force a user to change their password when they logon for the first time. Some organizations will use a ‘default’ password for all new accounts. That’s fraught with security implications, and I’ve never recommended it. The downside is that you, as an admin, need to think up a password for each new account. I know how it is – you look around at things on your desk, items on the wall, looking for ideas. Then you have to make sure your super password meets your organizations password requirements, including length and complexity. Well, no more!

Enter New-Password. This function takes one simple input – length. It then spits out a password of said length, using upper and lower case letters, numbers, and punctuation, as well as a phonetic version. If you choose not to use some of the punctuation characters, feel free to just put a ‘#’ in front of that particular line.

function New-Password	{
<#
.SYNOPSIS
  Displays a complex password.

.DESCRIPTION
  Displays a complex password. Output includes password, and phonetic breakdown of the password.

.NOTES
  Version                 : 1.3
  Wish List               :
  Rights Required         : No special rights required
                          : If script is not signed, ExecutionPolicy of RemoteSigned (recommended) or Unrestricted (not recommended)
                          : If script is signed, ExecutionPolicy of AllSigned (recommended), RemoteSigned, 
                            or Unrestricted (not recommended)
  Sched Task Required     : No
  Lync/Skype4B Version    : N/A
  Author/Copyright        : © Pat Richard, Skype for Business MVP - All Rights Reserved
  Email/Blog/Twitter      : pat@innervation.com   https://www.ucunleashed.com @patrichard
  Dedicated Post          : https://www.ucunleashed.com/915
  Disclaimer              : You running this script means you won't blame me if this breaks your stuff. This script is
                            provided AS IS without warranty of any kind. I disclaim all implied warranties including, 
                            without limitation, any implied warranties of merchantability or of fitness for a particular
                            purpose. The entire risk arising out of the use or performance of the sample scripts and 
                            documentation remains with you. In no event shall I be liable for any damages whatsoever 
                            (including, without limitation, damages for loss of business profits, business interruption,
                            loss of business information, or other pecuniary loss) arising out of the use of or inability
                            to use the script or documentation. 
  Acknowledgements        : 
  Assumptions             : ExecutionPolicy of AllSigned (recommended), RemoteSigned or Unrestricted (not recommended)
  Limitations             : 
  Known issues            : None yet, but I'm sure you'll find some!                        

.LINK
  
Function: New-Password – Creating Passwords with PowerShell
.EXAMPLE New-Password -Length <integer> Description ----------- Creates a password of the defined length .EXAMPLE New-Password -Length <integer> -ExcludeSymbols Description ----------- Creates a password of the defined length, but does not utilize the following characters: !$%^-_:;{}<># &@]~ .INPUTS This function does support pipeline input. #> #Requires -Version 3.0 [CmdletBinding(SupportsShouldProcess = $true)] param( #Defines the length of the desired password [Parameter(ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] [ValidateNotNullOrEmpty()] [ValidatePattern("[0-9]")] [int] $Length = 12, #When specified, only uses alphanumeric characters for the password [Parameter(ValueFromPipeline = $False, ValueFromPipelineByPropertyName = $True)] [switch] $ExcludeSymbols ) PROCESS { $pw = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" if (!$ExcludeSymbols) { $pw += "!$%^-_:;{}<># &@]~" } $password = -join ([Char[]]$pw | Get-Random -count $length) Write-Output "`nPassword: $password`n" ForEach ($character in [char[]]"$password"){ [string]$ThisLetter = $character switch ($ThisLetter) { a {$ThisWord = "alpha"} b {$ThisWord = "bravo"} c {$ThisWord = "charlie"} d {$ThisWord = "delta"} e {$ThisWord = "echo"} f {$ThisWord = "foxtrot"} g {$ThisWord = "golf"} h {$ThisWord = "hotel"} i {$ThisWord = "india"} j {$ThisWord = "juliett"} k {$ThisWord = "kilo"} l {$ThisWord = "lima"} m {$ThisWord = "mike"} n {$ThisWord = "november"} o {$ThisWord = "oscar"} p {$ThisWord = "papa"} q {$ThisWord = "quebec"} r {$ThisWord = "romeo"} s {$ThisWord = "sierra"} t {$ThisWord = "tango"} u {$ThisWord = "uniform"} v {$ThisWord = "victor"} w {$ThisWord = "whiskey"} x {$ThisWord = "xray"} y {$ThisWord = "yankee"} z {$ThisWord = "zulu"} 1 {$ThisWord = "one"} 2 {$ThisWord = "two"} 3 {$ThisWord = "three"} 4 {$ThisWord = "four"} 5 {$ThisWord = "five"} 6 {$ThisWord = "six"} 7 {$ThisWord = "seven"} 8 {$ThisWord = "eight"} 9 {$ThisWord = "nine"} 0 {$ThisWord = "zero"} ! {$ThisWord = "exclamation"} $ {$ThisWord = "dollar"} % {$ThisWord = "percent"} ^ {$ThisWord = "carat"} - {$ThisWord = "hyphen"} _ {$ThisWord = "underscore"} : {$ThisWord = "colon"} `; {$ThisWord = "semicolon"} `{ {$ThisWord = "left-brace"} `} {$ThisWord = "right-brace"} `/ {$ThisWord = "backslash"} `< {$ThisWord = "less-than"} `> {$ThisWord = "greater-than"} `# {$ThisWord = "pound"} `& {$ThisWord = "ampersand"} `@ {$ThisWord = "at"} `] {$ThisWord = "right-bracket"} `~ {$ThisWord = "tilde"} default {$ThisWord = "space"} } if ($ThisLetter -cmatch $ThisLetter.ToUpper()){ $ThisWord = $ThisWord.ToUpper() } $phonetic = $phonetic+" " +$ThisWord } $phonetic = $phonetic.trim() Write-Output "Phonetic: $phonetic" "Password: $password`nPhonetic: $phonetic" | clip Write-Output "`n`nThis information has been sent to the clipboard" } END{ Remove-Variable ThisWord Remove-Variable ThisLetter Remove-Variable Password Remove-Variable Phonetic Remove-Variable Pw } } # end function New-Password

Now, stick that function in your PowerShell profile. Each time you need a new password, use

New-Password -Length [number]

such as

New-Password -Length 12

And you now have a password to use.

12 character password

You can also specify -ExcludeSymbols to return only an alphanumeric password, bypassing the added complexity of using non-alphanumeric symbols.

New-Password -Length 12 -ExcludeSymbols


12 character alphanumeric password

Donations

I’ve never been one to really solicit donations for my work. My offerings are created because *I* need to solve a problem, and once I do, it makes sense to offer the results of my work to the public. I mean, let’s face it: I can’t be the only one with that particular issue, right? Quite often, to my surprise, I’m asked why I don’t have a “donate” button so people can donate a few bucks. I’ve never really put much thought into it. But those inquiries are coming more often now, so I’m yielding to them. If you’d like to donate, you can send a few bucks via PayPal at https://www.paypal.me/PatRichard. Money collected from that will go to the costs of my website (hosting and domain names), as well as to my home lab.

Exchange Server 2010 SP2 Is Now Available

December 5th, 2011 No comments

Microsoft has released Service Pack 2 (SP2) for Exchange Server 2010. Release Notes for Exchange 2010 SP2 includes a list of known issues.

The 535MB download is just like RTM – a full install package. Existing installations can be upgraded, as new installs can be completed with the Service Pack integrated.

 

What’s New in Exchange 2010 SP2

The What’s New in Exchange 2010 SP2 has comprehensive list of the changes and enhancements, including:

Address Book Policies

This is a long sought after feature which allows the segmentation of the Global Address List. This essentially allows an organization to have different address books visible to different users and/or groups. This is great, especially in large organization that may want users to just see users in their division, or if an org wants to do a multi-tenant scenario.

Outlook Mobile Access (OWA mini)

This is essentially the old Outlook Mobile Access brought back to life, which allows devices with small screens, such as mobile devices, to see a simple to use web page for accessing their mailbox. This is great for devices that don’t support Exchange ActiveSync.

Hybrid Configuration Wizard

This feature is based around on-premise and cloud based scenarios such as Office365.

OWA Cross-Site redirection

Redirection of client connections across AD sites is now possible.

Installation notes

Schema Updates

The service pack does do schema updates in order to support some of the new features.

Required Role Features

Also, on Client Access Servers (CAS), the IIS 6 WMI Compatibility feature is now required.

Installing from the command line

Upgrading is quite simple. Open a command prompt and navigate to the folder containing the extracted files and run:

Setup /m:upgrade /InstallWindowsComponents

The setup routine will automatically install the Web-WMI feature if needed, and upgrade the server.

Installation of SP2 via command prompt

Installation of SP2 via command prompt

Installation from the graphical user interface (GUI)

As mentioned above, the IIS 6 WMI Compatibility (Web-WMI) feature is required. If you plan to install the Service Pack using the GUI, you must manually add this feature. To install the feature, open PowerShell, and type:

Import-Module ServerManager Add-WindowsFeature web-wmi

As shown below.

Add-WindowsFeature Web-WMI

If you don’t manually install this feature, the service pack installation will fail:

SP2 fails - IIS 6 WMI Compatibility required

SP2 fails – IIS 6 WMI Compatibility required

Once the SP2 file is downloaded, double click on it to extract the files to a folder.

Navigate to the folder containing the extracted files and double click on setup.exe and follow the prompts.

Installation on Database Availability Groups (DAG)

If you are going to apply SP2 to servers that are members of a DAG, run the StartDagServerMaintenance.ps1 script on the server first. This accomplishes several things, including suspending mailboxdatabase copying for each database; prevents the activation of databases on the server and moves active copies on the server to copies on other servers; prevents the server from taking on the PAM role. When finished, run the StopDagServerMaintenance.ps1 script, which allows databases to be activated, begins the copying, and allows the server to become the PAM. Mike Pfeiffer has a great blog post on this process.

Download

Download the Service Pack from the Microsoft Download Center here.

A stand-alone version of the SP2 Help file is available here.

Unified Messaging language packs for SP2 are available here.

Lync Posters, Templates, and Cheat Sheets

October 13th, 2011 No comments

Posters

Microsoft Lync Server 2010 Protocol Workloads Poster

This poster shows each workload in Microsoft Lync Server 2010 communications software, describing relationships, dependencies, flow of information, and certificate requirements.

http://go.microsoft.com/fwlink/?LinkId=204599

Visio templates

Lync Server 2010

This stencil provides over 125 shapes to help you create a visual presentation of your Lync Server architecture.

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=65b5a396-2c87-445d-be23-d324727d19cb

Office Communications Server 2007 and 2007 R2

The Office Communications Server 2007 and 2007 R2 Visio stencils contain icons for Office Communications Server 2007 and 2007 R2 server roles and components.

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=9194

Cheat Sheets

Lync Server 2010 PowerShell Cheat Sheet

A quick reference card for PowerShell use with Lync Server 2010.

http://www.powergui.org/entry.jspa?externalID=3091

Microsoft Lync 2010 Quick Reference Cards

This zipped file contains the quick reference cards for Microsoft Lync 2010. They are all in Microsoft Word, and can be edited as needed. The download contains the following Quick Reference Cards, which are also available separately:

http://www.microsoft.com/download/en/details.aspx?id=2324

Script: New-DirectoryUpdateReminder.ps1 – Prompt Users to Update Their Active Directory Information

October 3rd, 2011 5 comments

This script will look at all users in AD, and determine if they are missing key information such as office, address, title, and manager. If they are, it will send them an email requesting they update their information. It should be noted that this script is designed for environments that have a self-service solution in place for users to update their information. This can include Exchange 2010, where ECP allows the user to change many fields:

ECP options to change user info

ECP options to change user info

In some of the environments that I build, where Exchange 2010 isn’t an option, or other fields need to be changed, I install Directory Update, a small footprint solution for IIS. Directory Update is a PHENOMENAL solution that’s inexpensive, yet feature packed. It’s fully configurable and features drop downs, check boxes, and logic to ensure that users are inputting the correct information in the correct format. It also allows you to specify what fields the user can update. I highly recommend it. Other environments might use some home-grown solution, or even SharePoint. Either way, a self-service solution takes the burden off the Help Desk. A perfect example is when a manager leaves the organization. When their AD account is deleted, the users who had that person listed as their manager will automatically start getting reminders from this script since the field is now empty.

Many orgs don’t worry as much about some of these fields. However, when the information is current and correct, the data can be pulled for other purposes, such as workflow applications, org charts, phone lists, etc. Some orgs use transport rules to create disclaimer or signature phrases such as how to contact a user’s manager. All of these are perfect reasons for using this script.

Features

Runs as a scheduled task, and will remind users daily until their information is complete.

Can be run in DEMO mode to see which users would receive an email.

Can be run in PREVIEW mode to receive the formatted message to see what it looks like before rolling it out in production.

Installation

Execution Policy: Third-party PowerShell scripts may require that the PowerShell Execution Policy be set to either AllSigned, RemoteSigned, or Unrestricted. The default is Restricted, which prevents scripts – even code signed scripts – from running. For more information about setting your Execution Policy, see Using the Set-ExecutionPolicy Cmdlet.

This script requires a receive connector that will accept mail. See Creating a receive connector to use for sending email from PowerShell.

Once the receive connector is created, copy the script from the .zip file below to your server.  Open the script in any true text editor, and set the various parameters. See the highlighted lines in the script below. Each should be configured for your environment.

[parameter(ValueFromPipeline=$false, ValueFromPipelineByPropertyName=$true, Mandatory=$false, HelpMessage="Please specify a company name.")]
[ValidateNotNullOrEmpty()]
[string]$Company = "Contoso Ltd",
[parameter(ValueFromPipeline=$false, ValueFromPipelineByPropertyName=$true, Mandatory=$false, HelpMessage="Please specify an OWA URL")]
[ValidateNotNullOrEmpty()]
[string]$UpdateUrl = "https://directory.contoso.com/",
[parameter(ValueFromPipeline=$false, ValueFromPipelineByPropertyName=$true, Mandatory=$false, HelpMessage="Please specify the IP address of your email server")]
[ValidateNotNullOrEmpty()]
[string]$EmailServer = "10.9.0.11",
[parameter(ValueFromPipeline=$false, ValueFromPipelineByPropertyName=$true, Mandatory=$false, HelpMessage="Please specify a name and email address for the email 'from' field")]
[ValidateNotNullOrEmpty()]
[string]$EmailFrom = "Help Desk ",
[parameter(ValueFromPipeline=$false, ValueFromPipelineByPropertyName=$true, Mandatory=$false)]
[string]$HelpDeskPhone = "(586) 555-1010",
[parameter(ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true, Mandatory=$false)]
[ValidatePattern("^http")]
[string]$HelpDeskURL = "https://intranet.contoso.com/",
[parameter(ValueFromPipeline=$false, ValueFromPipelineByPropertyName=$true, Mandatory=$false)]
[string] $TranscriptFilename = $MyInvocation.MyCommand.Name + " " + (hostname)+ " {0:yyyy-MM-dd hh-mmtt}.log" -f (Get-Date),
[parameter(ValueFromPipeline=$false, ValueFromPipelineByPropertyName=$false, Mandatory=$false, HelpMessage="This must be zero")]
[ValidateNotNullOrEmpty()]
[int]$UsersNotified = 0,
[parameter(ValueFromPipeline=$false, ValueFromPipelineByPropertyName=$true, Mandatory=$false)]
[string] $ImagePath = "http://www.domain.com/images",

Save the script on your server.

Copy the images in the .zip file to the path you specified on line 102 above.

Run the script in demo mode to see a list of users that would receive the email messages:

.\New-DirectoryUpdateReminder.ps1 -demo
New-DirectoryUpdateReminder -demo

New-DirectoryUpdateReminder scheduled task

Test the script’s email functionality next by using preview mode. In preview mode, a single user will receive the email message. This will allow you to see what the users will see, as well as ensure that the formatting and wording is sufficient.

.\New-DirectoryUpdateReminder.ps1 -preview -previewuser [username]

After receiving and reviewing the message, adjust the HTML code as needed.

To configure the script to run as a scheduled task, run the script in install mode using

.\New-DirectoryUpdateReminder -install

This will create a Windows scheduled task that will run the script every day at 6:30am. Once the scheduled task is created, feel free to edit it to change the time.

Editing the scheduled task

That’s all it takes. Feel free to leave comments below, including any feature requests you’d like.

Donations

I’ve never been one to really solicit donations for my work. My offerings are created because *I* need to solve a problem, and once I do, it makes sense to offer the results of my work to the public. I mean, let’s face it: I can’t be the only one with that particular issue, right? Quite often, to my surprise, I’m asked why I don’t have a “donate” button so people can donate a few bucks. I’ve never really put much thought into it. But those inquiries are coming more often now, so I’m yielding to them. If you’d like to donate, you can send a few bucks via PayPal at https://www.paypal.me/PatRichard. Money collected from that will go to the costs of my website (hosting and domain names), as well as to my home lab.

Download

v1.7 – 01-27-2014 – New-DirectoryUpdateReminder.v1.7.zip

v1.5 – 09-02-2011 – New-DirectoryUpdateReminder.v1.5.zip

ScriptImages.zip – image files used in emails

Changelog

See the changelog for this script which details all versions and their features.

Script: Get-CsConnections.ps1 – See User Connections, Client Versions, Load Balancing in Lync & Skype for Business Server

August 11th, 2011 200 comments

Lync 2013 logo 128x128Tracy A. Cerise and Mahmoud Badran came up with a script to show Lync connections, and the users connected. This was quite informative as it could be used to show load balance distribution, client versions being used, and more.

I took the script and updated it a little, including:

  1. Removed the help function and the header block and inserted comment based help. So a user can run get-help Get-CsConnections.ps1 and get the help, just like any other script and cmdlet.
  2. Added a parameter to display the user list. My needs didn’t require the user list – just the statistics at the beginning. So I added the feature to show the user list by running Get-CsConnections.ps1 -IncludeUsers.
  3. Added a couple of functions, including one that cleans up some variables when exiting.
  4. Adjusted some of the formatting. I noticed things didn’t always line up when the server FQDNs were really long, like those in child domains.
  5. Did a prereq check to verify the Lync module is loaded. If not, it gets loaded. That way, the script will still run fine if it’s run from an ordinary PowerShell console.
  6. Accounted for the pool parameter being just a NetBIOS name by adding the $env:userdnsdomain to the NetBIOS name to create the FQDN. This appears to work fine if the Lync servers and user running the script are both in the same domain. If not, then an FQDN would be required.
  7. Renamed the script to Get-CsConnections.ps1 and some of the functions to the normal verb-noun format.
  8. Added a feature to show just a specific client version number, and the users connected with that client version. This can help you determine who is connecting with what versions, which is helpful when looking into licensing, upgrades, etc.
  9. Added support for Lync Server 2013, which uses a different query than Lync Server 2010.
  10. Tons more info in updates and releases following that. See the changelog for more info.

Syntax

Get-CsConnections.ps1 [[-Pool] ] [[-SIPAddress] ] [[-FilePath] ] [-IncludeUsers] [-IncludeHighUsers] [-IncludeSystem] [[-UserHighConnectionFlag] ] [[-ClientVersion] ] [-ShowFullClient] [ShowTotal] [[-Server] ] [-WhatIf] [-Confirm] []

Run the script specifying the front end pool or server to target:

Get-CsConnections.ps1 -Pool [pool FQDN]

or

Get-CsConnections.ps1 -Server [server FQDN]

The script automatically determines the version (2010 or 2013) of the pool, and uses the correct query.

If I can find an auto-detect method for server versions, I’ll include that in a later build.

Will show you unique client versions, their user agent, and the number of connections for each:

Current connected users listed by client name/version

Current connected users listed by client name/version

Distribution of connections across frontend servers (load balancing):

Connections by server (load balancing)

Connections by server (load balancing)

The number of unique users and clients connected:

Total unique users and clients

Total unique users and clients

And, adding the -IncludeUsers switch, such as:

Get-CsConnections.ps1 -Pool [pool FQDN] -IncludeUsers

will also show the users who are connected, and the number of connections they each have:

Connections per user

Connections per user

Using -IncludeHighUsers instead of -IncludeUsers will only list those users who meet the UserHighConnectionFlag (shown in white) or exceed the UserHighConnectionFlag (shown in red).

Get-CsConnections.ps1 -SipAddress [sip address] -Pool [pool FQDN]

Will show you the information for a single user:

Connection info for a specific user

Connection info for a specific user

Get-CsConnections.ps1 -Pool [pool FQDN] -ClientVersion [version number]

Will show the connection data for just that version number, including listing the users connected with that client version. This is helpful if the first method lists some version numbers you’d like to track down. Here, I used a client version of 13.1. MC/13.1.x is the OCS client on the Mac.

Connections by client version

Connections by client version

Using the -ShowFullClient option will show extended info for client name/version. However, the previous ‘Client Version’ column is not shown due to formatting restrictions. Here we can see more info, especially about mobile devices, Lync Phone Edition, and Mac clients.

Show Full Client extended info

Show Full Client extended info

Using -ShowTotal will also add additional info to the bottom section, including total number of users who are Lync enabled, total who are voice enabled, and percentage of total Lync enabled users who are connected.

ShowTotal option with totals and percentage

ShowTotal option with totals and percentage

You can export the info to a .csv file for viewing/manipulation in Excel using:

Get-CsConnections.ps1 -Pool [pool FQDN] -FilePath [path to csv file]

Installation

Execution Policy: Third-party PowerShell scripts may require that the PowerShell Execution Policy be set to either AllSigned, RemoteSigned, or Unrestricted. The default is Restricted, which prevents scripts – even code signed scripts – from running. For more information about setting your Execution Policy, see Using the Set-ExecutionPolicy Cmdlet.

NOTE: In order to gain remote access to each Front End server’s RTCLOCAL database where connection information is found, you need to open two local firewall ports; one static UDP port (1434), and one dynamic TCP port. We can use netsh to open the two required ports. First, open an elevated command prompt, and paste the following line. You should get “Ok.” in return:

netsh advfirewall firewall add rule name="SQL Browser (UDP 1434)" dir=in action=allow protocol=UDP localport=1434 profile=domain description="Created for Get-CsConnections.ps1. For more information, see https://www.ucunleashed.com/269"

Next, find the dynamically assigned port used by the Named Instance (RTCLOCAL):

  • On the Front End server, open SQL Server Configuration Manager.
  • Expand SQL Server Network Configuration.
  • Click on Protocols for RTCLOCAL.
  • On the right side, right click on TCP/IP, and choose Properties.
  • Click on the IP Addresses tab.
  • Scroll to the last section, called IPAll.
  • Note the TCP Dynamic Ports value

IPAll

Replace [dynamic port] in the code below with the dynamic port number, and run the entire following command:

netsh advfirewall firewall add rule name="SQL RTCLOCAL Dynamic Port (tcp-in)" dir=in action=allow protocol=TCP localport=[dynamic port] profile=domain description="Created for Get-CsConnections.ps1. For more information, see https://www.ucunleashed.com/269"

If you look at the inbound rules for the firewall, you’ll now see the two new rules:

fwrules

Repeat the process for both ports on each Front End server.

Note: The dynamically assigned port is unique to each Front End server, not the pool. So you’ll need find the value on each server. Once the two ports are open on each Front End server in the pool, the script should work fine.

Thanks to James Cussen for explaining what config is needed for SQL access through the firewall.

Donations

I’ve never been one to really solicit donations for my work. My offerings are created because *I* need to solve a problem, and once I do, it makes sense to offer the results of my work to the public. I mean, let’s face it: I can’t be the only one with that particular issue, right? Quite often, to my surprise, I’m asked why I don’t have a “donate” button so people can donate a few bucks. I’ve never really put much thought into it. But those inquiries are coming more often now, so I’m yielding to them. If you’d like to donate, you can send a few bucks via PayPal at https://www.paypal.me/PatRichard. Money collected from that will go to the costs of my website (hosting and domain names), as well as to my home lab.

Download

v3.5 – 08-14-2019 – Get-CsConnections.v3.5.zip

v3.4 – 03-27-2018 – Get-CsConnections.v3.4.zip

v3.3 – 01-0-2017 – Get-CsConnections.v3.3.zip

v3.2 – 11-17-2016 – Get-CsConnections.v3.2.zip

v3.1 – 04-07-2016 – Get-CsConnections.v3.1.zip

v3.0 – 09-09-2015 – Get-CsConnections.v3.0.zip

v2.9 – 10-28-2014 – Get-CsConnections.v2.9.zip

v2.8 – 06-10-2014 – Get-CsConnections.v2.8.zip

v2.7 – 05-24-2014 – Get-CsConnections.v2.7.zip

v2.6 – 02-08-2014 – Get-CsConnections.v2.6.zip

v2.5 – 11-26-2013 – Get-CsConnections.v2.5.zip

v2.4 – 09-13-2013 – Get-CsConnections.v2.4.zip

v2.3 – 08-01-2013 – Get-CsConnections.v2.3.zip

v2.2 – 05-10-2013 – Get-CsConnections.v2.2.zip

v2.1 – 12-13-2012 – Get-CsConnections.v2.1.zip

v2.0 – 10-16-2012 – Get-CsConnections.v2.0.zip

v1.9 – 09-21-2012 – Get-CsConnections.v1.9.zip

v1.8 – 09-14-2012 – Get-CsConnections.v1.8.zip

v1.7 – Get-CsConnections.v1.7.zip

v1.6 – Get-CsConnections.v1.6.zip

v1.4 – Get-CsConnections.v1.4.zip

v1.3 – Get-CsConnections.zip

v1.0 – Get-CsConnections.zip

Changelog

See the changelog for a complete list of features added in each release