【问题标题】:Powershell does not recognize invoke-sqlcmdPowershell 无法识别 invoke-sqlcmd
【发布时间】:2012-09-13 07:52:07
【问题描述】:

我无法在 powershell 中使用 invoke-sqlcmd。我已经加载了 Chad Miller 编写的模块,如下所述:Problems using SQL Server 2008 R2 PowerShell extensions outside of SQLPS

模块加载得很好,没有错误,使用 get-module 会按预期显示 sqlps。但是,使用 get-pssnapin 不会显示 SqlServerCmdletSnapin100 或 SqlServerProviderSnapin100

当我键入 invoke-sqlcmd 时,我收到错误“‘invoke-sqlcmd’一词未被识别为 cmdlet、函数、脚本文件或可运行程序的名称...”

运行 Windows 7 Pro,具有 SQL Server Management Studio Express 2008R2,已安装 SQL Server 2008R2 管理对象。

感谢您的帮助 乔恩

【问题讨论】:

  • 运行 Get-PSSnapin 时是否使用了 -registered 开关?否则,它只会显示已加载的管理单元。
  • 使用 -registered 开关不会返回任何内容。
  • 管理单元是位特定的吗?您是从 64 位 PowerShell 提示符尝试此操作吗?如果是这样,请尝试 x86 提示符。
  • 新手错误 - 模块未签名,我将执行策略设置为远程签名 - 现在一切都好了。在打开详细信息的情况下运行安装会捕获它。感谢您的帮助。
  • 此外,该模块位于我的个人资料中,该个人资料位于网络共享上 - 这也不起作用。需要物理上在同一个盒子上。

标签: sql-server-2008 powershell


【解决方案1】:

就我而言,安装 Microsoft® SQL Server® 2012 和 Microsoft® SQL Server® 2012 共享管理对象的 Microsoft® Windows PowerShell Extensions 解决了这个问题,这两个共享管理对象都包含在 Microsoft® SQL Server® 功能包中

下载链接:https://www.microsoft.com/en-us/download/confirmation.aspx?id=29065

【讨论】:

    【解决方案2】:

    我也有类似的问题:) 这就是我所做的: 从sql文件注册dll:

    set-alias installutil $env:windir\microsoft.net\framework\v2.0.50727\installutil
    installutil -i "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\Redist\Microsoft.SqlServer.Management.PSProvider.dll"
    installutil -i "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\Redist\Microsoft.SqlServer.Management.PSSnapins.dll" 
    

    然后您可以通过以下方式检查: 获取-PSSnapin - 注册

    现在添加管理单元:

    Add-PSSnapin SqlServerCmdletSnapin100   
    Add-PSSnapin SqlServerProviderSnapin100
    

    这对我有用。希望对你有帮助...

    对不起我的英语:)

    【讨论】:

      猜你喜欢
      • 2018-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-15
      • 1970-01-01
      • 2017-11-23
      • 1970-01-01
      • 2017-08-03
      相关资源
      最近更新 更多