none
Ajuda com PowerShell RRS feed

  • Pergunta

  • Pessoal to precisando de uma ajuda.

    Quando e criado um usuario para um usuario que ja tem login e foi movido de setor executo este comando no powershell

    $user = Get-SPUser -web http://rj2k8shp01 -Identity "DOMINIO\XXXXXXXXX_VELHO"

    Move-SPUser -IgnoreSID -Identity $user -NewAlias "DOMINIO\XXXXXXXXX_NOVO"

    Teria alguma forma automatica de eu fazer isto ?

    quarta-feira, 11 de julho de 2012 16:14

Respostas

  • Ja testou sem usar o csv?

    $user = Get-SPUser -web [site] -Identity [Dominio\Login_Antigo] -erroraction silentycontinue

    if($user -eq $null)
    {
        Write-Host "User not found"
    }
    else
    {
        Move-SPUser -Identity $user -NewAlias [Dominio\Login_Novo] -IgnoreSID
        Write-Host "User updated"
    }


    Atenciosamente, Rafael Fausto

    • Marcado como Resposta kamicase_bb quinta-feira, 12 de julho de 2012 17:12
    quinta-feira, 12 de julho de 2012 16:58

Todas as Respostas

  • Move-SPUser –Identity "dominio\usuario" –NewAlias "dominio\usuario_novo"

    referência
    http://technet.microsoft.com/en-us/library/ff607729.aspx


    Atenciosamente, Rafael Fausto

    quarta-feira, 11 de julho de 2012 16:48
  • Move-SPUser –Identity "dominio\usuario" –NewAlias "dominio\usuario_novo"

    referência
    http://technet.microsoft.com/en-us/library/ff607729.aspx


    Atenciosamente, Rafael Fausto


    Mas teria como eu fazer uma bat por exemplo e so alterar o usuario ?
    quarta-feira, 11 de julho de 2012 16:50
  • Tem como você criar um arquivo .ps1 que é do powershell.

    Cria uma função com os parametros usuario_novo e usuario_velho

    function f([string]$a, [string]$b)
    {
      Write-Host "a:", $a, " b:", $b
    }

    Algo +ou- assim, ai você troca para o seu comando.


    Atenciosamente, Rafael Fausto


    quarta-feira, 11 de julho de 2012 17:05
  • Tem como você criar um arquivo .ps1 que é do powershell.

    Ai você só altera o nome do usuário.


    Atenciosamente, Rafael Fausto


    Teria como me explicar como cria o arquivo e como chamo ele no powershell ?
    quarta-feira, 11 de julho de 2012 17:08
  • Você pode criar pelo bloco de notas mesmo. Mas na hora de salvar, não esqueça de coloca-lo com a extensão .ps1

    Depois é só chamar.

    PS C:\> f("parametro A", "parametro B")

    Acho que é isso.


    Atenciosamente, Rafael Fausto

    quarta-feira, 11 de julho de 2012 17:16
  • Você pode criar pelo bloco de notas mesmo. Mas na hora de salvar, não esqueça de coloca-lo com a extensão .ps1

    Depois é só chamar.

    PS C:\> f("parametro A", "parametro B")

    Acho que é isso.


    Atenciosamente, Rafael Fausto


    Sabe de algum site que eu possa ver ?
    quarta-feira, 11 de julho de 2012 17:45
  • http://weblogs.asp.net/soever/archive/2006/11/29/powershell-calling-a-function-with-parameters.aspx

    Esse que estou tirando como referência.


    Atenciosamente, Rafael Fausto


    quarta-feira, 11 de julho de 2012 17:54
  • kamicase_bb, conseguiu fazer?

    Atenciosamente, Rafael Fausto

    quarta-feira, 11 de julho de 2012 18:55
  • kamicase_bb, conseguiu fazer?

    Atenciosamente, Rafael Fausto

    Ainda nao testei.

    To com um pepino gigante aqui e tambem tem relacao ao move.

    Foi criado um novo usuario porem quando faco o move ele nao migra o login.

    Ja fiz isso em diversos usuarios e foi sem problema, mas tem 2 usuarios que nao esta funcionando.

    Ja ouviu falar desse problema ?

    quarta-feira, 11 de julho de 2012 18:59
  • Quando você executa ele da sucesso? Ou da mensagem de erro?

    Já viu os logs?


    Atenciosamente, Rafael Fausto


    quarta-feira, 11 de julho de 2012 19:04
  • Quando você executa ele da sucesso? Ou da mensagem de erro?

    Já viu os logs?


    Atenciosamente, Rafael Fausto


    Eu seleciono o usuario depois faco o move.
    Ele faz esse procedimento com sucesso, porem na hora que faco o get desse usuario ele permite que eu faca denovo o move.

    Com os usuarios que funcionam depois que faco o move ele retorna a mensagem de erro em vermelho dizendo que o usuario ja foi movido.

    Usuarios que tao dando erro permitem que eu faca o get infinitamente, e como se nao fosse feito o move

    quarta-feira, 11 de julho de 2012 19:07
  • Nunca tive esse problema.

    Esse usuário já logou alguma vez no dominio?


    Atenciosamente, Rafael Fausto

    quarta-feira, 11 de julho de 2012 19:17
  • Nunca tive esse problema.

    Esse usuário já logou alguma vez no dominio?


    Atenciosamente, Rafael Fausto

    Sim. O usuario esta usando esse login que foi criado.

    Estou tendo esse problema com 2 usuarios.

    quarta-feira, 11 de julho de 2012 19:21
  • Nunca tive esse problema.

    Esse usuário já logou alguma vez no dominio?


    Atenciosamente, Rafael Fausto

    Fiz esse procedimento do blog porem ele nao acha o usuario. Tem alguma coisa errada com o .csv
    http://blog.helloitsliam.com/Lists/Posts/Post.aspx?ID=54
    quarta-feira, 11 de julho de 2012 21:38
  • Como você fez esse CSV? Pelo Excel?

    Atenciosamente, Rafael Fausto

    quinta-feira, 12 de julho de 2012 12:00
  • Como você fez esse CSV? Pelo Excel?

    Atenciosamente, Rafael Fausto


    Sim pelo excel
    quinta-feira, 12 de julho de 2012 15:18
  • Ja testou sem usar o csv?

    $user = Get-SPUser -web [site] -Identity [Dominio\Login_Antigo] -erroraction silentycontinue

    if($user -eq $null)
    {
        Write-Host "User not found"
    }
    else
    {
        Move-SPUser -Identity $user -NewAlias [Dominio\Login_Novo] -IgnoreSID
        Write-Host "User updated"
    }


    Atenciosamente, Rafael Fausto

    • Marcado como Resposta kamicase_bb quinta-feira, 12 de julho de 2012 17:12
    quinta-feira, 12 de julho de 2012 16:58
  • Ja testou sem usar o csv?

    $user = Get-SPUser -web [site] -Identity [Dominio\Login_Antigo] -erroraction silentycontinue

    if($user -eq $null)
    {
        Write-Host "User not found"
    }
    else
    {
        Move-SPUser -Identity $user -NewAlias [Dominio\Login_Novo] -IgnoreSID
        Write-Host "User updated"
    }


    Atenciosamente, Rafael Fausto

    Esse funcionou. Mas como sao mais de 10 usuarios por mes, queria colocar no csv.

    Ai rodaria o powershell.

    O codigo todo com o csv e esse

    $inputFile = Import-CSV "C:\Users\sharepoint\usuario.csv"
    [string]$url = "http://rj2k8shph01"

    foreach($line in $inputFile)
    {
    $user = Get-SPUser -web $url -Identity $line.OriginalAccount
    if($user -eq $null)
    {
    Write-Host "User not Found"
    }
    else
    {
    Move-SPUser -Identity $user -NewAlias $line.NewAccount - IgnoreSID
    $user = Get-SPUser -web $url -Identify $line.NewAccount

    Set-SPUser -Identity $user -DisplayName $line.DisplayName - Email $line.Email
    }
    }

    Ele ta dando que nao acha o usuario ai por isso que to achando que e problema no csv

    quinta-feira, 12 de julho de 2012 17:14
  • Abre o seu CSV no note e mostre aqui como ficou.

    Ao inves de migrar o usuário, coloque para ele escrever na tela para ver se ele está pegando o valor correto.

    Ex.:

    foreach($line in $inputFile)
    {
        Write-Host $line.OriginalAccount
    }


    Atenciosamente, Rafael Fausto


    quinta-feira, 12 de julho de 2012 17:17
  • Abre o seu CSV no note e mostre aqui como ficou.

    Atenciosamente, Rafael Fausto

    OriginalAccount,NewAccount,DisplayName,Email,FirstName,LastName
    i:0#.w|DOMAIN\usuario,i:0#.w|DOMAIN\usuario,Alinet,desteves@,Daniel,Esteves

    Com o codigo que voce pediu para colocar para ele aparecer ficou assim

    [code]

    i:0#.w|"DOMAIN\vfernandes_estag"

    $user = Get-SPUser -web $url -Identity $line.OriginalAccount
    if($user -eq $null)
    {
    Write-Host "User not Found"
    }
    else
    {
    Move-SPUser -Identity $user -NewAlias $line.NewAccount - IgnoreSID
    $user = Get-SPUser -web $url -Identify $line.NewAccount

    Set-SPUser -Identity $user -DisplayName $line.DisplayName - Email $line.Email
    }

    [/code]

    • Editado kamicase_bb quinta-feira, 12 de julho de 2012 17:49
    quinta-feira, 12 de julho de 2012 17:26
  • i:0#.w|"DOMAIN\vfernandes_estag"

    $user = Get-SPUser -web $url -Identity $line.OriginalAccount
    if($user -eq $null)
    {
    Write-Host "User not Found"
    }
    else
    {
    Move-SPUser -Identity $user -NewAlias $line.NewAccount - IgnoreSID
    $user = Get-SPUser -web $url -Identify $line.NewAccount

    Set-SPUser -Identity $user -DisplayName $line.DisplayName - Email $line.Email
    }

    quinta-feira, 12 de julho de 2012 17:51
  • O meu arquivo fica assim

    OriginalAccount;NewAccount
    dominio\rafael;dominio\rafaelf

    É diferente


    Atenciosamente, Rafael Fausto

    quinta-feira, 12 de julho de 2012 18:07
  • Alterando aparece a seguinte mensagem

    PS C:\Users\sharepoint> .\usuario.ps1
    Get-SPUser : Cannot validate argument on parameter 'Identity'. The argument is
    null. Supply a non-null argument and try the command again.
    At C:\Users\sharepoint\usuario.ps1:6 char:39
    + $user = Get-SPUser -web $url -Identity <<<<  $line.OriginalAccount
        + CategoryInfo          : InvalidData: (:) [Get-SPUser], ParameterBindingV
       alidationException
        + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.Share
       Point.PowerShell.SPCmdletGetUser

    User not Found
    Get-SPUser : Cannot validate argument on parameter 'Identity'. The argument is
    null. Supply a non-null argument and try the command again.
    At C:\Users\sharepoint\usuario.ps1:6 char:39
    + $user = Get-SPUser -web $url -Identity <<<<  $line.OriginalAccount
        + CategoryInfo          : InvalidData: (:) [Get-SPUser], ParameterBindingV
       alidationException
        + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.Share
       Point.PowerShell.SPCmdletGetUser

    User not Found
    Get-SPUser : Cannot validate argument on parameter 'Identity'. The argument is
    null. Supply a non-null argument and try the command again.
    At C:\Users\sharepoint\usuario.ps1:6 char:39
    + $user = Get-SPUser -web $url -Identity <<<<  $line.OriginalAccount
        + CategoryInfo          : InvalidData: (:) [Get-SPUser], ParameterBindingV
       alidationException
        + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.Share
       Point.PowerShell.SPCmdletGetUser

    User not Found
    PS C:\Users\sharepoint>

    • Editado kamicase_bb quinta-feira, 12 de julho de 2012 18:35
    quinta-feira, 12 de julho de 2012 18:21
  • Olha esse site

    http://www.yellow-bricks.com/2009/03/11/powershell-and-importing-csv-files/

    O formato esta igual o que passei.


    Atenciosamente, Rafael Fausto

    quinta-feira, 12 de julho de 2012 19:32
  • Olha esse site

    http://www.yellow-bricks.com/2009/03/11/powershell-and-importing-csv-files/

    O formato esta igual o que passei.


    Atenciosamente, Rafael Fausto

    colocando no powershell import-csv usuario.ps1 

    ele ta retornando os dados corretos

    PS C:\Users\sharepoint> import-csv usuario.csv

    OriginalAccount                         NewAccount
    ---------------                         ----------
    domain\user                             domain\admin
    domain\vfernandes                    domain\alinet

    Porem quando rodo o .ps1 ele da erro

    • Editado kamicase_bb quinta-feira, 12 de julho de 2012 20:00
    quinta-feira, 12 de julho de 2012 19:48
  • Engraçado, mas criando um csv no excel, ele coloca ; e não ,.

    caso altere no notepad, ele não reconhece a , como nova coluna.

    mas tenta fazer do jeito q esta no site.


    Atenciosamente, Rafael Fausto

    quinta-feira, 12 de julho de 2012 19:54
  • Engraçado, mas criando um csv no excel, ele coloca ; e não ,.

    caso altere no notepad, ele não reconhece a , como nova coluna.

    mas tenta fazer do jeito q esta no site.


    Atenciosamente, Rafael Fausto

    colocando como virgula ele reconhece na hora que mando ler direto o usuario.csv 

    mas na hora que rodo o usuario.ps1 ele da a seguinte mensagem de erro

    PS C:\Users\sharepoint> .\usuario.ps1
    Move-SPUser : A positional parameter cannot be found that accepts argument '-'.
    At C:\Users\sharepoint\usuario.ps1:13 char:12
    + Move-SPUser <<<<  -Identity $user -NewAlias $line.NewAccount - IgnoreSID
        + CategoryInfo          : InvalidArgument: (:) [Move-SPUser], ParameterBin
       dingException
        + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.SharePoint
       .PowerShell.SPCmdletMoveUser

    Get-SPUser : You must specify a valid user object or user identity.
    At C:\Users\sharepoint\usuario.ps1:14 char:19
    + $user = Get-SPUser <<<<  -web $url -Identity $line.NewAccount
        + CategoryInfo          : InvalidArgument: (Microsoft.Share....SPUserPipeB
       ind:SPUserPipeBind) [Get-SPUser], PSArgumentException
        + FullyQualifiedErrorId : Microsoft.SharePoint.PowerShell.SPCmdletGetUser

    Set-SPUser : Cannot validate argument on parameter 'Identity'. The argument is
    null. Supply a non-null argument and try the command again.
    At C:\Users\sharepoint\usuario.ps1:16 char:21
    + Set-SPUser -Identity <<<<  $user -DisplayName $line.DisplayName - Email $line
    .Email
        + CategoryInfo          : InvalidData: (:) [Set-SPUser], ParameterBindingV
       alidationException
        + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.Share
       Point.PowerShell.SPCmdletSetUser

    Move-SPUser : A positional parameter cannot be found that accepts argument '-'.
    At C:\Users\sharepoint\usuario.ps1:13 char:12
    + Move-SPUser <<<<  -Identity $user -NewAlias $line.NewAccount - IgnoreSID
        + CategoryInfo          : InvalidArgument: (:) [Move-SPUser], ParameterBin
       dingException
        + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.SharePoint
       .PowerShell.SPCmdletMoveUser

    Get-SPUser : You must specify a valid user object or user identity.
    At C:\Users\sharepoint\usuario.ps1:14 char:19
    + $user = Get-SPUser <<<<  -web $url -Identity $line.NewAccount
        + CategoryInfo          : InvalidArgument: (Microsoft.Share....SPUserPipeB
       ind:SPUserPipeBind) [Get-SPUser], PSArgumentException
        + FullyQualifiedErrorId : Microsoft.SharePoint.PowerShell.SPCmdletGetUser

    Set-SPUser : Cannot validate argument on parameter 'Identity'. The argument is
    null. Supply a non-null argument and try the command again.
    At C:\Users\sharepoint\usuario.ps1:16 char:21
    + Set-SPUser -Identity <<<<  $user -DisplayName $line.DisplayName - Email $line
    .Email
        + CategoryInfo          : InvalidData: (:) [Set-SPUser], ParameterBindingV
       alidationException
        + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.Share
       Point.PowerShell.SPCmdletSetUser

    PS C:\Users\sharepoint>

    quinta-feira, 12 de julho de 2012 20:18
  • alterei para Move-SPUser -Identity $user -NewAlias $line.NewAccount -IgnoreSID
    $user = Get-SPUser -web $url -Identity "$line.NewAccount"

    e agora ele seleciona o usuario porem na hora que coloco A para fazer o move ele aparece a mensagem

    Na hora que executo o usuario.ps1 ele nao acha mais o usuario

    quinta-feira, 12 de julho de 2012 20:42
  • Eu acho que você não precisa do ".

    $user = Get-SPUser -web $url -Identity "$line.NewAccount"

    tem que ser

    $user = Get-SPUser -web $url -Identity $line.NewAccount


    Atenciosamente, Rafael Fausto

    sexta-feira, 13 de julho de 2012 12:10
  • Eu acho que você não precisa do ".

    $user = Get-SPUser -web $url -Identity "$line.NewAccount"

    tem que ser

    $user = Get-SPUser -web $url -Identity $line.NewAccount


    Atenciosamente, Rafael Fausto

    Mesmo erro acima
    sexta-feira, 13 de julho de 2012 15:41
  • E se você escolher Y ao inves de A?

    Atenciosamente, Rafael Fausto

    sexta-feira, 13 de julho de 2012 17:42
  • E se você escolher Y ao inves de A?

    Atenciosamente, Rafael Fausto


    Percebi que apesar do erro ele "funciona" pois quando rodo o script denovo ele diz que o usuario nao foi achado
    sexta-feira, 13 de julho de 2012 18:05