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 ";"
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 327697
Url: https://administrator.de/contentid/327697
Ausgedruckt am: 21.11.2024 um 20:11 Uhr
11 Kommentare
Neuester Kommentar
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