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-Key: 349477

Url: https://administrator.de/contentid/349477

Printed on: April 25, 2024 at 00:04 o'clock

Mitglied: 133883
133883 Sep 19, 2017 updated at 07:56:30 (UTC)
Goto Top
In Zeile 2 unter Properties muss das Feld mit aufgelistet werden damit es selektiert werden kann!

Gruß
Member: pixel0815
pixel0815 Sep 19, 2017 at 08:08:10 (UTC)
Goto Top
Die Kostenstelle ist nur in der CSV enthalten. Diese wird nicht im AD gepflegt.
Mitglied: 133883
133883 Sep 19, 2017 updated at 08:14:23 (UTC)
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
Member: pixel0815
pixel0815 Sep 19, 2017 at 08:29:49 (UTC)
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?
Mitglied: 133883
133883 Sep 19, 2017 at 09:06:27 (UTC)
Goto Top
Beantwortet sich von selbst wenn du beide Skripts vergleichst.