Reivindicações do SharePoint 2010 para ajuda do PowerShell clássico
-
09-12-2019 - |
Pergunta
Tenho um requisito de cliente para mudar do Classic para o Claims.Atualmente estou utilizando algum PowerShell de http://derekmartin.org/archives/701
$webApp =
$farm = get-SPFarm
$wa = get-SPWebApplication $webApp
$site = get-SPSite $webApp
$web = $site.OpenWeb()
foreach ($user in $web.AllUsers) {
$newuser = $user
$newuserLoginName = “”
write-host($user.LoginName)
if ($newuser.LoginName.StartsWith(“i:0#.w|”))
{
! $newuserLoginName = $user.LoginName.Substring(7)
}
$user = $newuser
$farm.MigrateUserAccount($user.LoginName, $newuserLoginName, $false)
}
Infelizmente, toda vez que tento executá-lo, recebo o seguinte
Expressão de atribuição inválida.O lado esquerdo de um operador de atribuição precisa ser algo que possa ser atribuído a uma variável ou uma propriedade.Em C: Usuários User Desktop reivindicações.ps1: 12 char: 22 +!$ newUserLoginName = <<<< $ user.loginname.substring (7) + categoryInfo:Erro do analisador:(:) [], parseException + totalmente qualificada erorID:InválidoLeftHandSide
Alguma ideia do que poderia estar errado?
Obrigado!
Desculpe, esqueci de colar o script em questão originalmente!
Solução
Posso estar errado, mas suponho que o ponto de exclamação no
!$newuserLoginName = $user.LoginName.Substring(7)
line deve ser apenas uma recusa (ou, finalmente, não corresponde a nenhuma sintaxe que eu conheça).
Se você estiver em um ambiente de teste ou tiver certeza de que não danificará seu sistema com um comando errado, tentarei substituir o if por:
if ($newuser.LoginName.StartsWith(“i:0#.w|”))
{
$newuserLoginName = $user.LoginName.Substring(7)
}
O if deveria simplesmente remover a "parte específica da reivindicação" do nome de login, então eu presumo que a postagem original do blog pretendia dessa forma.
Dito isto, saiba disso Eu nunca fiz isso antes e estão apenas tentando detectar um erro no código do PowerShell.Não sei se esse código realmente fará o que foi prometido, então use isso por sua conta e risco (ou espere outro usuário mais experiente para confirmar o comportamento).