Linuxy potrzebują parametru msSFU30GidNumber żeby widziały grupy z Active Directory. Do tej pory pojedyńcze MsSFUGidy robiliśmy ręcznie z ADSIEdit, jednak kiedy przyszło ponad sto nowych grup to trzeba było to jakoś oskryptować.

Skrypt poniżej:

  1. znajduje maksymalny MsSFUGid w domenie
  2. wszystkim grupom, które nie mają msSFUGID przypisuje kolejne numery 

Jego wadą jest to, że dodaje Gidy wszystkim grupom ale to można zmienić np. poprzez ustawienie odpowiedniego roota przed drugą pętla.

$Root = New-Object DirectoryServices.DirectoryEntry $strROOT
$Searcher = New-Object DirectoryServices.DirectorySearcher
$Searcher.SearchRoot = $root
$searcher.Filter =  "(&(objectClass=Group))";
$numer = 0;
$gid ;
$groups = $searcher.findAll();
foreach ($group in $groups)
{
   $de = New-Object DirectoryServices.DirectoryEntry $group.Path;
   $gid = [int]$de.msSFU30GidNumber.ToString();
#  write-host $gid ";" -NoNewLine;
#  write-host $de.name;
   if ($numer -lt $gid )
   {
     $numer = $gid;
#    $numer;
   }
}
$numer++;

foreach ($group in $groups)
{
  $de = New-Object DirectoryServices.DirectoryEntry $group.Path;
  $gid = [int]$de.msSFU30GidNumber.ToString();
  if ($gid -eq 0)
  {
    $de.msSFU30GidNumber = $numer;
    $de.SetInfo();
    write-host $numer ";" -NoNewLine;
    write-host $de.name;
    $numer++;
  }
}

-o((:: sprEad the l0ve ::))o-

Comments (3)

  1. Odpowiedz

    Hmmm … to jak tych grup sie robi wiecej to bym jednak popracowal nad tymi filtrami w zapytaniach bo optymalne to one nie są.
    Co do samego zadania … pisanie skryptow fajna rzecz … nie wiem tylko czy nie szybciej napisac jedno polecenie z uzyciem adfind i admod … co prawda odpowiednia wartość trzeba znać wcześniej ale cóż … to też się da wyciągnąć z katalogu :).

  2. kfaz

    Odpowiedz

    Ja zdecydowanie wolę skryptować niż bawić się w pipe z poziomu cmd. Powershell wydaje mi się być do tego dużo lepszym narzędziem.
    Czy z filtrami chodzi Ci o to, że przed drugą pętlą można by było dodać (&(objectClass=Group)(!(msSFU30GidNumber=*)) i przez to uniknąć ifa?

  3. Odpowiedz

    ja na skrypty tez mam skrzywnienie (; to po prostu fajna zabawa i owocuje na przyszlosc [tak sobie zawsze powtarzam jak trace godziny na pisanie (; ]

Skomentuj kfaz Anuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Time limit is exhausted. Please reload CAPTCHA.