Avatar billede rasmuslh Nybegynder
16. november 2010 - 09:57 Der er 1 løsning

Modificere Powershell til at trække SID fra AD

Hej

En tidligere kollega har lavet/fundet et script der trækker AD-oplysninger ud til brug for rettighedsstyring i vores datawarehouse. Da han lavede det brugte han dog ikke SID på groups og users hvilket giver en del problemer.

Script finder alle de grupper som en bruger findes i og pivoterer det efterfølgende så man har en CSV-fil med to kolonner.

Er der en venlig sjæl der kan modificere dette script så jeg i stedet får SID'erne fra groups og users.

Jeg går ud fra det er her man i stedet skal hente SID attributen:

$str = $_.Name + ";" + $_.DN 


*****************************

# Add ActiveRoles ManagementShell
Add-PSSnapin Quest.ActiveRoles.AdManagement

# Write out relation between user and groups in this case group BM_BMSR


Remove-Item F:\Flatfile\ActiveDirectory\GroupMember.csv
#
# Get-QADGroup 'BM_BMSR*' -SizeLimit 0 | ForEach-Object{
Get-QADGroup -SizeLimit 0 | ForEach-Object{
$str = $_.Name + ";" + $_.DN 
if($_.Members){
    $_.Members | ForEach-Object {$str += ";" + (Get-QADUser $_).DN}
}
Out-file F:\Flatfile\ActiveDirectory\TmpGroupMember.csv -inputobject $str -encoding UTF8 -append
}

#Re-Read File and pivot member out on each line
$AllGroups = get-content F:\Flatfile\ActiveDirectory\TmpGroupMember.csv
foreach ($buf in $Allgroups) {
  $Element = $buf.split(";")
  $ElementCount=2
  foreach ($d in $Element) {
    #Clear-Variable $str
    $str = $Element[0] + ";" +  $Element[1] + ";" +  $Element[$ElementCount]
    if ($Element[$ElementCount] -ne $null ) {
      Out-file F:\Flatfile\ActiveDirectory\GroupMember.csv -inputobject $str -encoding UTF8 -append
    }
    $ElementCount += 1
   
  }
}

Remove-Item F:\Flatfile\ActiveDirectory\TmpGroupMember.csv


*****************
Avatar billede GooFY79 Nybegynder
26. november 2010 - 19:29 #1
Kan det her bruges?

Remove-Item F:\Flatfile\ActiveDirectory\GroupMember.csv
#
# Get-QADGroup 'BM_BMSR*' -SizeLimit 0 | ForEach-Object{
Get-QADGroup -SizeLimit 0 | ForEach-Object{
$str = $_.Name + ";" + $_.sid.value 
if($_.Members){
    $_.Members | ForEach-Object {$str += ";" + (Get-QADUser $_).sid.value}
}
Out-file F:\Flatfile\ActiveDirectory\TmpGroupMember.csv -inputobject $str -encoding UTF8 -append
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester