我正在尝试连接到远程托管的服务器\实例。该服务器也位于我连接的域中(我可以使用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:>导入模块SQLPS
$ query ='选择GETDATE()作为日期'
$ op = invoke-Sqlcmd -HostName'服务器名'-数据库'DBName'-用户名'UN'-密码'Pwd'-查询“ $ 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身份验证?
因此,我猜测您需要使用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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句