相关疑难解决方法(0)

Invoke-SQLCmd具有不同的凭据

背景:我在本地运行一个必须以SYSTEM身份运行的脚本,让我们不了解为什么会这样.:)该脚本尝试使用简单查询检查我的MSSQL集群的运行状况.然而,我遇到的问题是本地SYSTEM帐户无权访问远程数据库.在这一点上,我已经尝试了很多东西,我将在稍后介绍,但我老实说,任何有意义的解决方案.如果这意味着在数据库中创建一个本地帐户,可以回答我的简单查询.

到目前为止我有:

$Server = 'myserver.domain.tld'
$Database = 'myDatabase'
$Query = 'SELECT DB_NAME() AS DataBaseName'
$Username = 'myDomain\myUsername'
$Password = 'myPasswordWithPlainText'
Invoke-SQLCmd -ServerInstance $Server -Database $Database -ConnectionTimeout 300 -QueryTimeout 600 -Query $Query -Username $Username -Password $Password
Run Code Online (Sandbox Code Playgroud)

结果: Invoke-Sqlcmd : Login failed for user 'myDomain\myUsername'

也许Invoke-SQL没有采用我认为的Windows身份验证,但它不使用-Credential.所以我尝试使用Invoke-Command作为包装器.

$Server = 'myserver.domain.tld'
$Database = 'myDatabase'
$Query = 'SELECT DB_NAME() AS DataBaseName'
$Username = 'myDomain\myUsername'
$Password = 'myPasswordWithPlainText'
$secpasswd = ConvertTo-SecureString $Password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential ($Username, $secpasswd)
Invoke-Command -script {Invoke-SQLCmd -ServerInstance $Server -Database …
Run Code Online (Sandbox Code Playgroud)

sql-server powershell

6
推荐指数
2
解决办法
3万
查看次数

标签 统计

powershell ×1

sql-server ×1