可以在PowerShell脚本中使用RunWithElevatedPrivileges吗?

时间:2010-01-28 13:23:27

标签: sharepoint powershell

如果是,请举个例子。

更新

我有一个PowerShell脚本,它遍历所选Web应用程序中的所有网站集并更改siteCollection.Audit.AuditFlags属性。它在我的开发机器上工作正常,但是siteCollection.Audit.Update()命令在生产服务器上因访问被拒绝错误而失败,即使我尝试以作为服务器场管理员的用户身份运行它

3 个答案:

答案 0 :(得分:7)

是的,它可以。

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

要小心。由于您正在模拟进程帐户,因此会丢失审计跟踪中有关用户的信息。

答案 1 :(得分:4)

RunWithElevatedPrivs在常规Web应用程序上使用应用程序池用户,而不是服务器场管理员。如果在集中管理中发生提升,则它是一个服务器场管理员帐户。我假设你在常规的webapps上这样做,所以启动powershell作为app pool acount。

答案 2 :(得分:3)

以管理员或webapp应用程序池用户身份运行powershell。