TFS Power Tools 2008 Powershell Snapin将无法在Windows 2008 R2中以64位运行

时间:2010-08-17 09:53:49

标签: tfs powershell tfs-power-tools

我在Windows 2008 R2开发人员计算机上安装了TFS Power Tools 2008及其PowerShell集成功能。

当我尝试运行以下命令以启用管理单元时:

Add-PSSnapin Microsoft.TeamFoundation.PowerShell

在32位版本的PowerShell.exe中,在 C:\ Windows \ SysWOW64 \ WindowsPowerShell \ v1.0 \ powershell.exe 下,它可以正常工作。但是当我尝试在64位版本中执行相同操作时: C:\ Windows \ system32 \ WindowsPowerShell \ v1.0 \ powershell.exe 我得到以下内容错误:

Add-PSSnapin : The Windows PowerShell snap-in 'Microsoft.TeamFoundation.PowerShell' is not installed on this machine.
At line:1 char:13
+ Add-PSSnapin <<<<  Microsoft.TeamFoundation.PowerShell
    + CategoryInfo          : InvalidArgument: (Microsoft.TeamFoundation.PowerShell:String) [Add-PSSnapin], PSArgument
   Exception
    + FullyQualifiedErrorId : AddPSSnapInRead,Microsoft.PowerShell.Commands.AddPSSnapinCommand

知道如何让它在64位版本中运行吗?提前谢谢。

3 个答案:

答案 0 :(得分:5)

你倒退了。 snapin是一个32位的snapin。它在PowerShell(x86)下工作正常,即32位,但在PowerShell(x64)下不起作用。注意:即使文件夹名为SysWOW64,它也不是64位。在64位Windows下,本机64位二进制文​​件位于$ env:SystemRoot \ System32中。在Windows-on-Windows64层下运行的32位二进制文​​件(即它们从32位进程中窃取并指向64位OS调用)进入$ env:SystemRoot \ SysWOW64。

答案 1 :(得分:3)

TFS Power Tools 2012的注册表文件:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellSnapIns\Microsoft.TeamFoundation.PowerShell]
"PowerShellVersion"="2.0"
"Vendor"="Microsoft Corporation"
"Description"="This is a PowerShell snap-in that includes the Team Foundation Server cmdlets."
"VendorIndirect"="Microsoft.TeamFoundation.PowerShell,Microsoft"
"DescriptionIndirect"="Microsoft.TeamFoundation.PowerShell,This is a PowerShell snap-in that includes the Team Foundation Server cmdlets."
"Version"="11.0.0.0"
"ApplicationBase"="C:\\Program Files (x86)\\Microsoft Team Foundation Server 2012 Power Tools"
"AssemblyName"="Microsoft.TeamFoundation.PowerTools.PowerShell, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
"ModuleName"="C:\\Program Files (x86)\\Microsoft Team Foundation Server 2012 Power Tools\\Microsoft.TeamFoundation.PowerTools.PowerShell.dll"
"CustomPSSnapInType"="Microsoft.TeamFoundation.PowerTools.PowerShell.TFPSSnapIn"

答案 2 :(得分:2)

微软的Cathy Kong非常友好地为我提供了解决此问题的方法。有关详细信息,请参阅MSDN TFS PowerTools论坛:http://social.msdn.microsoft.com/Forums/en-US/tfspowertools/thread/a116799a-0476-4c42-aa3e-45d8ba23739e/?prof=required

修复如下,对我来说效果很好:

  

请保存以下内容和   将其保存为* .reg文件并导入到   注册表(只需双击* .reg   文件,单击确定双倍)

     

Windows注册表编辑器版本5.00

     

[HKEY_LOCAL_MACHINE \ SOFTWARE \微软\ PowerShell的\ 1 \ PowerShellSnapIns \ Microsoft.TeamFoundation.PowerShell]   “PowerShellVersion”= “2.0”   “供应商”=“微软公司”   “Description”=“这是一个PowerShell   包含团队的管理单元   Foundation Server cmdlet。“   “VendorIndirect”= “Microsoft.TeamFoundation.PowerShell,微软”   “DescriptionIndirect”=“Microsoft.TeamFoundation.PowerShell,这   是一个包含的PowerShell管理单元   Team Foundation Server cmdlet。“   “版本”= “10.0.0.0”   “ApplicationBase”=“C:\ Program Files   (x86)\ Microsoft Team Foundation   Server 2010电动工具“   “的AssemblyName”=“Microsoft.TeamFoundation.PowerTools.PowerShell,   版本= 10.0.0.0,文化=中立,   公钥= b03f5f7f11d50a3a”   “ModuleName”=“C:\ Program Files   (x86)\ Microsoft Team Foundation   Server 2010 Power   工具\ Microsoft.TeamFoundation.PowerTools.PowerShell.dll”   “CustomPSSnapInType”= “Microsoft.TeamFoundation.PowerTools.PowerShell.TFPSSnapIn”