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!

Foi útil?

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).

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