Справочная информация:
Я запускаю сценарий локально, который должен быть запущен как 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
Результат: 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 $Database -ConnectionTimeout 300 -QueryTimeout 600 -Query $Query} -Credential $Credential
Что меня достало: Invoke-Command : Parameter set cannot be resolved using the specified named parameters.
Итак ... Я застрял. Какие-нибудь мысли?