Invoke-Sqlcmd: невозможно проверить аргумент параметра «Имя пользователя». Аргумент нулевой или пустой - PullRequest
1 голос
/ 13 мая 2019

У меня есть центральный сервер, на котором хранятся все сведения о сервере и его учетные данные. Я получаю имя сервера и его логин и пароль, используя запрос, и получаю результаты с удаленных серверов SQL. Я могу получить результат, но он выдает ошибку в выводе Powershell.

PS Сценарий:

$computers=Get-Content "$MyDir\$Role-serverlist.txt";
ForEach($a in $computers)
{
$Login= (Invoke-SqlCmd -ServerInstance $Server -Username "abc" -Password "defg" -Database $Database -Query "select username")
$Password=(Invoke-SqlCmd -ServerInstance $Server -Username "abc" -Password "defg" -Database $Database -Query "select Password")

$Result = (Invoke-SqlCmd -ServerInstance $a -Username "$Login" -Password "$Password" -Database master -Query "$Query")
 $Result
}

Ошибка:

Invoke-Sqlcmd: невозможно проверить аргумент параметра «Имя пользователя». Аргумент нулевой или пустой. Укажите аргумент, который не является пустым или пустым, а затем повторите команду. В E: \ Query.ps1: 100 char: 56 + $ result = (Invoke-SqlCmd -ServerInstance "$ a" -Пользовательское имя "$ Login" -Password "$ Pass ...

1 Ответ

0 голосов
/ 23 мая 2019

Я думаю, что проблема на$ Result = (Invoke-SqlCmd -ServerInstance $ a -Имя пользователя "$ Login" -Пароль "$ Password" -Основной базы данных -Query "$ Query") "$ Login": может быть нулевым Что бы ни было внутри "", powershell рассматривает это как переменную, а не строку.

...