【问题标题】:#sqlps - Problems connecting to the server to query#sqlps - 连接到服务器进行查询时出现问题
【发布时间】:2016-02-12 15:05:45
【问题描述】:

我正在尝试连接到远程托管的服务器\实例。服务器也位于我连接的域中(我可以使用 SQL Server 身份验证以及本地 SSMS 提供的凭据登录)

Import-Module SQLPS

$query = 'select GETDATE() as date'

$op = invoke-Sqlcmd  -HostName 'servername' -Database  'DBName' -Username 'UN' -Password 'PWD' -Query "$query"

$op | Format-Table

预期的输出将是

2016-02-12 06:54:26.410

但我得到的是

PS SQLSERVER:> 导入模块 SQLPS
$query = '选择 GETDATE() 作为日期'
$op = invoke-Sqlcmd -HostName 'servername' -Database 'DBName' -Username 'UN' -Password 'Pwd' -Query "$query" #-IgnoreProviderContext
$op |格式表
警告:从模块“SQLPS”中导入的一些命令的名称包括未经批准的动词,这可能会使它们不易被发现。要查找带有未批准动词的命令,请使用 Verbose 参数再次运行 Import-Module 命令。要获得批准的动词列表,请键入 Get-Verb。
invoke-Sqlcmd:用户“UN”登录失败。
在行:3 字符:7
+ $op = 调用-Sqlcmd -HostName 'servername' -Dat ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Invoke-Sqlcmd], SqlException
+ FullyQualifiedErrorId : SqlExectionError,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand

调用-Sqlcmd :
在行:3 字符:7
+ $op = 调用-Sqlcmd -HostName 'servername' -Dat ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~
+ CategoryInfo : ParserError: (:) [Invoke-Sqlcmd], ParserException
+ FullyQualifiedErrorId : ExecutionFailureException,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand

大家能帮我看看这是什么原因造成的吗?

我是否必须在任何地方指出这是 SQL Server 身份验证?

【问题讨论】:

  • 在标题中您提到了一个实例。尽管在您的代码示例中,您没有提及实例。有实例吗?
  • 如果你传递用户名/密码,那么这个 SQL Server auth.

标签: sql-server-2008 powershell smo sqlps


【解决方案1】:

所以我猜你需要使用 ServerInstance 参数而不是 HostName 参数。

Import-Module SQLPS

$query = 'select GETDATE() as date'

$op = invoke-Sqlcmd -ServerInstance 'servername' -Database 'DBName' -Username 'UN' -Password 'PWD' -Query "$query"

$op | Format-Table

【讨论】:

  • 哇!谢谢.. 从技术上讲,它有什么不同?
猜你喜欢
  • 1970-01-01
  • 2010-10-11
  • 1970-01-01
  • 2016-10-05
  • 1970-01-01
  • 1970-01-01
  • 2014-04-30
  • 2011-11-16
  • 2016-04-23
相关资源
最近更新 更多