Настройки подключения к базе в реестре прописаны для каждого сервиса и находятся тут: HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\XDservices. У каждого сервиса в папке Datastore есть ConnectionString.
SiteGuid лежит тут: HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\Broker\Service\State\ConnectionLeasing
Замена админа
Замена админа если потерялись права: http://support.citrix.com/article/CTX201779
Получаем SID текущего пользователя:
wmic useraccount where name='username' get sid
Затем в PowerShell выполняем:
Asnp citrix.* $sid = "----SID----" $securityId = New-Object System.Security.Principal.SecurityIdentifier($sid) $securityId.Translate([System.Security.Principal.NTAccount])
Например ситутация - сдох DDC (или кто-то отломил ему DBconnections) и надо натравить вновь установленный DDC настравить на существующую базульку.
На DDC запускаем powershell
Add-PSSnapin Citrix*
Текущее состояние подключений можно получить так:
Get-LogDataStore Get-MonitorDataStore
Формируем строку подключения:
$cs = "Server=env3-sql2\AON;Initial Catalog=CitrixXD7;Integrated Security=True"
Тут меняем имя сервера\инстанса Server и имя базы данных Catalog. Отключаем Configuration Logging:
Set-LogSite -State Disabled Set-MonitorConfiguration -DataCollectionEnabled $False
Затем заменяем все строки подключений на NULL:
Set-LogDBConnection -DataStore Logging -DBConnection $null Set-MonitorDBConnection -DataStore Monitor -DBConnection $null Set-MonitorDBConnection -DBConnection $null Set-AcctDBConnection -DBConnection $null Set-ProvDBConnection -DBConnection $null Set-EnvTestDBConnection -DBConnection $null Set-SfDBConnection -DBConnection $null Set-HypDBConnection -DBConnection $null
Для некоторых опций нужно применить -force
Set-ConfigDBConnection -DBConnection $null -force Set-LogDBConnection -DBConnection $null -force Set-AdminDBConnection -DBConnection $null -force
В результате все компоненты XenDesktop будут отключены от базы данных.
На всякий случай следует проверить что DDC имеют права на SQL-сервере:
sqlcmd -S env3-sql2\AON -q "create login [2k3\DDC1$] from windows"
Тут также поправляем имя SQL-сервера\инстанса и имя домена\компа$
Теперь заново указываем строку для подключения сервисов к базе:
set-ConfigDBconnection -dbconnection $cs set-AdminDBconnection -dbconnection $cs set-LogDBconnection -dbconnection $cs set-AcctDBconnection -dbconnection $cs set-BrokerDBconnection -dbconnection $cs set-EnvTestDBconnection -dbconnection $cs set-HypDBconnection -dbconnection $cs set-MonitorDBconnection -dbconnection $cs set-ProvDBconnection -dbconnection $cs set-SfDBconnection -dbconnection $cs Set-LogDbConnection -DataStore logging -DbConnection $cs Set-MonitorDbConnection -DataStore monitor -DbConnection $cs
Теперь снова включаем журнал конфигурирования:
Set-LogSite -State Enabled
И выполняем маленький тест подключения:
$testString = Get-BrokerDBConnection Test-BrokerDBConnection $testString | fl
Теперь можно попробывать запустить Studio и проверить что получилось. Очень может быть, что система выдаст ServiceNotInSiteDB Скорее всего (как написано тут: https://discussions.citrix.com/topic/295003-broker-service-not-connecting-to-database/?p=1586659) возникло несоотвествие SID DDC, записанного в базе SID нового DDC.
Для начала нужно удалить текущие записи из базы. Получаем SID текущего контроллера и присваиваем его переменной:
sqlcmd -S .\SQLEXPRESS -d CitrixXenDesktopDB -Q 'select Sid from chb_Config.Controllers'
и присваиваем его переменной:
$sid = 'S-1-5-21...'
Дальше с помощью powershell генерируем запрос к базе, который выполнит удаление SID старого DDC из базы. При возникновении ошибок нужно с ними внимательно разбираться, поскольку дальнейшие действия могут все порушить.
$sid = 'S-1-5-....' Get-ConfigDBSchema -DatabaseName CitrixXenDesktopDB -ScriptType Evict -SID $sid -Local > EvictDDC.sql Get-AcctDBSchema -DatabaseName CitrixXenDesktopDB -ScriptType Evict -SID $sid -Local >> EvictDDC.sql Get-HypDBSchema -DatabaseName CitrixXenDesktopDB -ScriptType Evict -SID $sid -Local >> EvictDDC.sql Get-ProvDBSchema -DatabaseName CitrixXenDesktopDB -ScriptType Evict -SID $sid -Local >> EvictDDC.sql Get-PvsVmDBSchema -DatabaseName CitrixXenDesktopDB -ScriptType Evict -SID $sid -Local >> EvictDDC.sql Get-BrokerDBSchema -DatabaseName CitrixXenDesktopDB -ScriptType Evict -SID $sid -Local >> EvictDDC.sql sqlcmd -S .\SQLEXPRESS -Q ':r EvictDDC.sql'
После удаления из базы SID старого DDC можно сформировать запрос, прописывающий в базу SID нового DDC:
Get-ConfigDBSchema -DatabaseName CitrixXenDesktopDB -ScriptType Instance -Local > AddDDC.sql Get-AcctDBSchema -DatabaseName CitrixXenDesktopDB -ScriptType Instance -Local >> AddDDC.sql Get-HypDBSchema -DatabaseName CitrixXenDesktopDB -ScriptType Instance -Local >> AddDDC.sql Get-ProvDBSchema -DatabaseName CitrixXenDesktopDB -ScriptType Instance -Local >> AddDDC.sql Get-PvsVmDBSchema -DatabaseName CitrixXenDesktopDB -ScriptType Instance -Local >> AddDDC.sql Get-BrokerDBSchema -DatabaseName CitrixXenDesktopDB -ScriptType Instance -Local >> AddDDC.sql sqlcmd -S .\SQLEXPRESS -Q ':r AddDDC.sql'
Discussion