Script Name: Disable-AdDisabledCsUsers.ps1
Script Author: Tom-Inge Larsen
Original Post: http://www.codesalot.com/2011/disable-ad-disabled-cs-users-powershell-script/
Log:
- v01 10.03.2011
- Pulls all AD disabled users from AD and disables them for Lync as well
- Can optionally write logs to file or screen using -verbose and/or -logFile inputs
#####################################################################################
# Disable-AdDisabledCsUsers.ps1
#
# Pulls all AD disabled users from AD and disables them for Lync as well
#
# Can optionally write logs to file or screen using -verbose and/or -logFile inputs
#
# eg.
#
# .\Disable-AdDisabledCsUsers.ps1 -verbose $true -logFile "c:\logfile.log"
#
#
#
# Written by Tom-Inge Larsen (codesalot.com)
#
####################################################################################
param($verbose,$logFile)
Import-Module active*
if ($logFile -ne "") {
$logoutput = [System.IO.StreamWriter] $logFile
$logoutput.WriteLine("AD disabled users that was Lync disabled:")
}
$disabledADusers = Search-ADAccount -AccountDisabled -UsersOnly | Select-Object userprincipalname
$disabledADusers | foreach-object {
$identity = $_.userprincipalname
$csuser = Get-CsUser -Identity $identity -ErrorAction SilentlyContinue | Select-Object Enabled
if ($csuser.enabled -eq $true) {
Disable-CsUser -Identity $identity
if ($verbose -eq $true) {
Write-Host "AD disabled user" $identity "is now disabled for Lync as well"
}
if ($logFile -ne "") {
$logoutput.WriteLine($identity)
}
}
}
if ($logFile -ne "") {
$logoutput.close()
if ($verbose -eq $true) {
Write-Host $logFile "written."
}
}