这个问题回答了如何从 Windows 资源管理器启动 PowerShell。
我想从 Windows 资源管理器启动 PowerShell,并预先加载了我的 TFS Shell 管理单元。
我用这个命令**创建了一个批处理文件(RunPowerShell.bat)并将它放在System32目录中:
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -PSConsoleFile "C:\Program Files (x86)\Microsoft Team Foundation Server 2010 Power Tools\tfshell.psc1" -noexit -command ". 'C:\Program Files (x86)\Microsoft Team Foundation Server 2010 Power Tools\TFSS
这可行,但我想在 Windows 资源管理器地址栏中键入“PowerShell”。
是否可以通过键入“PowerShell”从 Windows 资源管理器加载此管理单元?
**上面显示的命令来自菜单选项中我的 PowerShell 控制台链接的“目标”框:
更新
Chris N 让我朝着正确的方向前进。
我必须做一些事情才能让它工作,所以我把它们放在这里:
创建并注册以下注册表文件(*.reg),以便 PowerShell 了解 TFS PowerShell DLL 文件:
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"="10.0.0.0"
"ApplicationBase"="C:\\Program Files (x86)\\Microsoft Team Foundation Server 2010 Power Tools"
"AssemblyName"="Microsoft.TeamFoundation.PowerTools.PowerShell, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
"ModuleName"="C:\\Program Files (x86)\\Microsoft Team Foundation Server 2010 Power Tools\\Microsoft.TeamFoundation.PowerTools.PowerShell.dll"
"CustomPSSnapInType"="Microsoft.TeamFoundation.PowerTools.PowerShell.TFPSSnapIn"
在记事本中,使用以下命令创建一个新文件:
if ( (Get-PSSnapin -Name Microsoft.TeamFoundation.PowerShell -ErrorAction SilentlyContinue) -eq $null )
{
Add-PsSnapin Microsoft.TeamFoundation.PowerShell
}
如果我从 Windows 菜单中的链接加载,IF语句可防止错误。
然后,将该文件保存为:
%windir%\system32\WindowsPowerShell\v1.0\profile.ps1
这将使命令对 Windows 上的所有 shell 和所有配置文件运行;如果您需要更小的范围,请阅读 Chris 的答案中的链接。