Параметр учетных данных не работает для Invoke-sqlcmd - PullRequest
1 голос
/ 02 апреля 2019

Я использую командлет Invoke-sqlcmd в Powershell для запуска SQL-запроса, сохраненного в строке на удаленном сервере.

Я включил параметр учетных данных, чтобы запрашивать учетные данные домена для подключения к экземпляру SQL.

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

Однако я не могу заставить его работать с параметром учетных данных.

Import-Module -Name SqlServer -force

function Correct-Servername {
    param(
        [string] $dataSource = ".\SQL",
        [string] $database = "MASTER",
        [string] $sqlCommand = "sp_dropserver @@servername DECLARE   @ServerName SQL_VARIANT = (SELECT serverproperty('Servername')),   @SQLQuery NVARCHAR(4000); SET @SQLQuery = 'sp_addserver ''' + CONVERT(NVARCHAR(100), @SERVERNAME) + ''', ''LOCAL''' PRINT @SQLQuery EXECUTE sp_executesql @SQLQuery"
      )
    $cred = Get-Credential
    Invoke-Sqlcmd -Query $sqlCommand -ServerInstance $dataSource -Database $database -Credential $cred

}

Correct-Servername | out-file -FilePath C:\Temp\correct_servername.log

Это ошибка, которую я получаю:

cmdlet Get-Credential at command pipeline position 1
Supply values for the following parameters:
Credential
Invoke-Sqlcmd : Login failed for user 'domain\user'.
At C:\Temp\Rename-Create-Replication-2.ps1:20 char:2
+     Invoke-Sqlcmd -Query $sqlCommand -ServerInstance $dataSource -Dat ...
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Invoke-Sqlcmd], SqlException
    + FullyQualifiedErrorId : SqlExceptionError,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand

Invoke-Sqlcmd :
At C:\Temp\Rename-Create-Replication-2.ps1:20 char:2
+     Invoke-Sqlcmd -Query $sqlCommand -ServerInstance $dataSource -Dat ...
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ParserError: (:) [Invoke-Sqlcmd], ParserException
    + FullyQualifiedErrorId : ExecutionFailureException,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand

Любая помощь приветствуется.

...