top of page

PowerShell - Add AD group to servers from text

  • Writer: Jon Boyette
    Jon Boyette
  • Jan 11, 2022
  • 1 min read

Save as a named.ps1 and Run, prompts for domain name, and group name to add to, Populate c:\temp\servers.txt with computers to add new group to

$ErrorActionPreference = "silentlycontinue"


$Domain = Read-Host "`Enter Domain to ADD group from"

$UserName = Read-Host "`Enter Domain group name "

$DomName = $domain + "/" + $username

write-host "`n"

foreach($server in (gc c:\temp\servers.txt)){

$i= 0

$Boo= 0

if (Test-Connection $server -Count 1 -Quiet) {


$computer = [ADSI](”WinNT://” + $server + “,computer”)

$Group = $computer.psbase.children.find(”Administrators”)

$members = @($group.psbase.Invoke("Members"))


$Check =($members | foreach {$_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)}) -contains "$UserName"


If ($Check -eq $True) {

write-host "$server`t- Already Member" -foregroundcolor "yellow" }


else {


$computer = [ADSI](”WinNT://” + $server + “,computer”)

$Group = $computer.psbase.children.find(”Administrators”)

$Group.Add("WinNT://" + $domain + "/" + $username)


$mem = ($Group.psbase.invoke(”Members”) | %{$_.GetType().InvokeMember(”Adspath”, ‘GetProperty’, $null, $_, $null)}) `

-replace ('WinNT://DOMAIN/' + $server + '/'), '' -replace ('WinNT://DOMAIN/', 'DOMAIN\') -replace ('WinNT://', '')

$total = $mem.count


Foreach ($member in $mem) {

if ("$member" -eq "$Domain/$UserName"){

write-host "$server`t- Successfully Added" -foregroundcolor "green"

$Boo = 1 }

$i=$i+1


If ($total -eq $i -And $Boo -eq 0) {

write-host "$server`t- Check Name - Doesn't exist or Server not ready" -foregroundcolor "magenta" }


}

}


}

else {

write-host "$server `t- Failed to connect to Group Name or Server" -foregroundcolor "Red" }



}

write-host "`n"


 
 
 

Recent Posts

See All
PowerShell - List All Domain SPNs

Save as same List_ALL_SPNs.ps1 or similar, this LDap calls the Domain for all Service Principal names and accounts related #Build LDAP...

 
 
 
PowerShell - Start-Monitoring

This is a great script used to Monitor and Email if a server is up or down, once ran, and smtp and from address is set, then run:...

 
 
 

Comments


Post: Blog2 Post
  • Facebook
  • Twitter
  • LinkedIn

©2022 by Boyette Technical Services. Proudly created with Wix.com

bottom of page