3

我一直在使用 MSDN 文章Enable or Disable a Server Network Protocol (SQL Server PowerShell)并在线上遇到问题:

$uri = "ManagedComputer[@Name='<computer_name>']/ ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Np']"

我得到的错误信息是:

Exception calling "GetSmoObject" with "1" argument(s): "Attempt to retrieve data for object failed for ManagedComputer '<computer_name>'."
At line:1 char:24
+ $Np = $wmi.GetSmoObject <<<< ($uri)
    + CategoryInfo           : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId  : DotNetMethodException

我正在用<computer_name>我的计算机名称替换。我也尝试<computer_name>从我的命令中省略(我正在尝试配置我运行脚本的机器),并且我得到了同样的错误,包括它<computer_name>在错误中显示正确。我也尝试从一开始/就省略所有内容,但没有运气。

我试过使用cmd,powershellsqlps. 我以管理员身份登录,并且我所有的窗口都在顶部显示管理员,所以我认为这意味着我正在以管理员身份运行命令。

我在安装了 MS Sql Server 2012 的 Windows Server 2012 上运行。

我的长期目标是创建一个实用程序来在新机器上设置 SQL Server,而无需用户交互。

如何使用 MSDN 文章中的代码行解决我的问题?

4

2 回答 2

1

如果你像我一样失败了 SQLExpress(版本 12 = 2014):

查看此注册表位置:

计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQLServer\SuperSocketNetLib\Tcp

经理显示值,但我无法更改 Win10 中的值 - UI 问题。C:\Windows\System32\SQLServerManager12.msc

于 2020-05-01T19:08:50.743 回答
0

我在 powershell 脚本的开头包含了这一行:

Import-Module "sqlps" -DisableNamechecking

并返回明确放入<computer_name>,现在它可以工作了。

我认为由于没有执行导入模块而出现错误,但是当我导入它时,我开始将计算机名称留空,并开始出现 XPath 错误。

于 2013-10-23T20:38:01.153 回答