I am attempting to create a powershell script to maintain users. Current environment. Office365 with ADFS, AD and on premise exchange server 2010. All integrated together. For the current problem, I am trying to import a list of users from a csv, and apply them to a specific distribution group, in either exchange or Active Directory. Both sync and update each other in my environment. I would like to do this based on the employee # of the employee, which is stored as extensionattribute5 in Active Directory. I would also like to create a success/fail log. Following is my script. Following that is the error message. The test file contains two columns, Display Name, and EmpNo. What am I doing wrong here/missing. Can't seem to get this to work.
import-module activedirectory $Users=Import-csv c:\test.csv $failedUsers = @() $usersAlreadyExist =@() $successUsers = @() $VerbosePreference = "Continue" $LogFolder = "C:\temp" ForEach($User in $Users) { try { if (!(get-aduser -Filter "extensionattribute5 -like '$($_.EmpNo)'")){ Add-ADGroupMember -Identity 'IMS S3' -Member SAMAccountName Write-Verbose "[PASS] Created $EmpNo" $successUsers += $EmpNo } else { Write-Warning "[WARNING] [$($EmpNo)] already exists in Distribution Group" $usersAlreadyExist += $EmpNo } } catch { Write-Warning "[ERROR]Can't create add [$($EmpNo)] : $_" $failedUsers += $EmpNo } } if ( !(test-path $LogFolder)) { Write-Verbose "Folder [$($LogFolder)] does not exist, creating" new-item $LogFolder -Force } Write-verbose "Writing logs" $failedUsers | out-file -FilePath $LogFolder\FailedUsers.log -Force -Verbose $usersAlreadyExist | out-file -FilePath $LogFolder\usersAlreadyExist.log -Force -Verbose $successUsers | out-file -FilePath $LogFolder\successUsers.log -Force -Verbose
Error message follows: At C:\users\new3.ps1:16 char:72 + ... if (!(get-aduser -Filter "extensionattribute5 -like '$($_.EmpNo)'")) + ~ Missing statement block after if ( condition ). + CategoryInfo : ParserError: (:) [], ParseException + FullyQualifiedErrorId : MissingStatementBlock