Archive

Posts Tagged ‘script’

PowerShell: Get Active Directory groups membership for a user

22/10/2013 2 comments

Hi,

When you have to document every change  Because you’re committed to SOX regulation, you need to extract the data fast

This PowerShell script receive an AD username and export .csv with all Active Directory groups (for Fast Copy&Past).

import-module ActiveDirectory
$name = Read-Host ‘What is the username?’
$csvvv = “.csv”
Get-ADPrincipalGroupMembership $name | select name | Export-CSV ($name+$csvvv)

Save it as .ps1 and run it from the powershell command line,

Sending a reminder to users with password is about to expire (PowerShell Script)

11/07/2013 2 comments

One of the most annoying thing in user support is that they never notice the “consider changing your password” balloon, and sometimes they are locked out after their password expired,

To overcome this difficulty with users, I programmed This in PowerShell:

 

  • First, I pull out the users that their password ending soon –

import-module ActiveDirectory

$date1 = ((Get-Date).AddDays(-56)).ToString()
$date2 = ((Get-Date).AddDays(-61)).ToString()

//the default domain password expiration is 60 days

get-ADUser -server “YOURDC” -SearchBase “OU=Divisions,DC=DOMAIN,DC=COM” -Filter {(enabled -eq “TRUE”) -and (PasswordLastSet -lt $date1) -and (PasswordLastSet -gt $date2) -and (PasswordNeverExpires -eq “false”) -and (EmailAddress -notlike ‘\S’)} -Properties * | select EmailAddress, DisplayName, PasswordLastSet | Export-CSV c:\List1.csv

//Please notice that i export only 3 field for each user (EmailAddress, DisplayName, PasswordLastSet)

  • Now we delete the first row, and load the file into $list

get-content c:\list1.csv | select -skip 1| set-content c:\list2.csv

$list = import-csv “c:\list2.csv”

 

  • Now for the loop, it will go to each row and take the user information and send him an email to consider changing his password

ForEach ($row in $list) {
$Subject = “Dear “+$row.DisplayName+”, Your Domain Password Set On “+$row.PasswordLastSet+” And About To Expire”
$Body = “To change youre password press Control+Alt+Delete and choose Change Password `nThis is an automatic message, Please DO NOT reply ……”

send-mailmessage -to $row.EmailAddress -from “<me@domain.com>”  -subject $subject -body $body -smtpServer “smtp.domain.com”
}

You can consolidate all the script parts to one file .ps1 type

This is it, I hope you liked it….

Yair