If you are running the
new version of DirSync, you probably noticed that the "DirSyncConfigShell.psc1" file is missing. They have also
changed the way your start a sync. The new way (documented here: Click Me) you have to
import the module, then run the command. Well, I attempted to run this remotely
on my desktop and it just hung every time. Here is what I was running:
Invoke-Command -ComputerName
SERVER -ScriptBlock { import-module dirsync; Start-OnlineCoexistenceSync }
Then, with the help of a friend
at http://powershell.org he reminded me to turn on -verbose so that I could
see exactly what the PowerShell was doing. I found that when importing the
module, it was attempting to dot-source a file named .\importmodules.ps1 put
there by DirSync. Ok, now what is wrong with that file? So I cracked it open
and ran each command, one at a time, in a ISE environment and found that it was
attempting to run with .net 4.0 and since I had .net 2.0 on my PowerShell
window (by default), it was hanging.
Whew… ok now let's find a way to
change the PowerShell window to get it to run .net 4.0 for this command. Here
is what I came up with:
reg add hklm\software\microsoft\.netframework /v OnlyUseLatestCLR /t REG_DWORD /d 1
reg add hklm\software\wow6432node\microsoft\.netframework /v OnlyUseLatestCLR /t REG_DWORD /d 1
Invoke-Command -ComputerName SERVER -ScriptBlock { import-module dirsync -verbose; Start-OnlineCoexistenceSync }
reg delete hklm\software\microsoft\.netframework /v OnlyUseLatestCLR /f
reg delete hklm\software\wow6432node\microsoft\.netframework /v OnlyUseLatestCLR /f
So I through that
into my script and BAM it started working again. Thanks to all the people
online (twitter, reddit, etc…) for your help.
References: