【问题标题】:TFS Power Tools 2008 Powershell Snapin won't run in on 64-bit in Windows 2008 R2TFS Power Tools 2008 Powershell Snapin 无法在 Windows 2008 R2 的 64 位上运行
【发布时间】:2011-03-30 21:31:57
【问题描述】:

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

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

Add-PSSnapin Microsoft.TeamFoundation.PowerShell

在 PowerShell.exe 的 32 位版本中,在 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 位版本中工作吗?提前致谢。

【问题讨论】:

    标签: tfs powershell tfs-power-tools


    【解决方案1】:

    你把它弄反了。该管理单元是一个 32 位管理单元。它在 PowerShell (x86) 即 32 位下运行良好,但在 PowerShell (x64) 下无法运行。注意:即使该文件夹名为 SysWOW64,它也不是 64 位的。在 64 位 Windows 下,本机 64 位二进制文​​件位于 $env:SystemRoot\System32 中。在 Windows-on-Windows64 层下运行的 32 位二进制文​​件(即它们来自 32 位进程和指向 64 位操作系统调用的指针)进入 $env:SystemRoot\SysWOW64。

    【讨论】:

    • 感谢您的纠正。我将编辑我的问题并修复它。但是你有没有什么能真正解决我的问题? :)
    【解决方案2】:

    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"
    

    【讨论】:

      【解决方案3】:

      Microsoft 的 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\Microsoft\PowerShell\1\PowerShellSnapIns\Microsoft.TeamFoundation.PowerShell] “PowerShell版本”=“2.0” "供应商"="微软公司" "描述"="这是一个 PowerShell 包含 Team 的管理单元 Foundation Server cmdlet。” "VendorIndirect"="Microsoft.TeamFoundation.PowerShell,Microsoft" "DescriptionIndirect"="Microsoft.TeamFoundation.PowerShell,这个 是一个 PowerShell 管理单元,包括 Team Foundation Server cmdlet。” “版本”=“10.0.0.0” "ApplicationBase"="C:\Program 文件 (x86)\Microsoft 团队基础 Server 2010 电动工具” "AssemblyName"="Microsoft.TeamFoundation.PowerTools.PowerShell, 版本=10.0.0.0,文化=中性, PublicKeyToken=b03f5f7f11d50a3a" "ModuleName"="C:\Program 文件 (x86)\Microsoft 团队基础 服务器 2010 电源 工具\Microsoft.TeamFoundation.PowerTools.PowerShell.dll" "CustomPSSnapInType"="Microsoft.TeamFoundation.PowerTools.PowerShell.TFPSSnapIn"

      【讨论】:

      • 我不得不转义斜线,如 Sergey 的回答所示(例如“C:\\”,而不是“C:\”)。否则,这些值不会导入注册表。
      猜你喜欢
      • 1970-01-01
      • 2011-08-19
      • 2012-11-02
      • 2011-10-24
      • 2012-05-28
      • 2011-01-17
      • 2014-11-25
      • 1970-01-01
      • 2014-09-12
      相关资源
      最近更新 更多