header1   header
header
header Register : : Login header
header
connector   connector
menuleft menuright
submenu   submenu
left
Email notification when group is modified
Last Post 23 Dec 2011 08:56 AM by Karl Mitschke. 4 Replies.
Printer Friendly
  •  
  •  
  •  
  •  
  •  
Sort:
PrevPrev NextNext
You are not authorized to post a reply.
Author Messages
mcpetercUser is Offline
New Member
New Member
Posts:3
Avatar

--
19 Dec 2011 03:53 AM
    Hi.

    Im new to powershell.

    Im looking for a PS script that will send me a notification when users is added/removed from Domain Admins group.

    I have been looking for a long time for such a script. I have made this but its nok working:



    # Load Quest AD CmdLets (for simplicity): http://www.quest.com/powershell/act...erver.aspx
    Add-PsSnapIn Quest.ActiveRoles.ADManagement

    # The group name to run for
    $GroupName = "Domain Admins"

    # The report is sent here (if something changes)
    $Email = pech@secret.com
    $SmtpServer = "10.1.4.30"
     
    # Store group members in this file:
    $StateFile = "C:\Scripts\Groupmembers\groupmembers.csv"

    # Current Membership
    $Members = Get-QADGroupMember $GroupName -Indirect | Select-Object Name, SamAccountName, DN

    # If the file doesn't exist, assume we've not got a record to refer to, then make it
    If (!(Test-Path $StateFile)) { $Members | Export-Csv $StateFile -NoTypeInformation }

    # Now get current membership and start comparing it to the last lot we recorded
    # catching changes to membership (additions / removals)
    $Changes = Compare-Object $Members $(Import-Csv $StateFile) -Property Name, SamAccountName, DN |
       Select-Object Name, SamAccountName, DN,
    @{n='State';e={ If ($_.SideIndicator -eq "=>") { "Removed" } Else { "Added" } }}
    # If we have some changes, mail them to $Email If ($Changes) { Send-MailMessage -From $Email -To $Email -Subject "$GroupName membership change" `
    -BodyAsHtml -Body $($Changes | ConvertTo-Html | Out-String) -SmtpServer $SmtpServer
    Karl MitschkeUser is Offline
    Basic Member
    Basic Member
    Posts:457
    Avatar

    --
    19 Dec 2011 06:27 AM
    Hello;

    Define "not working"
    Do you mean you get an error about an SMTP server not being specified? If so, remove the space after the backtick on this:

     If ($Changes) { Send-MailMessage -From $Email -To $Email -Subject "$GroupName membership change" ` 


    Karl
    http://unlockpowershell.wordpress.com
    Co-Author, Windows PowerShell 2.0 Bible
    -join("6B61726C6D69747363686B65406D742E6E6574"-split"(?<=\G.{2})",19|%{[char][int]"0x$_"})
    mcpetercUser is Offline
    New Member
    New Member
    Posts:3
    Avatar

    --
    19 Dec 2011 11:02 PM
    Hi. I have postet my answer here: http://justpaste.it/n8k Please have a look.
    mcpetercUser is Offline
    New Member
    New Member
    Posts:3
    Avatar

    --
    19 Dec 2011 11:08 PM

    I cant get my code to look good on these forums. Thats why I postet on Pasteit here: http://justpaste.it/n8k

    Karl MitschkeUser is Offline
    Basic Member
    Basic Member
    Posts:457
    Avatar

    --
    23 Dec 2011 08:56 AM
    The issue is that "C:\Scripts\Groupmembers\groupmembers.csv" exists, and you never overwrite it.
    Add this line to the end of your script:
    $Members | Export-csv $StateFile -NoTypeInformation 

    Karl
    http://unlockpowershell.wordpress.com
    Co-Author, Windows PowerShell 2.0 Bible
    -join("6B61726C6D69747363686B65406D742E6E6574"-split"(?<=\G.{2})",19|%{[char][int]"0x$_"})
    You are not authorized to post a reply.


    Active Forums 4.3
    right
    footer   footer
    footer Sponsored by Quest Software • SAPIEN Technologies • Compellent • Microsoft Windows Server 2008 R2 footer
    footer   footer