Pergunta

Na minha simples script do Powershell, eu recebo um erro "Exceção chamada "ResetRoleInheritance" :Existem alterações não confirmadas sobre o Objeto SPWEb, chamada SPWeb.Update() para confirmar a cahnges antes de chamar esse método."

Eu estou tentando redefinir todos os subsites com permissões herdadas na preparação de limpar as permissões para o nosso Sites_de_equipe.Onde devo colocar o SPWeb.Update() no código a seguir?

$spWeb = Get-SPWeb "http://<sitecollection>/<subsite>/"

Echo "Resetting Permission Inheritance for Site: $spWeb"
$spWeb.ResetRoleInheritance()
$spWeb.Update()

foreach($subSite in $spWeb.Webs)
{
  Echo "Resetting Permission Inheritance for SubSite: $subSite"
  $subSite.ResetRoleInheritance()
  $subSite.Update()
  $subSite.Dispose()
}
$spWeb.Dispose()
Foi útil?

Solução

Isso funciona...por algum motivo.Eu não tenho idéia porque, realmente.É mais, definitivamente, poderia ser limpos, tenho certeza de que bem:

$spWeb = Get-SPWeb "http://<site collection>/<subsite>/"

Echo "Resetting Permission Inheritance for Site: $spWeb"


foreach($subSite in $spWeb.Webs)
{
  $subSite.Update()
  Echo "Resetting Permission Inheritance for SubSite: $subSite"
  $subSite.ResetRoleInheritance()
  $subSite.Update()
  $subSite.Dispose()
}
$spWeb.ResetRoleInheritance()
$spWeb.Update()
$spWeb.Dispose()

Outras dicas

Eu estava cansado de lidar com esse problema, então eu consegui isso através da busca cada SPWeb individualmente, usando uma lista de urls como um string matriz.Algo como isto:

$urls = (Get-SPWeb "http://<site collection>/<subsite>/").webs | select -exp url

(copiar e colar urls para/a partir do ficheiro de texto para a nova sessão do powershell)

# this is now a brand new SPWeb object each time. to be absolutely sure im not causing the afore-mentioned errors
$urls | foreach { $web = get-spweb $_; $web.resetroleinheritance(); $web.dispose() }

Provavelmente não é uma grande solução para scripts automatizados mas ele me pegou em cima da linha.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top