你们有没有遇到过这样的问题,当您从 SQL Server 启动 PowerShell 时,它会引发如下异常?
无法解析别名 'cd',因为它引用了术语 'Microsoft.PowerShell.Management\Set-Location',它不能被识别为 cmdlet、函数、可运行程序或脚本文件。验证术语并重试。在 line:1 char:140 + &{[System.Console]::Title = 'SQL Server Powershell';Convert-UrnToPath 'Server [@Name=''AIMLESS'']/Database[@Name=''AdventureWorks2008' ']'|cd <<<< }
我无法使用一些常见的别名(如pwd
,cd
等)导航。即使get-alias
clears 显示cd
isset-location
和pwd
is get-location
。
[更新]别名也不能设置
我很确定我几个月前遇到过这个问题,但经过快速搜索后再也找不到了。我相信用户的 GAC 是如何被损坏/混淆的。
您可以开始常规的 PowerShell 会话吗?
您如何更新 .NET 版本?
对我来说,这绝对是个人资料问题。我发现一篇文章 (a) 讨论了一次安装 Powershell 版本 1 beta 引起的类似问题。
我会查看配置文件链中的每个文件,看看哪个文件正在将这些别名重新映射到您身上。然后,您可以重命名配置文件以测试是否是问题所在。我不确定您是如何启动 Powershell,但如果 SQL Server 正在启动 Powershell,您将需要查看它的用户帐户配置文件。
这个应该做...
你在使用 PowerShell 社区扩展吗?不幸的是,他们使用默认的 profile.ps1 文件而不是 Microsoft.PowerShell_profile.ps1。如果是这种情况,您只需将 Profile.ps1 重命名为 Microsoft.PowerShell_profile.ps1。SQLPS 不会仅加载与主机无关的配置文件 profile.ps1 的 Microsoft.PowerShell_profile.ps1 配置文件。这里有它的工作项
http://www.codeplex.com/Pscx/WorkItem/View.aspx?WorkItemId=18417