Wednesday, December 19, 2007

Microsoft Hotfixes can now be downloaded directly from the KB article!

Got the info from Under the Stairs, but decided to echo it here as it is so useful to know. Not all KBs are ready though. In the end, this is the link you want to have:;[LN];1414&from=KBHotfix&WS=hotfix


And may I add: It was about time...

Monday, December 17, 2007

PowerShell Character Ranges

PowerShell has a range operator. I you want to express the numbers from 1 to 5, you can specify that as 1..5. 1..5 actually build an array (object[]). One question I had during training was: Can the range operator be used on characters? The simple answer is no, but you can achieve the same with a small work around. Say you want to check the drive letters between F and M -

[char]"f"..[char]"m" | Foreach-Object { "Checking " + [char]$_ }


if the numbers are not in a sequence, you can use on of these -

"fgmr".toCharArray() | Foreach-Object { "Checking " + [char]$_ }

"fgmr".getEnumerator() | Foreach-Object { "Checking " + [char]$_ }

"f","g","m","r" | Foreach-Object { "Checking " + [char]$_ }


BTW: The range operator is limited to 50,000 elements - try 1..60000 and see the error message. If you need to go from 1 to 100,000, you can either do a for statement -

for($i=1;$i -le 100000;$i++) { blah }


1..50000+50001..100000 | { blah }





Got inspired by Oisin / Nivot Ink.


In line with the Windows Server 2008 posters, there is also an Exchange Server 2007 Component Architecture poster available on MS Downloads.

Friday, December 14, 2007

OCS/Asterisk integration work in progress

FYI - if you are interested in creating a test environment with Asterisk PBX, then you should take a look at Ryan Newington post on this or better yet subcribe to his RSS feed to get the updates.

Thursday, December 13, 2007

Office 2007 SP1 fixes for Office Communicator/presence

These are from the Office SP1 Whitepaper

  • Microsoft Office Communicator 2007 now presents more accurate presence information and does so with consistent visual cues.
  • The icons used to display presence are modified so that users who are red-green colorblind can determine people’s presence status.
  • Office Communicator 2007 no longer causes presence icons to flicker when multiple people appear simultaneously.
  • Presence information in Office Communicator 2007 and other Microsoft Office applications is consistent in all scenarios (So this applies to SharePoint to).
  • Microsoft Office Outlook® 2007 no longer starts in the background along with Office Communicator 2007.
  • Office Outlook 2007 no longer allows users to send instant messages to entire distribution lists when deployed in conjunction with Microsoft Office Communicator 2007.

Following are the KB articles referenced in the SP1 xls file

  • KB936871 When you sign-in to Communicator, Outlook is started in the background. For example, when you check Task Manager, the Outlook.exe process is running. Additionally, Outlook-related items, such as meeting reminders, may appear.
  • KB936871 To check for a missed conversation, you click the "Voice Mail" search folder in Outlook 2007. Or, you click the "Missed Conversation" notification in Microsoft Office Communicator. If you then check for a missed conversation in the same session of Communicator, you receive a notification that states that Outlook could not be started.
  • KB937212 When a message is saved as a missed conversation in the Microsoft Office Communicator folder in Outlook 2007, the message indicator for the folder does not indicate a new, unread message.

Find SP1 on Microsoft Update or at the download site.

Wednesday, December 12, 2007

Select NULL from Addresses?

Well, sometime I feel like nothing, null, zip, empty - but do they have to remind me???


On the other hand: A null may need some eLearning...

Monday, December 10, 2007


Small, but useful if you like I do change the font size all the time (e.g. for presentations/training/old eyes) -

Set-ItemProperty HKCU:\software\microsoft\notepad iPointSize ($FontSize*10)
If only Notepad supported Ctrl + Scroll Wheel for zooming...

Wednesday, December 05, 2007

Disabling (bypassing) Group Policy

Group Policy settings - including Software Restriction Policies - can easily be disabled - even by a standard user. Terrible! Read the full story in Security UPDATE from WindowsITPro magazine this week. The article sums up the story so far and contain links to other relevant articles.

Some of those articles require an account to read, so if you want to get to the hard facts right away, see the GPCul8r tool. I exteacted this from the readme.txt -

How it works

In order to do its thing, GPCul8r.dll needs to be loaded into the process space of whatever program needs to bypass group policy.  Once loaded, GPCul8r works by detouring calls to the ZwQueryValueKey function to see if the program is querying one of the keys related to a group policy setting we want to bypass.  If so, GPCul8r returns STATUS_OBJECT_NOT_FOUND, thereby tricking the caller into thinking the key doesn't exist.

GPCul8r being a quick & dirty little tool is not configurable.  The targeted key names are hard-coded in the source.  They are:

- TransparentEnabled (controls software restriction policy settings)
- ProxySettingsPerUser (controls access to the IE proxy settings dialog)
- DisableRegistryTools (duh)
- DisableTaskMgr (duh)

For more on the technique that GPCul8r uses, see Mark Russinovich's original article on the subject:

The consequence: Everything below User Settings\Administrative Templates - e.q. every policy user level (as compared to kernel level or system level) code pulls out of the registry can be bypassed! If you want to counter this - read Mark's comment -

The bottom lines is that full control of an end-user environment is possible only with strict lock-down of the programs users run, something that you can accomplish by using SRP in white-list mode, for example. It's also important to note that the ability of limited users to override these settings is not due to a bug in Windows, but rather enabled by design decisions made by the Microsoft Group Policy team.

I do not know, whether Vista improves this - but I certainly hope!

Exchange 2007 SP1 and OCS UM notes and gotchas !

So you've download Exchange 2007 SP1 and want to install it on your UM server that is integrated with OCS!?

If this is your first OCS integration then you should start is by downloading the documentation and if you've earlier downloaded the Office Communications Server and Client Documentation Rollup then you should go to the Office Communications Server 2007 Technical Library and find the documents updated to version 1.1 (Quite a few of the planning and deployment guides are updated to version 1.1 - not the Enterprise Voice Planning and deployment guide though)

Then the next place you should start reading is the SP1 Release Notes and especially the part covering Unified Messaging and "Issues related to the Unified Messaging server role"

