Powershell Variable mit einem Operator versehen
Moin, ich hab da ein Problem.
Das Script funtioniert ansich wunderbar, aber der SamAccountName aus der DEST Domäne (trust etc vorhanden, alles kein Problem) würde ich gerne mit einem -like versehen.
Es ist so das ein SamAccountName in der Quelldomäne test.benutzer heißen kann, allerdings durch ein automatismus in der Remotdomäne test.benutzer-11.
Wenn der SamAccountName in Quell und Source gleich ist, dann wird der logischerweise korrekt in die Variable geschrieben, wennn sich dieser aber noch in der Remote Domäne anders lautet mit einem Suffix, dann bleibt das Feld leer. Das möchte ich nicht.
Wie bekomem ich das mit diesem Parameter hin? -> -SamAccountName ($Member.samaccountname)
Ich habe schon einiges Versucht aber in der Ausgabe bleibt er leer.
Gruß
Pixel
Das Script funtioniert ansich wunderbar, aber der SamAccountName aus der DEST Domäne (trust etc vorhanden, alles kein Problem) würde ich gerne mit einem -like versehen.
Es ist so das ein SamAccountName in der Quelldomäne test.benutzer heißen kann, allerdings durch ein automatismus in der Remotdomäne test.benutzer-11.
Wenn der SamAccountName in Quell und Source gleich ist, dann wird der logischerweise korrekt in die Variable geschrieben, wennn sich dieser aber noch in der Remote Domäne anders lautet mit einem Suffix, dann bleibt das Feld leer. Das möchte ich nicht.
Wie bekomem ich das mit diesem Parameter hin? -> -SamAccountName ($Member.samaccountname)
Ich habe schon einiges Versucht aber in der Ausgabe bleibt er leer.
Gruß
Pixel
$destinationinfo= Get-QADUser -SearchRoot "DC=blabla,DC=blabla" -SamAccountName ($Member.samaccountname) –SerializeValues –DontUseDefaultIncludedProperties -IncludedProperties Name,SamAccountName,Postalcode,l,Mail,extensionAttribute1,useraccountcontrol | select Name,SamAccountName,Postalcode,l,Mail,extensionAttribute1,useraccountcontrol
Import-Module ActiveDirectory
$Groups = (Get-AdGroup -filter * | Where {$_.name -like "Eine-AD-Gruppe"} | select name -expandproperty name)
$Table = @()
$Record = [ordered]@{
"Gruppenname" = ""
"Name" = ""
"Benutzername-SRC" = ""
"Benutzername-DEST" = ""
"E-Mail" = ""
"UAC-SRC" = ""
"UAC-DEST" = ""
"Benutzerstatus-SRC" =""
}
Foreach ($Group in $Groups)
{
$Arrayofmembers = Get-ADGroupMember -identity $Group | get-aduser -properties * |select name,samaccountname,useraccountcontrol,enabled
Remove-Item ".\$Group-Mailadressen.csv" -ErrorAction SilentlyContinue
foreach ($Member in $Arrayofmembers)
{
$destinationinfo= Get-QADUser -SearchRoot "DC=blabla,DC=blabla" -SamAccountName ($Member.samaccountname) –SerializeValues –DontUseDefaultIncludedProperties -IncludedProperties Name,SamAccountName,Postalcode,l,Mail,extensionAttribute1,useraccountcontrol | select Name,SamAccountName,Postalcode,l,Mail,extensionAttribute1,useraccountcontrol
$Record."Gruppenname" = $Group
$Record."Name" = $Member.name
$Record."Benutzername-SRC" = $Member.samaccountname
$Record."Benutzername-DEST" = $destinationinfo.samaccountname
$Record."E-Mail" = $destinationinfo.mail
$Record."UAC-SRC"=$Member.useraccountcontrol
$Record."UAC-DEST"=$destinationinfo.userAccountControl
$Record."Benutzerstatus-SRC"=$Member.Enabled
$objRecord = New-Object PSObject -property $Record
$Table += $objrecord
$destinationinfo | export-csv ".\$Group-rMAIL.csv" -NoTypeInformation -Append -Encoding UNICODE -Delimiter ";"
}
}
$Table | ft -AutoSize
$Table | export-csv ".\$Group-Alles.csv" -NoTypeInformation -Encoding UNICODE -Delimiter ";"
Please also mark the comments that contributed to the solution of the article
Content-Key: 327697
Url: https://administrator.de/contentid/327697
Printed on: April 19, 2024 at 23:04 o'clock
11 Comments
Latest comment
Moin.
Du machst ja in Zeile 27 den Fehler das du exakt nach dem SamAccountName der Quelle suchst ... btw. warum nutzt du das Modul Get-QAdUser ?? Das ist doch schon längst obsolet und braucht es schon lange nicht mehr, denn die erweiterten Properties bekommst du auch so...
Gruß mik
Du machst ja in Zeile 27 den Fehler das du exakt nach dem SamAccountName der Quelle suchst ... btw. warum nutzt du das Modul Get-QAdUser ?? Das ist doch schon längst obsolet und braucht es schon lange nicht mehr, denn die erweiterten Properties bekommst du auch so...
$destinationinfo = Get-ADUser -Filter * -SearchRoot "DC=blabla,DC=blabla" -Properties Name,SamAccountName,Postalcode,l,Mail,extensionAttribute1,useraccountcontrol | ?{$_.SamAccountName -like "$($member.SamAccountName)*"}
Doch, klar geht das...
Kann ich diese Variable -SamAccountName ($Member.samaccountname) nicht mit einem Like Operator versehen??????
Nein, siehe oben nutze ein Where-Object (?{}) oder den Filter von Get-ADUser
Dann hast du den where Filter vergessen ... s.o. geht einwandfrei!
Scheinen noch die Grundlagen zu fehlen, hier lesen:
https://technet.microsoft.com/de-de/library/ee177028.aspx
Scheinen noch die Grundlagen zu fehlen, hier lesen:
https://technet.microsoft.com/de-de/library/ee177028.aspx
Sicher, schrieb ich doch ?{} ist eine Abkürzung für das where-object.
Du meinst den ?{$_.SamAccountName -like "$($member.SamccountName)*"} ?
Öhm schau mal genau hin, du hast einen Schreibfehler da fehlt ein a im Code ...$member.SamAccountName
Dann ist nämlich klar warum alle gelistet werden !Zitat von @pixel0815:
Stimmt. Hihihi.. Ist zwar super langsam jetzt, aber es funktioniert. Ich danke dir vielmals :o)
Naja, du kannst das ja auch direkt über den Filter von Get-AdUser machen statt mit where-object wie ich oben schon erwähnte, das ist immer schneller:Stimmt. Hihihi.. Ist zwar super langsam jetzt, aber es funktioniert. Ich danke dir vielmals :o)
$filter = "$($member.SamaccountName)*"
Get-AdUser -Filter {SamAccountname -like $filter} ......................
https://technet.microsoft.com/en-us/library/ee617241.aspx
Gruß mik