2014-07-23 4 views
1
#GET TEXT FILE WITH LIST OF "SAMACCOUNTNAME" TO LIST VARIABLE 
    $list = Get-Content C:\PSSCripts\listofusers.txt 

#PULL INFORMATION FROM ACTIVE DIRECTORY TO USERRESULTS VARIABLE 
    $UserResults = Get-AdUser -filter * -searchbase "OU=THISOU,DC=THISDOMAIN,DC=int" -Properties displayname 

#DETERMINE IF USER IS IN THE TXT LIST 

    foreach ($user in $UserResults) 
    { 
     if ($user.SamAccountName -in $list.SamAccountName) 
     { 
#ECHO THEIR NAME TO VERIFY 

     write-host $user.displayName 
     } 
    } 

#VERIFY USER TO BE OFFBOARDED VIA Y/N PROMPT - VISUALLY INSPECT LIST 


    $choice = "" 
    while ($choice -notmatch "[y|n]"){ 
    $choice = read-host "The following user profiles have been loaded for offboarding. Do you want to continue? Please Verify the users before continuing. (Y/N)" 
    } 

if ($choice -eq "y"){ 

     # LOOP THROUGH USERS AND APPLY CHANGES 
     foreach ($user in $UserResults) 
     { 
      #DETERMINE IF USER IS IN TXT FILE 
      if ($user.SamAccountName -in $list.SamAccountName) 
       { 
       # DISABLE ACCOUNT 
       Disable-ADAccount -Identity $user 

       # CHANGE DISPLAYNAME AND DESCRIPTION TO DISPLAY TERMINATED - $USER 
       $newname = "Terminated - " + $user.displayName 
       Get-ADUser -Identity $user | Set-ADObject -Description $newname -DisplayName $newname 

       # CHANGE USER PASSWORD TO "Password1" 
       $password = "Password1" | ConvertTo-SecureString -AsPlainText -Force 
       Set-ADAccountPassword -NewPassword $password -Identity $user -Reset 

       # MOVE USER TO DIFFERENT LOCATION, Disabled Users organizational unit 
       Move-ADObject -Identity $user -TargetPath "OU=DisabledUsers,DC=THATDOMAIN,DC=int" -Confirm:$false 
       } 

     } 



    } 

else {write-host "Script aborted!"} 

'의 오른쪽에있는 값을 식을 제공해야 . 11 문자 : 29파워 쉘 다음과 같은 오류를 얻기 운영자

if ($user.SamAccountName - <<<< in $list.SamAccountName) 
Category Info   : ParserError (:) [], ParseException 
FullyQualifiedErrorID : ExpectedValueExpression 

헤더가 SAMACCOUNTNAME 인 텍스트 파일에 사용자 목록이 있습니다. 이러한 사용자는 특정 OU에있는 사용자 목록과 대조됩니다. PowerShell은 내 텍스트 목록에있는 사용자 목록을 AD에있는 해당 OU의 모든 사용자와 대조하여 확인한 후 오류가없는 게시판에/변경되지 않았 음을 확인하고 이동하기 전에 확인하라는 메시지를 표시합니다 (y | n). 앞으로/r/powershell의 일부 redditors의 도움을 받아 작성한 스크립트를 실행하고 실행하십시오.

나는이 오류를 받고 있어요 내가 왜 이해하지 못하는거야

-in $list.SamAccountName 

가 해결되지

입니까?

도움을 주셔서 감사합니다, stackoverflow! Powershell을 사용하여 더 잘 발전하고 커뮤니티에 되돌아 오기를 기대하면서 처음으로 게시했습니다.

답변

0

"-eq"또는 "-contains"를 사용해야합니다 (스칼라 값이 무엇인지, 프로그램에 배열이 무엇인지 모르겠습니다).