Monday, July 2, 2012

Managing Office 365 users through FIM 2010

A customer of mine needed a Management Agent for handling their Office 365 users through FIM 2010 R2.

I decided to use my PowerShell Management Agent for the task. This seemed like the straight-forward solution since managing users in the Office 365 setup is basically just a bunch of PowerShell CMDlets. You can get Office 365 CMDLets here.

The solution very simply just operates on one boolean attribute (IsLicensed) and provisions / deprovisions based on this flag. I've used the FIM Portal to model the business rules through Set's and MPR's to set this flag on the users that should and shouldn't have an Office 365 account.

I have removed customer specific code from the scripts, but have decided to share the scripts with the community. Hopefully, you can use these combined with my PowerShell Management that is also available. For more information on how to use the scripts with the PowerShell Management Agent, please refer to the documentation for the Management Agent.

Any feedback is appreciated and please share findings, tips and tricks through comments on this blog entry, so that other may benefit from these as well.

You can get the scripts in the download section for the PowerShell MA and they are pretty much ready to use out-of-the-box, but please review and test them properly before putting into production.

See you in the cloud..!

Sunday, June 10, 2012

ECMA 2 PowerShell Management Agent 1.0 released

I'm pleased to announce that my PowerShell Management Agent (MA) has been released. This version is a completely rewritten Management Agent and is now built on the ECMA 2.0 Framework that is included in the FIM 2010 Rollup 2 and of course in FIM 2010 R2.

The PowerShell Management Agent is very flexible allowing you to define your own schema (using a PowerShell script) and run scripts for Full Imports and Exports. The download includes complete documentation, so I won't write more information in this blog entry.

You can get the bits here.

Please note that I'm not able to offer free support for this, however, you can sign up for official support for this Management Agent if you do so wish. Please contact me for more details on a support agreement.

Friday, May 11, 2012

PowerShell Management Agent updated

A small bug was discovered in the PowerShell Management Agent (MA). The bug was about type casting different attribute types than strings. If you're only flowing attribute values of type string to the MA, you wouldn't have noticed this issue.

However, the issue have been fixed and you could consider updating to the newest version.

You can read more about the PowerShell Management Agent here

Monday, April 30, 2012

Updated workflow for looking up values in FIM

Today, I again utilized my 'old' lookup-workflow. But I had to make a minor adjustment (or improvement as it may be) to make it support other target attributes than strings.

If you didn't know about the little helper workflow, then have a look at my old post on this which has a good explanation of it (and where you can find the bits for download as well).

I'm pretty sure that you'll find it a helpful tool.

Friday, April 20, 2012

Use Powershell to put your assemblies in the GAC

To use your own custom build workflows for FIM 2010, you need to put the hosting assemblies in the Global Assembly Cache (GAC) in the server hosting the FIM Service.

Normally, you'd want to download the .NET Framework SDK and get a hold of the Global Assembly Cache Tool (Gacutil.exe) which you certainly can use for the job of putting a DLL in the GAC. However, often times the SDK is not installed on the FIM Server and you may not even want to install this on your FIM Server.

PowerShell to the rescue. Since Gacutil.exe probably use .NET functions to get the job done, why not use the same functions from PowerShell and save the huge download and install?

Just get this short script which you can use instead of Gacutil.exe to put one or more assemblies in the cache without needing the .NET Framework SDK.

To learn how to use the script, just read the embedded help which also contains examples. Type this command in a PowerShell prompt -

Get-Help .\Add-AssemblyToGlobalAssemblyCache.ps1 -Detailed

Happy scripting...