Добрый день всем.
Вопрос к знатокам WMI, SharePoint, COMов и прилегающих областей.
Соорудил я веб-апп для автоматического развертывания (deployment) компонентов продукта, базирующегося на SharePoint 2010.
Для установки компонентов на множественные удалённые серверы использую WMI.
Виндоус сервисы устанавливаюся влёт, душа радуется.
А вот с компонентами шаропйнта проблема.
Мой веб-апп вынужден подстраиваться под специфику конторы.
Согласно этой специфике, всё, включая компоненты шаропйнта, устанавливается скриптами PowerShell.
Т.е. кто-то должен скопировать весь пакет, вместе со скриптами, на удалённый сервер, зайти на этот сервер и прогнать скрипты.
Мой веб-апп копирует всё, что надо, на удалённый сервер, запускает на удалённом сервере процесс PowerShell (через WMI), и скармливает ему нужный скрипт с нужными параметрами.
Всё чудно работает со скриптами установки виндоус сервисов.
Но с Шаропойнтом не катит. Шаропойнт тут же соединяется с SQL сервером. И получает ошибку:
SQL database login for 'SP2010IrisQAP_Config' on instance 'SharePointDB' failed. Additional error information from SQL Server is included below.
Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.
Почему и откуда выскочил 'NT AUTHORITY\ANONYMOUS LOGON' ?
Веб-апп работает под моей учётной записью на моём компе (на время разработки).
Для установки продуктов используется учётная запись DOMAIN1\deployAdmin
В диспетчере задач на удалённом сервере я вижу процесс PowerShell запущенный под DOMAIN1\deployAdmin. Он запускает тот же скрипт, что и при ручной установке компонента SharePoint.
Однако вручную скрипт соединяется с SQL как DOMAIN1\deployAdmin, а при авто-установке откуда-то вылазит 'NT AUTHORITY\ANONYMOUS LOGON'
ниразу не спец по шарепоинту, но такая мысль K>В диспетчере задач на удалённом сервере я вижу процесс PowerShell запущенный под DOMAIN1\deployAdmin. Он запускает тот же скрипт, что и при ручной установке компонента SharePoint. K>Однако вручную скрипт соединяется с SQL как DOMAIN1\deployAdmin, а при авто-установке откуда-то вылазит 'NT AUTHORITY\ANONYMOUS LOGON'
что скорее всего к sql server пытается соединиться не скрипт, а установленная служба какая-нибудь, которая запущена локально/с локальными правами.
Здравствуйте, BrainSlug, Вы писали:
BS>что скорее всего к sql server пытается соединиться не скрипт, а установленная служба какая-нибудь, которая запущена локально/с локальными правами.
Почему она вылазит, когда скрипт запускается удалённо?
(Под учётной записью DOMAIN1\deployAdmin)
Почему не вылазит, когда этот же скрипт я исполняю вручную на сервере, как DOMAIN1\deployAdmin?
Это сыграет только если я уговорю всю громадную контору перейти на autospinstaller.
В чём я очень сомневаюсь.
Да и опять же, жгучий теоретический интерес: как и почему процесс, исполняющийся под учётной записью DOMAIN1\deployAdmin, лезет на SQL сервер как 'NT AUTHORITY\ANONYMOUS LOGON'
Здравствуйте, kanadohodec, Вы писали:
K>Здравствуйте, gandjustas, Вы писали:
K>Да и опять же, жгучий теоретический интерес: как и почему процесс, исполняющийся под учётной записью DOMAIN1\deployAdmin, лезет на SQL сервер как 'NT AUTHORITY\ANONYMOUS LOGON'
Здравствуйте, kanadohodec, Вы писали:
K>Дополнительная информация: ConnectionOptions для WMI:
K> _options.Impersonation = ImpersonationLevel.Impersonate;
Можно ли здесь попробовать не имперсонацию, а делегирование?
Нужно будет сделать:
To configure unconstrained delegation when the Domain Functional Level is Windows Server 2003, Windows Server 2008, or Windows Server 2008 R2
On the domain controller for your Web server’s domain, complete the following steps.
1.Click Start , click Administrative Tools , and then click Active Directory Users and Computers .
2.Expand domain, and expand the Computers folder.
3.In the right pane, right-click the computer name for the Web server, select Properties , and then click the Delegation tab.
4.Click to select Trust this computer for delegation to any service (Kerberos only) .
Здравствуйте, dpyzh, Вы писали:
D>Можно ли здесь попробовать не имперсонацию, а делегирование?
Именно это я и хочу попробовать.
Но, как это принято во всех "приличных" конторах, на контроллере доменов может хозяйничать только товарищ из поддержки инфраструктуры, а поддержка, естественно, делегирована в контору в Нью-Дели (и тут делегирование).
Ищу "партизана" из местных, кто поможет попробовать на одном из серверов.
И, если сработает, тогда уже я обращусь с официальной заявкой проделать это на всех целевых серверах.
Спасибо.