none
Vincular logins de contas de usuarios a contas de computadores via script RRS feed

  • Pergunta

  • Senhores, boa noite

    Cenario:
    Server 2003 SP1
    PowerShell 1.0

    Necessidade:
    Imagine as contas de computador em uma lista, todos os computadores fazem parte do meu dominio:
    host01
    host02
    host03
    host04

    Imagine as contas de usuarios:
    joao
    maria
    felipe
    antonio
    luiz
    mario
    jose

    Preciso que cada uma das contas de usuarios possa logar apenas nas contas de computador acima descritas, e em nenhuma outra maquina do dominio. Ex. Joao precisa logar em todos os host01, 02, 03 de uma determinada lista, e mais nenhuma maquina no meu dominio... assim como maria, felipe...

    Eu sei que consigo isso via PowerShell, to rodando a technet e as KBs da Microsoft mas tenho conseguido pouca luz no meu tunel... Vocês tem alguma ideia? Alguma luz pra me orientar?

    Forte abraço.

    sexta-feira, 4 de abril de 2014 21:38

Respostas

  • Lacerda,

    Veja este link

    Modify Log On To (userWorkstations) User Properties–PowerShell Script

    http://gallery.technet.microsoft.com/scriptcenter/145213a1-0e5f-41fd-8fe6-119f989c792f

    Vc pode fazer duas coisas, criar um loop e adaptar o código a sua necessidade ou 

    Criar o arquivo no formato descrito no artigo (usuario,maquina), com loops também, lendo os dois arquivos.

    #www.sivarajan.com 
    #blogs.sivarajan.com 
    #You can use this PowerShell script to update or modify the Log On To (userWorkstations) attribute in Active Directory.   
    cls 
    Import-CSV C:\Scripts\input.csv | % {  
        $UserN = $_.UserName 
        $ComputerN = $_.ComputerName 
        $ObjFilter = "(&(objectCategory=person)(objectCategory=User)(samaccountname=$UserN))"  
        $objSearch = New-Object System.DirectoryServices.DirectorySearcher  
        $objSearch.PageSize = 15000  
        $objSearch.Filter = $ObjFilter   
        $objSearch.SearchRoot = "LDAP://dc=infralab,dc=local"  
        $AllObj = $objSearch.findOne() 
        $user = [ADSI] $AllObj.path 
        $user.psbase.invokeSet("userWorkstations",$_.ComputerName) 
        $user.setinfo()  
        } 


    Fábio de Paula Junior

    • Marcado como Resposta Lacerda Adrecal quarta-feira, 9 de abril de 2014 22:37
    domingo, 6 de abril de 2014 15:40
    Moderador

Todas as Respostas

  • Lacerda,

    Veja este link

    Modify Log On To (userWorkstations) User Properties–PowerShell Script

    http://gallery.technet.microsoft.com/scriptcenter/145213a1-0e5f-41fd-8fe6-119f989c792f

    Vc pode fazer duas coisas, criar um loop e adaptar o código a sua necessidade ou 

    Criar o arquivo no formato descrito no artigo (usuario,maquina), com loops também, lendo os dois arquivos.

    #www.sivarajan.com 
    #blogs.sivarajan.com 
    #You can use this PowerShell script to update or modify the Log On To (userWorkstations) attribute in Active Directory.   
    cls 
    Import-CSV C:\Scripts\input.csv | % {  
        $UserN = $_.UserName 
        $ComputerN = $_.ComputerName 
        $ObjFilter = "(&(objectCategory=person)(objectCategory=User)(samaccountname=$UserN))"  
        $objSearch = New-Object System.DirectoryServices.DirectorySearcher  
        $objSearch.PageSize = 15000  
        $objSearch.Filter = $ObjFilter   
        $objSearch.SearchRoot = "LDAP://dc=infralab,dc=local"  
        $AllObj = $objSearch.findOne() 
        $user = [ADSI] $AllObj.path 
        $user.psbase.invokeSet("userWorkstations",$_.ComputerName) 
        $user.setinfo()  
        } 


    Fábio de Paula Junior

    • Marcado como Resposta Lacerda Adrecal quarta-feira, 9 de abril de 2014 22:37
    domingo, 6 de abril de 2014 15:40
    Moderador
  • Show de bola, isso mesmo =D
    quarta-feira, 9 de abril de 2014 22:37