In short the important general issues are -

  • The Unified Messaging Server role must be installed on a dedicated role (Like in the Beta's)
  • Configuration data is overwritten during installation !
  • You must remove any language packs installed before installation of SP1

And most importantly when integrating with OCS the following issue apply -

  • The Exchange UM server itself cannot request the MRAS credentials required to initiate an outbound call to a remote user (A user on the Internet External to the Edge), so for Play on Phone to work in this scenario the UM Server role needs to have cached credentials from a previous incoming call and reuse these !! (Read the full evasive explanation in the Release Notes)

There are a few other smaller issues applying to OCS/UM but the above is by far the most important one (And I guess hours could be spent troubleshooting if you are not aware of this issue)

Friday, November 30, 2007

Exchange 2007 SP1 available for download

As announced yesterday in the TechNet flashes Exchange 2007 SP1 is now available for download here.

Of course I'm most interested in the Unified Messaging enhancements, but there many other interesting improvements as the import/export of PST files which is very interesting for our migration projects (And we also look forward to better stability of the product due to all the included fixes)

Following is an overview of the changes from the download site -

Anywhere Access

  • Integrated Exchange Unified Messaging functionality with Microsoft Office Communicator 2007 and Microsoft Office Communications Server 2007.
  • Outlook Web Access additions, including public folder access, S/MIME support, personal distribution lists, and mailbox rules editor.
  • Webready document viewer supports Microsoft Office 2007 documents in addition to Microsoft Office 2003 documents.
  • Extended language support in Outlook Web Access with Arabic and Korean spell checking.

Operational Efficiency

  • Support for Windows Server 2008 deployments, including benefits in flexible clustering, advanced networking, and simplified management.
  • Additional tools in the Exchange Management Console, including public folder management and configuration options for clustering and POP/IMAP access.
  • Improvements to the Exchange Management Shell syntax and import-export PST in the move-mailbox command.
  • Wider variety of web services for application development, including public folder access, delegate management, and folder level permissions.

Built-in Protection

  • Addition of Standby Continuous Replication (SCR) for site resilient high availability deployments.
  • Extended Exchange ActiveSync policies for mobile policy enforcement.
    Information rights management pre-licensing by the Hub Transport role.
  • Secure Real Time Protocol (SRTP) support in the Unified Messaging role.
    Support for IPv6 when using Windows Server 2008.

Monday, November 26, 2007


Note: The script has been updated, see this post.

One of the best features of PowerShell is the ability to do the same on the command line as in a script. Even Command Prompt do not support than.

But as VBScript is not dead yet - I'm currently doing more than 3000-lines of it - this script is useful as it allows you to execute VbScript interactively. It has two uses: 1) Test VBScript details without having to run a huge script 2) Use VBScript features than you do not know how to do in PowerShell.

The script Invoke-VbScript.ps1


function PrepareVB {

$vb=new-object -com MSScriptControl.ScriptControl

if ($ExecuteStatement.isPresent) {
else {

Execute command example -

PS> Invoke-VbScript -exe 'msgbox("hi")'

Evaluate expressions and return result example -

PS> $name=Invoke-VbScript 'InputBox("Enter your name","Test")'

Have fun!

Sunday, November 25, 2007

VMRCplus v1.6

Just saw that VRMCplus that I wrote about earlier has been updated to v1.6. Get it here.

The changes are (taken from this blog post)

So what is new in 1.6.0?
First of all, the UI reflects Virtual Server terminology. Both Paul and I had used a mix of Virtual Server terminology and internal (SDK) terminology. To reflect the terminology used in the web administration UI of Virtual Server, the terminology of VMRCplus has been updated.
Second, VMRCplus now offers configuration of scripts on both the Virtual Server and Virtual Machine level. This was missing from the previous release.
Third, VMRCplus offers configuring promiscuous mode on the network so you can trace traffic in the virtual switch. This is something Virtual Server does not offer in the web administration UI.

Of course there have been minor enhancements like storage of Console Manager coordinates, conflict handling when a shortcut already exists (something Virtual Server fails to resolve).

The COM and LPT port assignment logic has been fixed (most of it did not work).
The x86 installer package no longer installs on x64. This has been done to prevent issues with 32-bit VMRCplus on 64-bit Virtual Server.

Error handling has been enhanced and several issues have been fixed.

Tuesday, November 13, 2007


I managed to meet MOW at Ask-the-Experts today. MOW is famous within the PowerShell community for his PowerTab function and he is running blog.

If you haven't done so already - get a copy of Powertab now!

Well, it was fun meeting him and discuss some of the features I'm missing. On is -

  • dir $folder\[tab] should expand into dir $folder\file

An I gave my regards for PowerTab as such and the new constructor feature - try it yourself -

  • [system.diagnostics.process]:

Anyway, the PowerShell v2 CTP enables him to do a full tokenizing of the command line, so even better  intelligence will be possible.

Monday, November 12, 2007

Viridian becomes Hyper-V

Marketing is a strange beast. Server virtualization in Windows Server 2008 - e.g. the replacement of Virtual Server - will be called Hyper-V. I already hate that name! HyperV perhaps - but why the hyphen??

Anyway, Hyper-V will be a server feature that can be turned on. Microsoft is also planning a Hyper-V Server SKU.

Hyper-V is still expected to be delivered 6 months after Windows Server 2008.

On the management side, it was demoed at the keynote here in Barcelona, a virtual server manager that could manage Virtual Server 2005, Hyper-V *and* WMware server!

Teched IT-Forum Barcelona

(I apologize for these reposts. Windows Live Writer does not seem to be able to edit posts!?)

This is the first time I'm using the released Windows Live Writer to post here, so bear over with me if it does not work as expected ;) The new Windows Live Writer seems to support pictures and formatted PowerShell scripts, so it is much better than using the webpage.

In this year's Teched IT-Forum I'm going to focus on Windows Server 2008 and the System Center products - most ConfigMgr and OpsMgr. And then this is going to be a great PowerShell week. The CTP of V2 has been released and I hope to get in touch with some of the PowerShell staff as I have about 45 things I would like to discuss with them. I also hope to get in touch with some of the other people from the community.

Thursday, November 01, 2007

Microsoft Quality of Experience Monitoring Server RTW'ed

After you've deployed OCS and enabled Enterprise Voice (Even works with PC to PC Communication) you will get calls from users saying that I had this & this conversation and voice quality was really bad.
During the OCS beta's the only answer was "hmmmm .... ok - can you try again" but then later the rescue came from the QoE Monitoring Server Beta, which has now RTW'ed -

The QoE Monitoring Server is a new server role for Microsoft Office Communications Server 2007 Standard Edition or Enterprise Edition. It provides the information that you need in order to better understand the media quality that your users are experiencing in your Office Communications Server 2007 deployment. With QoE Monitoring Server, you can do the following:
  • Gather statistics on media quality of locations or based on a grouping of subnets
  • Proactively monitor and troubleshoot media quality of experience issues
  • Perform diagnostics to diagnose VoIP user complaints
  • View trends which can help you with post-deployment growth and measure results against the service level agreement
The QoE Monitoring Server collects quality metrics at the end of each VoIP call from the participant endpoints, including IP phones, Microsoft Office Communicator 2007, the Microsoft Office Live Meeting 2007 client, and Microsoft Office Communications Server 2007 A/V Conferencing Server and Mediation Server. These quality metrics are aggregated and stored in a SQL database. The data can then be used to alert you to abnormal media quality conditions and also to generate routine media quality reports.

Find it here

Wednesday, October 31, 2007

Passed the 70-638 OCS Beta Exam ;-)

Not that I was worried in anyway :-S but other bloggers and some of my students from my Unified Communications Bootcamps already reported that they had passed the exam (Called 71-638 while in beta) .... and I haven't received an e-mail about passing.

I'm in Seattle this week and was chatting with a colleague who haven't received an e-mail either, so I re-checked today and yes I did indeed pass it ;-)

Now again, I wasn't really worried - but I guess I will treat myself with an extra beer tonight at Jillians ;-)

Sunday, October 21, 2007

Call-Method v2

This is a follow-up article to Call-Method.

When PowerShell pipes a collection or array, it unwraps the object and passes the individual items in the collection/array. This is normally a very useful behavior, but if you pipe to function like Get-Member and Call-Method, you do not always get
what you want. Let me show how it works -

# Construct an array

# Pass the array down the pipeline
# Gettype will be called 3 times for each integer
# in the array
$array | cm gettype

IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Int32 System.ValueType
True True Int32 System.ValueType
True True Int32 System.ValueType

# Wrap array with the array operator. This changes
# nothing as the array operator only creates an array
# if there is none
@($array) | cm gettype

IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Int32 System.ValueType
True True Int32 System.ValueType
True True Int32 System.ValueType

# Pass an array with the first argument being our
# array - this works
,$array | cm gettype

IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array

# Use the updated Call-Method and use the InputObject
# argument - like the one found on Get-Member
cm gettype -InputObject $array

IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array

## This is the updated Call-Method function

function Call-Method($method,$InputObject) {
begin {
if ($inputObject) {
process {
if ($_) {
new-alias -force cm Call-Method


When you are using PowerShell, you often have to call a method. Calling a method is not difficult -
but you kind of have to change gear - you have to switch from the PowerShell way of doing things to the .Net / programmatic way. This is no problem if you know it - but it is hard to teach someone, especially if they do not have a programming background.

So, why not create a function and do it the PowerShell way? The function is actually very simple -

function Call-Method($method) { process { $m=$_.$method; $m.invoke($args) } }

And add an alias to minimize the typing -
new-alias -force cm Call-Method

Now it is simple to call methods without dots and parenthesises -
"abc" | cm toupper
"abc" | cm indexof b
"abc" | cm substring 1
$s[($s | cm indexof b)]

Have fun!

Friday, October 12, 2007

Microsoft Unified Communications Partner of the year

Last night Inceptio received the Microsoft Unified Communications Partner of the year award ;-)

According to Microsoft this was due to our contributions to Unified Communications area in the past year delivering lots of Proof of Concepts, UC Bootcamps and UC projects, furthermore we contributed to the fact that UC and Microsoft now has become interconnected terms.

Thank you to all of my colleagues and all of you out there who helped Inceptio succeed in the UC space !!

Microsoft Office Communicator 2007 Hotfix released

Microsoft released a hotfix for Office Communicator 2007 that fixes some different minor issues with OC and presence -
  • 942566 Error message in Communicator 2007: "An error occurred while trying to start the conference" or "This message was not delivered to all participants"
  • 942568 The text alignment in an e-mail message may be incorrect in Communicator 2007
  • 942569 The Russian language name is spelled incorrectly in the list of available languages in Communicator 2007
  • 942570 The telephone number in a Communicator 2007 pop-up window for an incoming call has an incorrect text direction when the language is set to Arabic or to Hebrew
  • 942671 A new policy is available to specify the Contacts store that Communicator 2007 uses
  • 942674 Unrecognizable characters appear in the date field of the display on a Unified Communications device that is used with Communicator 2007
  • 942677 The transport option is not automatically set to TLS when you click "Manual configuration" in "Advanced Connection Settings" in Communicator 2007
  • 942857 Menu items are truncated in the Hebrew version of Communicator 2007
  • 943061 Communicator 2007 crashes when the SipCompression registry entry is set to PING mode and the Transport registry entry is set to TLS
  • 943062 You may be prompted to restart the computer when you try to start Communicator 2007
  • 943063 Communicator 2007 crashes when you start it by using the presence control
  • 943064 After the computer resumes from hibernation or from standby, Communicator 2007 may consume 100% of CPU usage
  • 943065 Communicator 2007 presence icons do not change in Outlook 2007 after you disconnect a computer from the network
  • 943066 Presence status does not change from "In a Meeting" to "Available" in Communicator 2007
  • 943067 Certain icons may be mirrored incorrectly in the call conversation window in the Arabic version or in the Hebrew version of Communicator 2007
Personally we haven't had any major problems with the RTM release of OC and OCS, the biggest issue in this list for me was actually 943065 (Presence in Outlook after returning from Hibernation).

Btw. sorry for being away - I know I promised to blog more on UC but an abundance of work and sickness hindered me. I will now take a week of vacation and will return with much more information afterwards (Promises, promises, promises ;-)

Wednesday, September 19, 2007

Wake Active Directory from the Dead

So you have this 10-server test setup with multiple domains, multiple domain controllers, member servers and clients. It is running Virtual Server and for some months ago you left it and now it is time to use it again.

You power it back on and everything works - - - Not (If you seen Borat you know what I mean!)
The object changes I made in the child domain did not appear in the GC on the parent domain!?

Looking into the problem, I found this event -

Event Type: Error
Event Source: NTDS Replication
Event Category: Replication
Event ID: 2042
Date: 19-09-2007
Time: 11:37:04
Computer: SRV02
It has been too long since this machine last replicated with the named source machine. The time between replications with this source has exceeded the tombstone lifetime. Replication has been stopped with this source.
The reason that replication is not allowed to continue is that the two machine's views of deleted objects may now be different. The source machine may still have copies of objects that have been deleted (and garbage collected) on this machine. If they were allowed to replicate, the source machine might return objects which have already been deleted.
Time of last successful replication:
2007-04-12 15:57:10
Invocation ID of source:
Name of source:
Tombstone lifetime (days):

The replication operation has failed.

User Action:

Determine which of the two machines was disconnected from the forest and is now out of date. You have three options:

1. Demote or reinstall the machine(s) that were disconnected.
2. Use the "repadmin /removelingeringobjects" tool to remove inconsistent deleted objects and then resume replication.
3. Resume replication. Inconsistent deleted objects may be introduced. You can continue replication by using the following registry key. Once the systems replicate once, it is recommended that you remove the key to reinstate the protection.
Registry Key:
HKLM\System\CurrentControlSet\Services\NTDS\Parameters\Allow Replication With Divergent and Corrupt Partner

Oh no - do I have to rebuild it all? Fortunately not. Doing a series (the message says registry key, but it is a value) of -
reg \\server\HKLM\System\CurrentControlSet\Services\NTDS\Parameters /v "Allow Replication With Divergent and Corrupt Partner" /t reg_dword /d 1

(one line, but may be wrapped here)

and restarting the domain controllers solved the problem.

Read more in Event ID 2042: It has been too long since this machine replicated

Monday, September 17, 2007

Windows Server 2008 Kernel Changes

Just saw/heard the Windows Server 2008 Kernel Changes by Mark Russinovich (SEC416) from TechEd in Orlando. As always, valuable information - and hearing Mark stumble as his system unexpectedly crashes for him is kind of funny.

For those of you having 32-bit terminal services systems, you should look forward to the improvements: More virtual memory, parallel sessions initiations (e.g. logons) etc.
But, hear it all for yourself here.

Thursday, September 06, 2007

Gartner Magic Quadrant for Unified Communications 2007

Interesting reading, Gartner has published a new MQ for Unified Communications 2007, where Microsoft is the leader in "ability to execute" (With IBM and Cisco lagging behind).

Gartner concludes that 2008 will be the year where UC will be mainstream and even refers to Microsofts VoIP As You Are versus "rip and replace" strategy for implemting UC ;-)

Btw if you haven't seen the two PBX's discussing VoIP As You Are before then it i a must. Also two new PBX Replacement Cam videos has been released (I bet they had some fun making these ;-)

Sunday, September 02, 2007

USB telephony updates for Windows XP / Vista

During my UC Bootcamps I've had problems a few times with my USB handsets being set as primary sound device (Therefore sound from demo's and videos would be redirected to my Anacapa device instead of my Logitech USB loudspeakers).

I'm switching quite a bit between the Roundtable device, speakerphone's and the Anacapa, so it's quite an annoyance to always check whether my Logitech is still the default

There is an XP/Vista update for this that I've blogged about before, but it has now been updated so I will try to test it again.

Find the updates here -

A USB telephony device that is installed on a Windows Vista-based computer is unexpectedly set as the default audio device
A USB telephony device that is installed on a Windows XP-based computer is unexpectedly set as the default audio device

Wednesday, August 29, 2007

Office Communications Server 2007 licensing (and pricing) - Update

Interested in how Office Communications Server 2007 licensing will be, then look at the following snippet from a presentation that was shown at the Partner Conference in Boston (Click the picture for a larger version).

Basically there are two Client licenses that are additative. You always need a Standard CAL and can on top of that buy an Enterprise CAL that deliveres all of the Conferencing (Web, Audio/Video, Application Sharing) and the VoIP & Remote Call Control features.

For the servers there's the Standard and Enterprise Edition (Scalability and Availability) and you should note that Communicator Web Access, Speech Server 2007 and Office Communicator Mobile 2007 are included in the server licensec.

Update - find more information on licensing options on the web page How to buy Microsoft Office Communications Server 2007.

For pricing information according to Michael Dunn's posting regarding Speech Server 2007 pricing it will be -

  • Standard Server - $699.00
  • Enterprise Edition Server - $3,999
  • Standard Client Access Licence - $31
  • Enterprise Client Access License - $139

No info from Dunn though on the licensing type / price (MVLS, Select etc.)

Monday, August 27, 2007

Getting EXIF Information

So you are sitting there at your desk Monday morning, trying to organize some photos. Your file dates are a mess, but - hey - you know that the photos contains the EXIF date picture taken value. Writing a small script to sort things out should be a small problem.

But how do I get to the data? Searching for Powershell exif data picture taken soon got me to the James ONeill's blog. But it was quite complicated and then I remembered that I did something similar from VBScript a while back. I looked in the script and realized, that the Shell.Application object could retrieve the information in an easier way.

I started off writing Get-ExifDatePictureTaken, refined it to Get-ExifProperty with a $property parameter with "date picture taken" as default, but realized that the right solution was to use the extensible type system (ETS). ETS makes Powershell so stong!

I created ExifDatePictureTaken.ps1xml -
trap {write-debug $error[0]}
$shell=new-object -com Shell.Application
$folder=$shell.Namespace((split-path $this))
foreach($i in 1..100) {
if ($folder.GetDetailsOf("",$i) -eq "date picture taken") {write-debug $i;break}
if ($i -lt 100) {
$folder.items() | ? { $ -eq $ } | % {
if ($date) {
# Dates are text and DD-MM-YYYY cannot be converted to datetime
# Convert DD-MM-YYYY to YYYY-MM-DD
$date=$date -replace "^(\d{2})\-(\d{2})\-(\d{4})",'$3-$2-$1'
# Cast to a datetime
[datetime] $date

and loaded it with Update-TypeData.

Hint: You cannot Update-TypeData on the same files twice (in the same Powershell sessions). Consequenly, I use something like this when testing -
PS> powershell { update-typedata Exifdatepicturetaken.ps1xml; $file=get-item 'S:\Billeder\2007\2007-03 Diverse\P1010169.JPG'; $debugpreference="continue"; $file.datepicturetaken }

Now I can simply get the DatePictureTaken property of any System.IO.File object.

The downside to this approach is speed. It is slow. I could be improved in several ways -
  • If the index is static (I do not know whether that is the case or not), it did not have to be found everytime
  • The folder object could be cached in a global variable, so multiple consequtive lookups in the same folder was faster

If you make any improvements, please post them as comments.

Saturday, August 25, 2007

Problems with Exchange 2007 certificates when you're on VPN or in the Companys LAN ?

A while ago I used half a day with one of our consultants troubleshooting this and other issues and setting this up correctly and it now turns out that a KB article has been published, which handles this exact issue -

Warning message when you start Outlook 2007 and then connect to a mailbox that is hosted on an Exchange 2007-based server: "The name of the security certificate is invalid or does not match the name of the site"

This issue occurs if the following conditions are true:
  • You replace the default self-signed Exchange 2007 certificate with a different certificate.
  • Note The Exchange 2007 Setup program creates a default self-signed certificate when Exchange 2007 is installed (DLT Comment - That shouldn't be deleted!).

The common name on the replacement certificate does not match the fully qualified domain name (FQDN) of the URL that is stored in the following objects:

  • The Service Connection Point object for the Autodiscover service
  • The InternalUrl attribute of Exchange 2007 Web Service (EWS)
  • The InternalUrl attribute of the Offline Address Book Web service
  • The InternalUrl attribute of the Exchange unified messaging (UM) Web service
By default, the URL that is stored in these objects references the NetBIOS name of the server. For example, a URL that resembles the following is stored:

This may differ from the host name that is used in the FQDN of the replacement certificate. For example, the replacement certificate may have an FQDN that resembles the following:

This issue causes a name mismatch error to occur. Therefore, you receive the security warning message when you try to connect Outlook 2007 to the mailbox.

Read more at KB940726

Speech Server (2007) Pricing Revealed - Updated

Updated - Look at Office Communications Server 2007 licensing (and pricing) for full information on pricing (Speech Server 2007 is included in OCS).

I know many are waiting for OCS 2007 pricing (Expected around Launch timeframe which October 16th), but it seems that OCS Speech Server pricing has been released. Look here for more info.

Interesting posting "Developing applications for OCS - where do I start?"

If you are looking at developing against OCS then then the right place to start is here -

Developing applications for OCS - where do I start?

Also he has a more in-depth walkthrough of the available API's here -

An overview of the APIs in Office Communications Server 2007

Joe Calev is discussing development in Speech Server and Office Communications Server. Find his excellent blog here.

Update Rollup 4 for Exchange 2007 released

FYI - you can find the KB here and download here (Although I'd much rather see SP1 in the Downloads feed ;-)

Wednesday, August 22, 2007


The daugther of one of my friends had a PC that would not start. Not that I like to mess with that - had done that too often - but helpful as I am I brought the PC home.

It failed with UNMOUNTABLE_BOOT_DEVICE STOP: 0x000000ED (0xaddress,0xC0000006,0x00000000,0x000000)

I searched the net. Found several articles but not really anything that seem 'correct'. Finally, I found an article on Well, I could not get to the answers as I do not have an account, but sometime Google's caching feature are very useful...

So this is how I did it based on the answers I found -

Start the recovery console. If you do not have it installed - or when that version does not work - like in this case, boot from an installation CD and select R for repair. You can easily mix languages - I used an English CD on a Danish Windows

Run these command -
chkdsk c: /r /p
exit (to reboot)

That is it.

Are you a Poshoholic?

Have run reading this. :)

Windows Mobile 6 for HTC P4350 upgrade (And TyTN)

Finally it's here (And with Danish keyboard support as well ;-).

I had the S710 for a while this summer and there just are some features that are hard to live without. I primarily missed the enhanced browsing capabilities and the Quick Search feature in e-mail where you type e.g. Helsinki and any mail with Helsinki appears (Very good for finding a travelplan/address when you're standing in some airport abroad).

Anyway find the press releases here.

Tuesday, August 21, 2007

Limitations in upgrading from OCS 2007 Eval to Release versions

Microsoft has released a document describing the upgrade proces in details and there are some interesting limitations in upgrading your Eval installations (In line with Microsofts recommendations Eval should only be used for lab deployments)!
  • Evaluation to full release upgrades are only supported for the volume editions of Office Communications Server full released version.
  • You cannot upgrade from the MSDN® edition or to the MSDN edition of Office Communications Server 2007 full release.
  • During any particular upgrade, if you cancel the evaluation to full released version of the file installation portion of the upgrade, your server will not perform as designed.

Sunday, August 19, 2007

Limited support for Exchange 2007 SP1 beta 2 in production with UM / OCS integration - Updated

UPDATE - the readme file has been updated again - check it here.

I just re-checked the SP1 KB article mentioned earlier in the posting Exchange 2007 SP1 Beta 2 information.

And noticed this in the last part of the KB article -

... Traditionally, beta support has been limited to public forums. Beta products have never been supported in a production environment. However, for this beta version, limited support is available through Microsoft Customer Service and Support for customers who want to integrate Communications Server 2007 and Exchange UM features until the release of Exchange 2007 SP1. To receive support through the Microsoft Customer Service and Support organization, you must strictly meet the following criteria:

  • Exchange 2007 UM SP1 Beta 2 role deployed to a dedicated server.
  • No additional roles deployed with SP1 Beta 2 within the environment.Warning Additional Exchange roles will start an Active Directory Schema update to the production environment when SP1 Beta 2 is installed.
  • Only 64-bit code will be supported.
  • You must be trying to integrate with Communications Server 2007.

These are similar to the requirements that are imposed on OCS TAP customers - but new is of course actual public support for SP1 Beta 2 on the UM role.

Btw. if you want more info on Exchange 2007 UM and OCS integration then take a look at Introducing Unified Messaging in Office Communications Server 2007 environment.

NLB not supported in OCS 2007 production or lab environments!

As discussed earlier in LCS and Network Load Balancing, LCS 2005 didn't support Windows Server 2003 Network Load Balancing Service in production environments (But were perfectly fine to use in lab environments).

It turns out that OCS 2007 isn't even supported in lab environments as documented in -

The Windows Server 2003-based Network Load Balancing service is not supported by Communications Server 2007 in production or lab deployments

So for OCS 2007 and arrays of Front End servers or Directors Hardware Load Balancing is the only supported method.

Wednesday, August 15, 2007

OCS 2007 Resource Kit Sample Chapters published

Three sample chapters on Infrastructure and Security Considerations, Basic IM and Presence Scenario and Remote Call Control Scenario has been published to the web.

I saw it yesterday but wanted to read it before I published the information (so I could say something slightly intelligent about it ;-)
The sample content is exactly what I want to see in a resource kit. There are some very detailed explanations on what happens behind the scenes. For example a good section in "Basic IM and Presence Scenario" covers "Examining the Technical Details Behind the Login Process" and has very detailed explanations on e.g. the entire auto-disovery and authentication process and spiced up with SIP snippets.

Of course it's written by some bright Microsoft guys namely mr. Dialplan (Joechen Kunert), Jeremy Buch and Rui Maximo.

Find the book on MS Press here (Can't wait to get my hands on the book and Microsoft if you need a reviewer ... then I'm right here ;-)

Tuesday, August 14, 2007

A Step Beyond Exchange Management Shell Primer

As opposed to Per's super advanced PowerShell scripts here's a very good introduction to a bit more advanced PowerShell concepts than just the fundamentals -

There are many excellent introductory materials covering the Exchange Management Shell in Exchange Server 2007. This article aims to enforce the fundamentals with practical and useful examples. The goal is to help an Exchange administrator better his understanding and command of the EMS in performing routine messaging and related tasks, freeing up time for more important tasks.
Find the article here. Seen on the writer's blog.

Microsoft Unveils Exchange Server 2007 Service Pack 1 in Technology Preview

Continuing on my earlier post there's a press release from Microsoft on the Technology Preview program on SP1 Beta 2. As the press release states it now includes -

Support for Windows Server 2008 and Windows Vista®. Exchange Server 2007 SP1 runs on Microsoft’s next-generation server platforms, including Windows Server 2003 SP2 and Windows Server 2008. The update also enables Exchange Server 2007 management tools to run on Windows Vista and Windows Server 2008. Among other benefits, Windows Server 2008 clustering will make it easier for companies to deploy geographically dispersed Exchange Server clusters.

Enhanced integration with Office Communications Server 2007. Exchange Server 2007 unified messaging goes beyond e-mail to deliver faxes and voice mail to Outlook. With Exchange Server 2007 SP1, people can retrieve voice mail messages from Microsoft Office Communicator 2007 with a single click. Also, certain Office Communications Server 2007- and Office Communicator 2007-qualified devices will be able to work with Exchange Server 2007 for additional functionality, such as a new message indicator that shows when a user has a new voice mail message.

Additional Exchange ActiveSync® policies. New Exchange ActiveSync policies in SP1 build on Exchange Server 2007’s robust security and management features with new policies for synchronization, authentication and encryption. For businesses with more advanced data protection needs, Exchange Server 2007 SP1 offers device, network and application controls. These new features allow network administrators to help manage and secure Exchange ActiveSync-enabled mobile devices.

Standby Continuous Replication (SCR). This new high-availability feature helps organizations recover quickly from failures that affect an entire datacenter, such as a natural disaster or extended power outage. Mailbox data is replicated continuously to a standby server using Exchange Server’s built-in log file shipping technology. The standby server can be quickly activated if the primary server or datacenter goes offline.

Enhanced security. Microsoft also unveiled Forefront™ Security for Exchange Server SP1, which integrates with Exchange Server 2007 SP1 to provide an extra layer of security for even greater protection and control. Forefront Security for Exchange Server includes multiple scan engines from industry-leading security firms integrated in a single solution to help protect against viruses, worms and spam. The new service pack for Forefront Security for Exchange Server features improvements in content filtering and manageability as well as support for Windows Server 2008.

Find the rest here.

Exchange 2007 SP1 Beta 2 information

I stumbled over this on Google -

What's New in Exchange Server 2007 SP1 Beta 2 Extensibility
Ch-ch-changes! They are a comin'. Microsoft Exchange Server 2007 Service Pack 1 (SP1) Beta 2 includes some changes that affect developers, including updates to transport extensibility and additions to Exchange Web Services. To help you prepare to develop for Exchange Server 2007 SP1, this article provides a brief overview of these changes.

Furthermore the UM / OCS part of SP1 is available publicly now -

Requirements for Exchange Unified Messaging integration
If you want to deploy Communications Server 2007 in order to use the Exchange UM voice capabilities and in order to integrate with the Exchange UM service, you have to install the Exchange UM role to Microsoft Exchange Server 2007 Service Pack 1 (SP1) Beta 2. Based on the SP1 release notes, Exchange 2007 SP1 Beta 2 introduces the following features that are required to integrate Communications Server 2007 with the Exchange UM service...

And of course there are the original Microsoft Exchange Server 2007 SP1 Release Notes that eventually will be updated for Beta 2

Saturday, August 11, 2007

Inceptio is finally running OCS 2007 RTM ;-)

Due to my vacation I haven't had time to upgrade until now. Basically the upgrade process went pretty smoothly and didn't last more than a 3-4 hours in total.

For my Front End (a.k.a. Home) server I used the option to export all my users (actually only their settings/contacts etc.), deactivate/uninstall and then install RTM of OCS 2007. For the other servers I also deactivated and uninstalled RC versions and reinstalled the RTM versions. There were a few gotchas but luckily nothing major.

I ran into a documentation error in the dbexpimp.exe suppport tool/help file included with OCS 2007. It states that the syntax for import is dbimpexp.exe /hrxmlfile:"c:\SavedUserData.xml". It's obviously "dmpimpexp.exe /import /hrxml...."

The other issue was a bit more quirky. After reinstalling the OCS 2007 Front End I reassigned all users from ADUC to the new RTM server (With the same name as the old). After that I imported the user data using dbimpexp.exe and everything worked fine (Presence, IM, voice and conferencing). While upgrading the Mediation Server I noticed that all users where disabled, but since all users worked and I was running a RC version of the MMC from the Mediation Server I concluded it was a co-existence issue.
Later I was testing PIC connectivity. I created a new Live account and from Live Messenger added Nothing happened on the OC side. I then added my messenger test account from OC and presence and IM was now working, while this was good it still wasn't OK - I should receive a pop-up in OC. Then I took a look at my user from the OCS MMC and immediately noticed that all users still were marked as "disabled" (Even though they were fully functional). I then ran through all users and enabled them one-by-one. After a Sign Out and Sign In in OC I finally recieved my pop-up (Although I'm not quite sure why and if this has anything to do with PIC not popping up requests, it's still a fact that the users were both disabled from the MMC GUI and functional at the same time). This problem is most likely due to a fault on my side or only related to migrations to RTM.

The last issue was federation with Microsoft (other partners worked fine) after troubleshooting and debugging a bit I suddenly remembered that I had seen a mail a few days ago

All OCS services will be down for the RTM upgrade.

Scheduled Downtime: Friday 8:00am – Saturday 9:00pm services will be down intermittently during the OCS upgrade.

So I guess Inceptio reached RTM before Microsoft ;-)

Office 2007 hotfix that improves presence, IM and UM integration (And Search)

In the release notes for Office Communicator 2007 there's a reference to a Hotfix for Outlook 2o07 that also may be of interest to Live Communications Server 2005 users (A.k.a. legacy users ;-).
It provides "Consistency of presence data between the presence provider application and Office and improvement of other integration points, including voice mail".

Following are the fixes for presence and IM -

  • The presence information that is provided by a presence application is now accurate in all scenarios.
  • Instant messaging to distribution lists is no longer supported in Microsoft Outlook.
  • The presence icon does not flicker when many people appear at the same time.
  • Presence requests from Office applications to presence applications are now handled correctly in all scenarios. For example, a Microsoft Office SharePoint Server 2007 Web page now shows current presence information.
  • The icons that are used to display presence data are modified. Users who are red-green colorblind can now determine the status of other users.
Furthermore it fixes the following Outlook features -

  • In Outlook Search folders, the count for unread items that are hidden is now accurate.
  • When you start an Outlook Search folder from a separate application programmatically, the operation now works as expected.
  • You do not have to start Microsoft Office Outlook 2007 to discover a server that is running Microsoft Exchange Server. Outlook 2007 now provides an API to discover Exchange Server servers.

It's a 35 MB download and contains updates to a lot of files including scanpst and update to the API to discover Exchange servers. Find KB936864 here that includes link to the download site.

Thursday, August 09, 2007

Wainhouse Research Survey Shows That Microsoft Leads the UC Race

Wainhouse research has released the results of a survey that shows Microsoft leads the Unified Communications race at small and large customers (160 end users where asked) -

Survey responses indicate that Microsoft has a commanding lead in the enterprise unified communications space with 48% of those surveyed stating that they are currently using or considering to use Microsoft OCS within their organization as compared to 35% currently using or considering to use Cisco UPC and 24% currently using or considering to use IBM Lotus Sametime.

In line with what we see at customers and partners it also states that "One surprising statistic is the huge mindshare Microsoft has generated over all other unified communications solutions."

Microsoft is not only a genius at marketing, personally I think that Office Communications Server 2007 and the accompanying line of products (See Just how big is the OCS release?) is the most interesting release of products from Microsoft since Exchange 4.0 was shipped more than 11 years ago back in March 1996 (See my blog Microsoft Exchange's 10 year anniversary).

See the full Press release here.

Wednesday, August 08, 2007

OCS Quality of Experience Whitepaper

IMHO one of the strongest features of OCS is its adaptive Audio codecs and the Quality of Experience (QoE) approach to sound quality.

The QoE whitepaper available for TAP's, MVP's and others has now been RTW'ed -

This document introduces Microsoft UC Quality of Experience, an innovative approach that aims to provide all users with the best possible quality anytime anywhere. It combines a comprehensive, user-focused quality program incorporating all significant influencing parameters; the use of intelligent, adaptive end-points that have the real-time capability to monitor, pilot, optimize, and deliver the Microsoft UC Quality of Experience; real-time metrics of user’s perceived quality of the actual call experience for all calls, collected in Metrics CDR and processed by a UC Monitoring Server; and a new media stack optimized for unmanaged IP networks, capable of real-time adaptive and corrective actions to continuously optimize the user’s subjective experience

It's a very good whitepaper, a bit marketing oriented but still contains a lot of good info on the QoE approach and especially the Audio Codecs and also the actual network bandwidth usage (IMO there could have been more info on Video - but you gotta stop somewhere).

Find it here (Seen on Tom's blog).

HMC 4.0 Migration toolkit

Microsoft has released the HMC 4.0 Migration toolkit.

This migration kit is a collection of tools and white paper to guide system integrator and service provider through migrating to Microsoft® Solution for Hosted Messaging and Collaboration version 4.0 from previous Hosted Messaging and Collaboration version 3.5. This migration is mainly about upgrading Microsoft Exchange Server 2003 to Microsoft Exchange 2007 and Microsoft Windows® SharePoint® Services version 2.0 to Microsoft Windows SharePoint Services version 3.0. It also includes provisioning data migration from Hosted Messaging and Collaboration version 3.5 Microsoft Provisioning System (MPS) to Hosted Messaging and Collaboration version 4.0 MPS.

So hopefully they can start on working on HMC 4.5 now (Which includes Office Communications Server 2007 ;-)

Free Clinic - Introduction to Microsoft Exchange Server 2007 Unified Messaging

In this online clinic, you are introduced to the new Unified Messaging features and functionalities in Exchange Server 2007. In addition, you learn how telephony and Unified Messaging can be integrated in Exchange Server 2007. This online clinic is composed of a rich multimedia experience. It is intended for IT Professionals who are interested in telephony or Unified Messaging.

Find it here

Seen on

Wednesday, August 01, 2007

Deleting an eventlog

On my old XP PC I had a couple of extra eventlogs like MonadLog (yes, it is that old) I wanted to get rid of.

It is very easy from PowerShell -

PS> [System.Diagnostics.EventLog]::Delete("MonadLog")

A warning: You can also delete logs like System (this was tested on XP). After two reboots, the log works again - but naturally it was flushed.

Saturday, July 28, 2007

Office Communications Server 2007 resources #8

Following is a small set of resources (will be updated continously)

Communicator Team
Communications Server Team

Product and Tools
Office Communicator 2007 Trial
Office Communicator 2007 release notes
Office Live Meeting download
Office Communications Server 2007 Trial
Office Communications Server 2007 release notes
Office Communications Server 2007 Speech Server Trial
OCS 2007 resource kit (Requires Visual C++ from here)
Microsoft Office Live Meeting 2007 Release Notes

Webcasts, Virtual labs and Podcasts (Nice set of virtual labs and some good Podcasts already in place)
Full OCS 2007, OC 2007 and LiveMeeting documentation as download or online
OCS Documentation downloads
Office Communications Server 2007 Technical Library
OCS 2007 on (KB articles etc. and includes RSS feed to new KB articles)

OCS 2007 has RTM'ed !!

I received the following mail today stating -

Dear TAP Participant,

This is the update that all you (and of course all of us here at UC) have been waiting for: Microsoft Office Communications Server (OCS) 2007, Microsoft Office Communicator (MOC) 2007, Live Meeting (LM) console (2007), Outlook Add-Ins, Voice devices including “Tanjay,” “Catalina,” “Anacapa” and Microsoft® RoundTable™ have reached the Release to Manufacturing (RTM) milestone!

We have been looking forward to this release and we have a lot of OCS customer projects just waiting for the final bits. As TAP participants we will have access to the bits right away, but the problem is vacation (I still have one week left, so I will probably have to ditch a few nights of sleep to install it in our environment).

Anyway, now the bits are final I will be back with a lot of more OCS content in the following months!

Thursday, July 26, 2007

PowerShell, $input vs. process

So, what is the difference between a script (Add-TimeStampA.ps1) with this content -
$input | % { "$(get-date -f HH:mm:ss) $(out-string -inp $_)"}

versus this (Add-TimeStampB.ps1)? -
process {"$(get-date -f HH:mm:ss) $(out-string -inp $_)"}

The best way to show it is to try it. First a simple demo -

PS> "hi" | .\Add-TimestampA.ps1
10:08:05 hi
PS> "hi" | .\Add-TimestampB.ps1
10:08:06 hi

The same.
Let's try a loop -

PS> "a","b","c" | .\Add-TimestampA.ps1
10:09:01 a
10:09:01 b
10:09:01 c
PS> "a","b","c" | .\Add-TimestampB.ps1
10:09:03 a
10:09:03 b
10:09:03 c

Still the same.
Let's try it with a loop that takes some time!

PS> "a","b","c" | % { start-sleep -s 3; $_ } | .\Add-TimestampA.ps1
10:10:11 a
10:10:11 b
10:10:11 c
PS> "a","b","c" | % { start-sleep -s 3; $_ } | .\Add-TimestampB.ps1
10:10:21 a
10:10:24 b
10:10:27 c

Did you notice the difference? With Add-TimeStampA all input comes at once and the timestamp is applied at the same time. With Add-TimeStampB, the output is stamped as it is generated.

The explanation is this: The version with $input, stalls the pipeline and waits for all input from the previous command before continuing (just like Sort-Object). The version with process, handles the input as it comes dripping down the pipeline.

You could also see it this way: $input turns the script into a blocking function whereas process makes the script behave like a filter (use get-help about_function for more).

Tuesday, July 24, 2007

Microsoft SharedView Beta

Microsoft has a new remote control / application sharing product in the pipeline called SharedView. I read about this in Flaphead back in May but at the time the download link did not work. Now it does - get it here.

SharedView seems to be a mix between Groove and gotomypc (and its siblings). SharedView always connects outbound to some servers. I assume they are Microsoft servers (see the note below) - but the IP addreses cannot be reversed looked up. And Google did not know of them.

PS> netstat -ao select-string 6556

UDP *:* 6556

(6556 is the PID of SharedView). It also has a connection to, and during startup. The UDP port cannot be used on my PC owing to Firewall restrictions and a Wireshark trace showed no UDP packages on this port.

Anyway, as it always connects outbound, you can use it in most places. Connecting to port 8000 may be a problem, I have not tested whether it can work without.

So where is this useful? Family assistance, peer-to-peer, help desk - especially when the users are outside the corporate network, consulting - can help customers or work on their computers without having a VPN connection. This is both security risk and a security advantage: The risk is having external persons using internal computers, the advantage is that SharedView limits the external person much more than any VPN connection.

SharedView does not redirect client drives - it only allows for remote clipboard access. This can be disabled in the options window. SharedView have a handout feature for transferring files, but you cannot directly access files. And to get control, the other end must grant you control.

Other highlights -
  • You have to log on with our Passport ID to use it.
  • 15 persons can be in a session
  • Cursors are tagged with user name
  • If you start the sharing session from Word, that application will be shared automatically. Even smarter is the fact, that tracked changes are turned on and if another user is granted control and changes the documents, those changes are tracked as being done by that user - cool!

Downsides -

  • Shows ads
  • Not officially supported on Vista - but works for me
  • Not supported on x64 - come on Microsoft, you can do better!
  • No Office Communicator integration (Messenger integration is there)

The note below
When browsing to IE gives a warning that the certificate does not match - but you cannot view the certificate. Continuing by clicking the red shield returns a 403 error - and again you cannot view the certificate. A shame. With Wireshark I could capture the TLSv1 Server Hello package and see the certificate CN which reads:

So I guess it is a real Microsoft server.

Surface Computing: Business Demo 2.0

Surface computing is cool. Found a video I haven't seen before of a T-Mobile shop example.

Try to do a search of 'surface computing' on There are several videos out there. Including some parodies, I'm going to watch shortly over a cup of coffee.

Fun Dept: Behind the technology video

See this funny video. Found the link in Thomas Lee's Under The Stairs blog entry.

Monday, July 23, 2007

Live Messenger "Look at my summer pictures" worm!

I have used a lot of time educating my grandma (who is >80 years old) on how to use the Internet, Live Messenger and her Webcam (Which she called me last summer to request "Can I also get one of those camera thingies that your children have").

Luckily she listened to me, because today she called me that she was getting strange messages from her family members on Live Messenger (Soon 24 great-grandchildren in total).

So if you receive a message from one of you Live Messenger contacts saying "look at my summer pictures http_//" then DON´T click the link.

If one of your friends downloaded the file, it will also try to do file transfers of files called "", "", "" and others to your computer (And to all of your buddies if you are stu... enough to transfer and open the file). In this case it actually also wrote "Hey, acceptera mina bilder" and other messages in Swedish from her daughter based in Sweden (We are from Denmark).

There are no hits on Live Search and only a few on Google so it´s appears to be a fairly new variant.

I actually recently wrote a security whitepaper on Office Communications Server 2007 security explaining and showing the dangers in using Public IM and VoIP clients generally and especially in businesses (Honestly anywhere if you are not well educated IT Pro ... or my grandma ;-) and this again shows that IM is a fantastic tool but not without associated security issues.

Well this was just a short warning ... the hot chocolate and buns are waiting for me.

I will be back with more content when OCS 2007 has been officially RTM'ed !

CrapWare/BloatWare in downloads as well

Now that Dell lets you avoid bloatware a.k.a crapware, let us start a movement for having extra 'goodies' removed from downloads as well.

E.g. The other day, I updated Java and luckily remembered to use the advanced installation options, so I could uncheck the Google Toolbar. Come on, Sun! Why should I want a toolbar sneaked in, just because I need a Java update??

I actually find that it is OK (besides the wasted download bandwidth) to give me the option. I can understand that Adobe will be me the option of trying some of their other software, but Google Toolbar is totally unrelated to Java runtime. In any case - optional software must be unchecked by default!

So let me start a list of bloatware included in downloads -
  • Java runtime - bloated with Google Toolbar and Google Desktop
  • Adobe Reader - first it attempts to sneak in Adobe Photoshop Album Starter Edition. Next it will give me Google Toolbar.
  • Adobe Flash Player - Google Toolbar
  • Windows Live Messenger - bloated with Windows Live Toolbar, changes IE home page
  • DivX for Windows - bloated with Yahoo! Toolbar (added 2008-06-11)

Finding Virtual Servers in a domain

John Howard wrote an article of how to do it from vbscript. I couldn't resist doing it with PowerShell -

Get-VirtualServerFromAD.ps1 -


$ds=[system.directoryservices.directorysearcher] "(&(objectCategory=serviceConnectionPoint)(cn=MS Virtual Server))"
if ($nameOnly) {
$servers | % { $_.path.split("=,")[3] }
else {

Could it be much easier?

Update: the software ate the vertical bars etc.

Wednesday, July 18, 2007

PowerShell and the lack of providers

To quote myself and many others: PowerShell is great.

But as additions are popping up all over the place, I think we are heading in the wrong direction.

PowerShell is designed after the Verb-Noun model. E.g. New-Item. If more or less everything was available with a provider - e.g. in a file system like name space - only very few commands are needed. If there were a name space for processes, New-Item could be used to start a process, Remove-Item to stop one etc.

As we are short of provides, the Verb-Noun model gets - let's called it - stretched and names like Get-ADObject (PowerShell Community Extension) and Start-ElevatedProcess (my own script) starts to appear. I call this the Verb-ClassNoun model. Another example: I have created scripts like New-VirtualMachine when I would have preferred to use New-Item on a Virtual Server name space.

Reducing the number of Verb-Noun combinations is important as it makes it easier to learn and use PowerShell.

This situation is much like what happened in DCL (OpenVMS). It started out pretty clean, but as existing command could not easily be overlaid/extended, newer commands got worse and worse. We should prevent that from happening in PowerShell.

So what can we do about it - and is it so big a problem after all?

Let me answer the latter, first: Well, as provides starts to appear, we will change behavior and un-learn Verb-ClassNoun commands. But having to learn a new command to un-learn it later is hardly efficient. Even worse perhaps, will be the need for backwards support for Verb-ClassNoun commands or risk that existing scripts would break when changing to a provider.

So what can we do about it? The obvious is just to go ahead and get those providers created. Luckily, a lot of skilled people are doing that - but that is not a simple thing to do. So how about a generic-scriptable provider, so all the scripters can create providers without having to code?

Can anyone out there create a generic provider that can be implemented in script?


Microsoft has released an alternative to the Virtual Server Administration Web. VMRCplus is a new VM client display and management tool. Read more here and here. Download it from here.

Things to note -
  • Alternate credentials as not supported. Use runas (even without trusts)
  • This is great if you do not wish to install the web site or IIS on your Virtual Servers (did anyone say Windows Server Core?)
  • The tools is as-is e.g. unsupported

Give it a spin!

Tuesday, July 17, 2007

Vista .. Where is all my Space Gone?

Just experienced the same as Paul did. Found it with diruse /m /*, but Poul's article let me to the quite useful treesize free graphical utility. On Vista it is better than diruse as diruse includes the same files several times owing to all the folder linking/junctioning.

Nice going from 8-gig-free-with-vista-nag-pop-up to 27-gig-no-nag...

Windows Vista - 6 Month Vulnerability Report

Read this entry by Jeff Jones. He also has an interesting link to an article called Exactly how biased am I?.

Wednesday, July 04, 2007

PowerShell Start-ElevatedProcess

Read this blog entry by Aaron Margosis.

This is how the JS stuff can be done in PowerShell - note how simple it is :)

Start-ElevatedProcess.ps1 -
$sa=new-object -com shell.application

Start-ElevatedProcess cmd /k ifmember /list

Define your own alias if you want e.g. -
New-Alias elevate Start-ElevatedProcess

Wednesday, June 27, 2007


Read the Cable Guy article about the upcoming support in Windows Server 2008 for SSTP (Secure Socket Tunneling Protocol) VPN connections e.g. VPN using SSL.

Unfortunately, I haven't been able to dig up any information about client OS support. Maybe Vista SP1 has it?

Update: Thanks to Steffen for explaining that the abbreviation is SSTP not STTP :) Likewise, he told that Vista SP1 will support SSTP.

Friday, June 22, 2007

Publicly routable IP address needed for A/V Edge server

As I discussed in my TechEd Post one of the results of my speaks with customers and the PSS engineers supporting OCS, is going to be a posting on STUN/TURN and ICE and how to configure networks/firewalls on the OCS 2007 A/V Edge Server.

Chad Lacy apparently started the party with a good posting on why it is necessary to use a Public Routable IP address on the Office Communications Server 2007 Edge Server (The short answer is STUN, which Microsoft co-developed with Cisco).

Find Chads post here Publicly routable IP address needed for A/V Edge server.

Thursday, June 21, 2007

The definitive guide to Exchange Server 2007

Quick note - If you only want to read one (very large) whitepaper on Exchange then look at Technical Architecture of Exchange Server 2007 and skip the rest ;-)

Thursday, June 14, 2007

New UC and VoIP As You Are site

Here you can see to PBX's talking to each-other discussing Rip 'n Replace versus "VoIP as you" are meaning that Microsoft Unified Communications is an integration story, but stop reading this and move on to the VoIP As You Are site for a better explanation (They are just hilarious - remember to click the text on the orange tape and the speech bubles for further discussions ;-)

Also check out the new Microsoft UC site - it has been totally renewed.

Source: LCSKid

Friday, June 08, 2007

Exchange 2007 Unified Messaging and Asterisk

I had a few questions regarding this during TechEd and my answer was each time, haven't tried it but it's documented somewhere. I Googled it and here it is -

Accessing Exchange 2007 Unified Messaging: Introduction

This how-to guide takes you through the steps required to access Exchange 2007 Unified Messaging features, such as Outlook Voice Access, using the open source tools Asterix/Trixbox and sipX.

Tuesday, June 05, 2007

TechEd day 1 - leaving for home early ;-)

The Roundtable device I am going to use for some of our UC Bootcamps has arrived in the office so I'm leaving TechEd early (Can't wait to play ... eerh work with it ;-)

For once I attended the Keynote and it was actually quite interesting - especially the vision around driving down cost using the Dynamic Systems Initiative. See the whole keynote at Virtual TechEd.

I had some concalls yesterday, so I only attended a few sessions, most interesting part of the day was more discussions with people from different product groups and a good dinner with one of my Microsoft contacts (Always interesting to talk to peers and especially learning about different cultures/backgrounds).

Nothing much else to say about yesterday - today I had a good MVP Deep dive session and talks with different program managers around the OCS SDK.

The result will be an updated version of my Populating users in Office Communicator / LCS post for Office Communicator 2007 including controlling Access Levels centrally (Access levels are basically showing some presence information like calendaring and phone details to selected contacts only - e.g. your own Team or Company).

The other result of yesterday will be a posting on STUN/TURN and ICE and how to configure networks/firewalls on the OCS 2007 A/V Edge Server.