Я пытаюсь запустить вызов командной строки PowerShell с параметром PSCredential as.
Но вызов завершается с ошибкой:
Invoke-Command: невозможно обработать преобразование аргумента для параметра Credential. имя пользователя"
Вот подробный результат, который я получаю:
error 17-Jun-2015 14:33:53 Invoke-Command : Cannot process argument transformation on parameter 'Credential'. userName
error 17-Jun-2015 14:33:53 At C:\Windows\system32\config\systemprofile\AppData\Local\Temp\PRISMA-AMR-JOB1-68-ScriptBuildTask-7900604773745573277.ps1:31 char:71
error 17-Jun-2015 14:33:53 + Invoke-Command "sqlcmd -E -S "$server" -Q `"$query`" " -Credential <<<<
error 17-Jun-2015 14:33:53 ($credential)
error 17-Jun-2015 14:33:53 + CategoryInfo : InvalidData: (:) [Invoke-Command], ParentContain
error 17-Jun-2015 14:33:53 sErrorRecordException
error 17-Jun-2015 14:33:53 + FullyQualifiedErrorId : ParameterArgumentTransformationError,Microsoft.P
error 17-Jun-2015 14:33:53 owerShell.Commands.InvokeCommandCommand
В основном я просто пытаюсь запустить sqlcmd с олицетворением через вызов Invoke-Command с PSCredential.
Есть идеи, что здесь происходит?
Изменить: вот код PowerShell:
function GetPSCredential($userId){
$userIdFileNameWoExt = $userId.Replace("\",".")
$password = (Get-Content "somefile.pwd" | ConvertTo-SecureString -Key (Get-Content "somefile.key"))
$psCredential = New-Object `
-TypeName System.Management.Automation.PSCredential `
-ArgumentList "$userId", $password
return $psCredential
}
function ImpersonateSql ($credential, $server, $query) {
Invoke-Command "sqlcmd -E -S "$server" -Q `"$query`" " -Credential ($credential)
}
...
ImpersonateSql($defaultCredential, $serverInstance, "SOME SQL QUERY HERE")