Powershell – Windows PowerShell Snap-In for IIS fails on 32-bit

iispowershelltfs-power-toolsweb-admin

I'm trying to write a PowerShell script that will automate my IIS website deployments. I'm trying to run the scripts on my Windows Server 2008 R2 machine, under 32-bit in:

C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe

Whenever I run a WebAdministration command such as this:

Get-Website -Name "MYWebsite"

I get an error like this:

Get-Website : Retrieving the COM class factory for component with CLSID {688EEE
E5-6A7E-422F-B2E1-6AF00DC944A6} failed due to the following error: 80040154.
At line:1 char:12
+ Get-Website <<<<  -Name "MyWebsite"
    + CategoryInfo          : NotSpecified: (:) [Get-Website], COMException
    + FullyQualifiedErrorId : System.Runtime.InteropServices.COMException,Micr
   osoft.IIs.PowerShell.Provider.GetWebsiteCommand

Switching to the 64-bit version of PowerShell.exe resolves this issue but makes it impossible for me to also use the Microsoft Team Foundation Server 2008 Power Tools PSSnapin, which is a no-go for me.

Any idea how I can overcome this? Thanks in advance.

Best Answer

Running:

C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe 

actually loads the 32 bit version of powershell ;-)

This obviously not what you want. Run the version in system32 to get the 64bit version. Yes, really.

You can verify this like:

ps> [intptr]::size
4

If it returns 4, it's 32 bit. 64 bit powershell will return 8.

-Oisin

Related Topic