Сеанс Powershell как учетная запись службы не может найти экземпляр SQL при использовании Invoke-SqlCmd - PullRequest
0 голосов
/ 28 марта 2019

У меня есть учетная запись службы уровня администратора, на которой запущен следующий PowerShell:

Invoke-Sqlcmd -ServerInstance "DDB.MYservers.Corp\INSTNO" -Database BizTalkMgmtDb -Query "
    SELECT        bts_sendport.nvcName, bts_sendport_transport.nvcAddress, nPortStatus, bts_sendport_transport.dtFromTime, 
                  bts_sendport_transport.bIsServiceWindow, bts_sendport_transport.dtToTime,
                  adm_Adapter.Name As TransportTypeID, bts_application.nvcName AS Application
    FROM            bts_sendport With(NOLOCK) INNER JOIN
                             bts_sendport_transport ON bts_sendport.nID = bts_sendport_transport.nSendPortID 
                             INNER JOIN
                             bts_application ON bts_sendport.nApplicationID = bts_application.nID
                             INNER JOIN 
                             adm_Adapter ON bts_sendport_transport.nTransportTypeId = adm_Adapter.Id

    WHERE 
    nTransportTypeId IS NOT NULL

    "

Для большинства моих серверов она возвращает нужную мне информацию, но у меня есть кластер серверов, использующий отказоустойчивый кластерменеджер из-за некоторых изменений в соглашении об именах в моей компании.Я получаю мгновенные цели службы при просмотре свойств BizTalk, и если я использую один для этого экземпляра BizTalk, нацеленного на кластер, я получаю следующую ошибку:

Invoke-Sqlcmd : A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was  not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote  connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
    + CategoryInfo          : InvalidOperation: (:) [Invoke-Sqlcmd], SqlException
    + FullyQualifiedErrorId : SqlExectionError,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand ParserError: (:) [Invoke-Sqlcmd], ParserException
    + CategoryInfo          : ParserError: (:) [Invoke-Sqlcmd], ParserException
    + FullyQualifiedErrorId : ExecutionFailureException,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand

Я могу пропинговать сервер как учетную запись службыи вижу, что это там, что заставляет меня думать, что это тот случай, который вызывает проблему.Если я запускаю свой сценарий с моей личной учетной записью, я получаю информацию, но она работает как учетная запись службы, которая имеет те же уровни доступа, что и у меня, но не работает.Мне было интересно, если я что-то упустил, как я называю экземпляр для кластера?или если у кого-то была эта проблема раньше?

...