【问题标题】:Invoke-ASCmd not a cmdlet in Powershell Module sqlserver (version 21.1.18228)Invoke-ASCmd 不是 Powershell 模块 sqlserver(版本 21.1.18228)中的 cmdlet
【发布时间】:2020-09-30 23:04:17
【问题描述】:

我正在尝试使用 Powershell 对 SQL Server Analysis Services 进行一些自动化操作。

研究将我指向“Invoke-ASCmd”命令作为根据本文档使用的命令:https://docs.microsoft.com/en-us/powershell/module/sqlserver/invoke-ascmd?view=sqlserver-ps#examples

但是,即使在安装了 SqlServer 模块之后,我也没有在命令列表中看到“Invoke-ASCmd”。我假设这是该模块的默认设置。如果我不带参数运行此命令,我会得到以下响应:

“Invoke-ASCmd:术语“Invoke-ASCmd”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,或者如果包含路径,请验证路径正确,然后重试。”

如果我执行 Get-Command -module sqlserver,我不会在列表中看到“Invoke-ASCmd”。

【问题讨论】:

    标签: sql-server powershell


    【解决方案1】:

    首先,您要确保 SQL Server 模块已安装且可用。 您可以使用 Get-Module cmdlet 来做到这一点。

    Get-Module SqlServer -ListAvailable

    确定安装了 SQL Server 模块后,您希望使用 Import-Module cmdlet 以及指定版本来导入。

    Import-Module SqlServer -Version 21.1.18080

    之后,您可以使用 Get-Command cmdlet 查看特定模块是否已加载以及是否需要您尝试使用的命令。像这样:

    Get-Command -Module SqlServer

    【讨论】:

    • 是的,之前运行过这些。对于“... -ListAvailable”命令,输出为: ModuleType Version PreRelease Name PSEdition ExportedCommands ---------- ------- ---------- --- - --------- ---------------- 脚本 21.1.18228 SqlServer Desk {Add-RoleMember, Add-SqlAvailabilityDat…
    • 对于“...Get-Command -Module SqlServer”,输出没有“Invoke-ASCmd”命令。我想粘贴输出,但它说它太长了。还有其他想法吗?
    • @thomassantosh,您刚刚安装了模块吗?我不是 100% 确定,但我认为您必须在安装该模块时重新启动操作系统。
    • 我之前没有重启过......只是这样做了。状态没有变化。再次查看 Get-Command,唯一的“调用”命令是 Invoke-SqlAssessment、Invoke-Sqlcmd(作为 cmdlet)和 Invoke-SqlNotebook(作为函数)。
    【解决方案2】:

    请注意,Windows Powershell 和 Powershell Core 之间仍然存在差异,包括 sqlserver 模块。相当多的 cmdlet 尚未移植,也许有些永远不会移植。有关来自 MSFT 团队的 cmets,请参阅此 GitHub issue,例如2020 年 1 月来自 Christian Wade,2021 年 1 月来自 Matteo-T。

    因此,如果您需要“AS”命令,最好尽可能使用 Windows Powershell。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-08
      • 1970-01-01
      • 1970-01-01
      • 2022-07-28
      • 2017-06-01
      • 1970-01-01
      相关资源
      最近更新 更多