#sqlps - 连接到服务器以查询

时间:2016-02-12 15:05:45

标签: sql-server-2008 powershell smo sqlps

我尝试连接到远程托管的服务器\实例。服务器位于我所连接的域中(我可以使用SQL Server auth使用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:> Import-Module 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 char:7
  + $ op = invoke-Sqlcmd -HostName' servername' --Dat ...
  + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~
      + CategoryInfo:InvalidOperation :( :) [Invoke-Sqlcmd],SqlException
      + FullyQualifiedErrorId:SqlExectionError,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand

     

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

你能帮助我找到这是什么原因吗?

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

1 个答案:

答案 0 :(得分:0)

所以我猜你需要使用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