scripts.team-holm.net
Hovedsiden
PowerShell Scripts
Group_Scripts


Dette er en egen seksjon for script som håndterer grupper og brukeres gruppemedlemskaper.
Se kommentarene i scriptene for mer informasjon.

SjekkBrukerForGruppe.ps1
##Atle Holm - 2009
#Sjekker om brukere er medlem av en bestemt gruppe

$users = Get-Content $args
$group = Read-Host "Skriv gruppenavnet som brukere skal sjekkes for"
$pathN = Read-Host "Skriv inn sti hvor resultatene skal logges"
$log = "users-VS-$group.log"

$exists = $false
$endret = $false

$DATEX = Get-Date

foreach ($user in $users) {
   echo "Sjekker nå: $user"
   $QADuser = Get-QADUser $user
   $userGroups = $QADuser.memberof | % { $_.split(",")[0].substring(3) }
   foreach ($userGroup in $userGroups) {
      if ($userGroup -eq $group) {
         $exists = $true
      }
   }
   if (exists eq $true) {
      echo "$DATEX - $user er medlem av $group" >> $pathN\$log
   } else {
      echo "$DATEX - $user er IKKE medlem av $group" >> $pathN\$log
   }
   $exists = $false
}

MassSetUsersAsMember.ps1
#Atle Holm - 2011
if (!$args) {
    Write-Host "Dette scriptet brukes feks slik:"
   Write-Host "MassSetUsersAsMembers.ps1 C:\users.txt C:\groups.txt"
   Write-Host "Bruk /? som argument til scriptet for mer info."
    break
} elseif ($args[0] -match "/\?{1}") {
    Write-Host "Dette scriptet gjør alle brukere spesifisert i første `
   tekstfil til medlemmer i grupper spesifisert som andre argument i andre tekstfil"
   Write-Host "MassSetUsersAsMembers.ps1 C:\users.txt C:\groups.txt"
   break
}
if ($args.count -gt 2) {
   Write-Host "Du kan bare supplere to argument med dette scriptet."
   Write-Host "MassSetUsersAsMembers.ps1 C:\users.txt C:\groups.txt"
   break
}
$users = get-content $args[0]
$groups = get-content $args[1]

foreach ($group in $groups) {
   foreach ($user in $users) {
      Add-QADGroupMember -Identity $group -Member $user
   }
}

DumpGroupMembers.ps1
#Atle Holm - 2009
if ($args -match "/\?{1}" -or $args[0] -match "/\?{1}") {
    Write-Host "Dette scriptet dumper medlemene av en gruppe til fil."
   Write-Host "Den aktuelle gruppen skal være et argument til scriptet."
   Write-Host "`nDu må ha to argument med dette scriptet:"
   Write-Host "`t1. Gruppen som skal behandles" -ForegroundColor yellow
   Write-Host "`t2. Sti til der resultatfila skal dumpes" -ForegroundColor yellow
    break
}
if ($args.count -ne 2) {
   Write-Host "Du må ha to argument med dette scriptet:"
   Write-Host "`t1. Gruppen som skal behandles" -ForegroundColor yellow
   Write-Host "`t2. Sti til der resultatfila skal dumpes" -ForegroundColor yellow
   break
}

$uRetreive = $args[0]
$PATHN = $args[1]
$userNames = @()
$logonNames = @()
$temp = $()

$file = "Dump-$uRetreive.log"
Write-Output "*GRUPPENS MEDLEMMER:" >> $PATHN\$file
foreach ($user in ((Get-QADgroup $uRetreive).get_allMembers() | Get-QADuser)) {
   $temp = $user.get_displayname()
   Write-Output "Henter DisplayName $temp"
   $userNames += $temp
} 
foreach ($logon in ((Get-QADgroup $uRetreive).get_allMembers() | Get-QADuser)) { 
   $temp = $user.get_logonname()
   Write-Output "Henter LogonName $temp"
   $logonNames += $temp
} 
for ($X = 0; $X -lt $userNames.count; $X++) {
   $temp = $userNames[$X] + " -- " + $logonNames[$X]    
   Write-Output $temp >> $PATHN\$file
}

$userNames = @()
$logonNames = @()
Write-Output "*GRUPPENS NØSTEDE MEDLEMMER:" >> $PATHN\$file
foreach ($user in ((Get-QADgroup $uRetreive).get_nestedmembers() | Get-QADuser)) { 
   $temp = $user.get_displayname()
   Write-Output "Henter DisplayName $temp"
   $userNames += $temp
} 
foreach ($logon in ((Get-QADgroup $uRetreive).get_nestedmembers() | Get-QADuser)) { 
   $temp = $user.get_logonname()
   Write-Output "Henter LogonName $temp"
   $logonNames += $temp
} 
for ($X = 0; $X -lt $userNames.count; $X++) {
   $temp = $userNames[$X] + " -- " + $logonNames[$X]   
   Write-Output $temp >> $PATHN\$file
}

Write-Host "Resultatene finner du i $PATHN\$file."

DumpGroupMemberships.ps1
#Atle Holm - 2009

if ($args -eq "?") {
    Write-Host "Dette scriptet dumper gruppemedlemskaper til fil fra en bruker."
   Write-Host "Scriptet spør etter den aktuelle brukeren etter at det er startet."
    break
}

$uRetreive = Read-Host "Skriv inn bruker som skal hentes "
$groups = (Get-QADUser $uRetreive).memberof | Get-QADGroup
$file = "Dump-$uRetreive.log"
Write-Output "Bruker $uRetrieve har følgende gruppetilhørigheter:`n" >> "$file"

foreach ($group in $groups) {
   write-output "$group `n" >> "$file"
}
Write-Host "Resultatene finner du i $file."

AddMember2Groups.ps1
#Atle Holm - 2008/2009
#Sjekker om det er lagt ved et argument, som trengs
if (!$args) {
    Write-Host "Dette scriptet brukes feks slik:"
   Write-Host "AddMember2Groups.ps1 C:\obj.txt"
    Write-Host "Deretter vil scriptet spørre om nødvendige detaljer."
    break
} elseif ($args -match "/\?{1}") {
    Write-Host "Dette scriptet gjør et objekt til medlem av alle objekter listet i en tekstfil."
   Write-Host "Scriptet spør senere etter brukernavn/gruppenavn som skal ha de nye medlemskapene."
   Write-Host "AddMember2Groups.ps1 C:\obj.txt"
   break
}
if ($args.count -gt 1) {
   Write-Host "Du kan bare supplere ett argument med dette scriptet."
   Write-Host "AddMember2Groups.ps1 C:\obj.txt"
   break
}
$objekter = get-content $args
$target = Read-Host "Skriv inn navn på objekt som skal få de nye tilhørighetene"
foreach ($objekt in $objekter) {
   Add-QADGroupMember -Identity $objekt -Member $target
}

Perl
VisualBasic
BASH
Powershell