Authentication 如何使用不同的域用户凭据在Powershell中执行sqlcmd

Authentication 如何使用不同的域用户凭据在Powershell中执行sqlcmd,authentication,sqlcmd,invoke-command,Authentication,Sqlcmd,Invoke Command,我有一个SQL脚本,需要使用从注册表检索到的凭据执行该脚本 将它们存储在注册表中 $secureCredential = Get-Credential -Message "Enter service account credential as DOMAIN\Username format." $credentialName = Read-Host "Enter a name for this credential" $securePasswordString = $secureCredentia

我有一个SQL脚本,需要使用从注册表检索到的凭据执行该脚本

将它们存储在注册表中

$secureCredential = Get-Credential -Message "Enter service account credential as DOMAIN\Username format."
$credentialName = Read-Host "Enter a name for this credential"
$securePasswordString = $secureCredential.Password | ConvertFrom-SecureString
$userNameString = $secureCredential.Username
New-Item -Path HKLM:\Software\$OrgName\Credentials\$credentialName
New-ItemProperty -Path HKLM:\Software\$OrgName\Credentials\$credentialName -PropertyType String -Name UserName -Value $userNameString
New-ItemProperty -Path HKLM:\Software\$OrgName\Credentials\$credentialName -PropertyType String -Name Password -Value $securePasswordString
取回

$secureCredUserName = Get-ItemProperty -Path HKLM:\Software\MyCompany\Credentials\TfsBuildAgent -Name UserName
$secureCredPassword = Get-ItemProperty -Path HKLM:\Software\MyCompany\Credentials\TfsBuildAgent -Name Password
$dbCreatorUserName = $secureCredUserName.UserName
$dbCreatorPassword = ConvertTo-SecureString -String $secureCredPassword.Password
由于DB权限,必须使用这些凭据执行脚本。所以 我从注册表中检索它们:

$secureCredUserName = Get-ItemProperty -Path HKLM:\Software\MyCompany\Credentials\TfsBuildAgent -Name UserName
$secureCredPassword = Get-ItemProperty -Path HKLM:\Software\MyCompany\Credentials\TfsBuildAgent -Name Password
$dbCreatorUserName = $secureCredUserName.UserName
$dbCreatorPassword = ConvertTo-SecureString -String $secureCredPassword.Password
$credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $using:dbCreatorUserName, $using:dbCreatorPassword
然后尝试使用Invoke命令执行sqlcmd,以便提供域凭据:

Invoke-Command -ComputerName $env:ComputerName -EnableNetworkAccess -Credential $credential -Authentication Default {sqlcmd.exe -b -S 'db-systest' -i C:\Database\Database_Package.sql -E -v }
但是得到错误:

Microsoft ODBC Driver 11 for SQL Server : Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'..
我尝试了-默认身份验证和-协商身份验证,
服务器不支持Kerberos,并且域策略禁止使用CredSSP。

您是否找到了此问题的解决方案?我们面临着同样的问题。你能想出解决这个问题的办法吗?我们面临着同样的问题