无法启动 SQL Server PowerShell

无法启动 SQL Server PowerShell

你们是否遇到过这样的问题:当您从 SQL Server 启动 PowerShell 时,它会引发如下异常?

无法解析别名“cd”,因为它引用了术语“Microsoft.PowerShell.Manag ement\Set-Location”,而该术语未被识别为 cmdlet、函数、可操作程序或脚本文件。请验证该术语并重试。第 1 行,字符:140 + &{[System.Console]::Title = 'SQL Server Powershell';Convert-UrnToPath 'Server [@Name=''AIMLESS'']/Database[@Name=''AdventureWorks2008'']'|cd <<<< }


pwd我无法使用一些常见的别名(如、等)进行导航,cd即使get-aliasclears 显示cdset-locationpwdget-location

替代文本

[更新]无法设置别名 替代文本

答案1

我确信几个月前我遇到过这个问题,但快速搜索后再也找不到它了。我相信用户的 GAC 不知何故被损坏/混淆了。

您可以启动常规 PowerShell 会话吗?

您如何更新.NET 版本?

答案2

您是否在使用 PowerShell 社区扩展?不幸的是,他们使用默认的 profile.ps1 文件而不是 Microsoft.PowerShell_profile.ps1。如果是这种情况,您需要做的就是将 Profile.ps1 重命名为 Microsoft.PowerShell_profile.ps1。SQLPS 将不会加载 Microsoft.PowerShell_profile.ps1 配置文件,只会加载主机无关的配置文件 profile.ps1。这里有一个工作项目

http://www.codeplex.com/Pscx/WorkItem/View.aspx?WorkItemId=18417

答案3

在我看来,这绝对是一个配置文件问题。我发现了一篇文章 (a),其中讨论了一次安装 Powershell 版本 1 beta 导致的类似问题。

我会查看型材链看看哪一个正在重新映射这些别名。然后,您可以重命名配置文件以测试它是否是问题所在。我不太清楚您是如何启动 Powershell 的,但如果 SQL Server 正在启动 Powershell,您将需要查看其用户帐户的配置文件。

这应该可以...

notepad '$env:windir\system32\WindowsPowerShell\v1.0\profile.ps1'
notepad '$env:windir\system32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1'
notepad '$env:UserProfile\My Documents\WindowsPowerShell\profile.ps1'
notepad '$env:UserProfile\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1'

(一)Profile.msh可能出现的错误:

如果您加载 profile.msh 文件,并且之前安装了早期版本的 Monad,那么在启动时您可能会看到一系列错误,例如:

set-alias:无法从别名“cat”中删除 AllScope 选项。在 C:\Documents and Settings\All Users\Documents\msh\profile.msh:9 char:10 + set-alias <<<< cat get-content

要解决此问题,请删除名为的文件(本例中为“C:\Documents and Settings\All Users\Documents\msh\profile.msh”),或从中删除所有“set-alias”行。Monad 早期版本中 profile.msh 中定义的别名现在由 Monad 在运行配置文件之前内部定义;因此,profile.msh 中的定义将在尝试重新定义别名时生成错误。

http://www.latenighthacking.com/archives/reference/PowerShellDocumentationPack_rc1/Windows%20PowerShell%20RC1%20release%20notes.htm

相关内容