pixel0815
Goto Top

Kostenstelle in Ausgabe hinzufügen

Moin zusammen,

$csv = Import-CSV 'Test.csv' -Delimiter ";" -Encoding Unicode  
$aduser = Get-ADUser -Filter * -Properties Surname,Givenname,LastLogonDate,EmailAddress,Enabled

function Umlaute-Ersetzen([string]$text){
    return [regex]::Replace($text,'(?i)[äöüß]',{param($m) switch -CaseSensitive ($m){'ä'{'ae'};'ü'{'ue'};'ö'{'oe'};'ß'{'ss'};'Ä'{'Ae'};'Ü'{'Ue'};'Ö'{'Oe'}}})  
}

$csv | %{
    $sn = $_.Nachname
    $gn = $_.Vorname

    $kst = $_.Kostenstelle -> Neu hinzugekommen 

    $user = $aduser | ?{($_.Surname -like "*$sn*" -and $_.GivenName -like "*$gn*") -or ($_.Surname -like (Umlaute-Ersetzen "*$sn*") -and $_.GivenName -like (Umlaute-Ersetzen "*$gn*" ))}  

    if($user){$user}else{[pscustomobject]@{SamAccountName="-NONEXISTENT-";Name="$sn, $gn"}}  

} | select Surname,Givenname,Name,SamAccountName,EmailAddress,Enabled,LastLogonDate

$kst = $_.Kostenstelle ist neu hinzugekommen, dort steht die Kostenstelle.

Ich möchte diese gerne mit dem select ausgeben lassen. Es klappt nicht. Was mache ich falsch?

Gruß

Content-ID: 349477

Url: https://administrator.de/forum/kostenstelle-in-ausgabe-hinzufuegen-349477.html

Ausgedruckt am: 22.12.2024 um 12:12 Uhr

133883
133883 19.09.2017 aktualisiert um 09:56:30 Uhr
Goto Top
In Zeile 2 unter Properties muss das Feld mit aufgelistet werden damit es selektiert werden kann!

Gruß
pixel0815
pixel0815 19.09.2017 um 10:08:10 Uhr
Goto Top
Die Kostenstelle ist nur in der CSV enthalten. Diese wird nicht im AD gepflegt.
133883
133883 19.09.2017 aktualisiert um 10:14:23 Uhr
Goto Top
$csv = Import-CSV 'Test.csv' -Delimiter ";" -Encoding Unicode  
$aduser = Get-ADUser -Filter * -Properties Surname,Givenname,LastLogonDate,EmailAddress,Enabled

function Umlaute-Ersetzen([string]$text){
    return [regex]::Replace($text,'(?i)[äöüß]',{param($m) switch -CaseSensitive ($m){'ä'{'ae'};'ü'{'ue'};'ö'{'oe'};'ß'{'ss'};'Ä'{'Ae'};'Ü'{'Ue'};'Ö'{'Oe'}}})  
}

$csv | %{
    $sn = $_.Nachname
    $gn = $_.Vorname

    $kst = $_.Kostenstelle

    $user = $aduser | ?{($_.Surname -like "*$sn*" -and $_.GivenName -like "*$gn*") -or ($_.Surname -like (Umlaute-Ersetzen "*$sn*") -and $_.GivenName -like (Umlaute-Ersetzen "*$gn*" ))}  

    if($user){
       $user | select *,@{n='Kostenstelle';e={$kst}}  
   }else{[pscustomobject]@{SamAccountName="-NONEXISTENT-";Name="$sn, $gn"}}  

} | select Surname,Givenname,Name,SamAccountName,EmailAddress,Enabled,LastLogonDate,Kostenstelle
https://technet.microsoft.com/en-us/library/ff730948.aspx
pixel0815
pixel0815 19.09.2017 um 10:29:49 Uhr
Goto Top
Das funktioniert super! Dankeschön!
Wenn ich jetzt noch andere Dinge aus der CSV anhängen will, dann muss ich das hier ja erweitern.

$user | select *,@{n='Kostenstelle';e={$kst}} oder?
133883
133883 19.09.2017 um 11:06:27 Uhr
Goto Top
Beantwortet sich von selbst wenn du beide Skripts vergleichst.