2010-01-28 3 views
1

Если да, просьба привести пример.Может ли RunWithElevatedPrivileges использоваться в сценарии PowerShell?

UPDATE:

У меня есть сценарий PowerShell, который перебирает всех семейств сайтов в рамках выбранного веб-приложения и изменяет siteCollection.Audit.AuditFlags свойство. Он отлично работает на моей машине разработки, но команда siteCollection.Audit.Update() не работает с . Отказано в ошибке на рабочем сервере, хотя я пытаюсь запустить его как пользователя, который является администратором фермы.

+0

Зачем вам это нужно? Как правило, вы запускаете силовую оболочку как администратор при подключении к серверу. – Kobi

+0

Должен ли работать, почему бы вам не проверить это? – Kobi

+0

Пожалуйста, уточните свой вопрос, что вы пытаетесь сделать там? – naivists

ответ

3

Запустите powershell как администратор или как пользователь вашего пула приложений.

+2

@chopeen - администратор фермы и пользователь приложения пула приложений Webapp, вероятно, не одно и то же, и они, вероятно, не имеют одинаковых прав на экземпляр SQL Server. – Goyuix

+0

Это не отвечает на реальный вопрос (если вы используете RunWithElevatedPrivileges в PowerShell или нет), но он решает мою проблему - скрипт отлично работает при выполнении в качестве пользователя пула веб-приложений. –

+0

no, runwithelevatedprivilegs НЕ МОЖЕТ использоваться на PowerShell. Зачем? потому что не существует основного олицетворения для вызова RevertToSelf; проще говоря, powershell не работает поверх пула приложений, поэтому вызов не имеет смысла. – x0n

4

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

7

Да, это возможно.

[Microsoft.SharePoint.SPSecurity]::RunWithElevatedPrivileges({ 
    $site = get-spsite "http://localhost/nonfarmadminsitecollection"; 
}); 

Будьте осторожны с этим. Поскольку вы выдаете себя за учетную запись процесса, вы теряете информацию о пользователе в аудиторских трассах.

+1

Это работает, но отключает выходные команды внутри своей области. Используйте Write-Host. – Louis

+0

Будьте осторожны .. Почему? любые полные причины? – Kiquenet

Смежные вопросы