我尝试连接到远程托管的服务器\实例。服务器位于我所连接的域中(我可以使用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.GetScriptCommandinvoke-Sqlcmd:
在行:3 char:7
+ $ op = invoke-Sqlcmd -HostName' servername' --Dat ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~
+ CategoryInfo:ParserError:(:) [Invoke-Sqlcmd],ParserException
+ FullyQualifiedErrorId:ExecutionFailureException,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand
你能帮助我找到这是什么原因吗?
我是否必须在任何地方指出这是SQL Server身份验证?
答案 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