【发布时间】: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