lichtknopf
Goto Top

Set-aduser from csv

Guten Morgen liebe Community,

Ich möchte das unser HR wenn es für einen Mitarbeiter Attribut änderung gibt, eine CSV datei füttert und ich Sie importiere.
ich weis dieses Thema gabs ein paar mal hier schon jedoch seh ich meinen Fehler in dem Skript nicht, da ich auch noch ein powershell Neuling bin.
Mein Skript läuft zwar ohne Fehler durch, jedoch ohne eine Änderungen an den Attributen. Out-GridView wird mir auch nicht angezeigt.

Danke schon mal für die mühe
                                              
$UsersCSV = Import-CSV "C:\Users\admini\Desktop\HRChngFinal.csv"  
$Results = @()
 
ForEach ($User in $UsersCSV) {
    $Username = $User.username.trim() 
    $Number = $User.mobile.trim()
    $company = $user.company.trim()
    $department = $user.department.trim()
    $ipphone = $user.ipphone.trim()
    $title = $user.title.trim()
    $UserDetails = $null
    $UserCheck = $null
 
    Try{
        $UserDetails = Get-ADUser -Identity $Username -Properties Mobile,company,department,ipphone,title
    }
    Catch{
        $_.Exception.Message
        Continue
    }
 
    If ($UserDetails.'Mobile,department') {  
        Try{
            Set-ADUser -Identity $username -replace @{ 'Mobile' = $($Number);"company" = $($company); "department" = $($Department);"ipphone" = $($ipphone); "title" = $($title) }   
            $UserCheck = Get-ADUser -Identity $Username -Properties mobile,company, department, ipphone,l,title -ErrorAction ignore 
            If ($UserCheck) {
                $Object = New-Object PSObject -Property ([ordered]@{ 
     
                    "User name"               = $Username  
                    "Mobile"                  = $Mobile   
                    "company"                 = $company  
                    "Department"              = $department  
                    "ipphone"                 = $ipphone  
                    "title"                   = $title  
                          
                })
  
                $Results += $Object
            }
        }
        Catch{
            $_.Exception.Message
            Continue
        }
    }      
}
 
$Results |Out-GridView
   

Content-Key: 590432

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

Printed on: April 26, 2024 at 10:04 o'clock

Member: SlainteMhath
SlainteMhath Jul 24, 2020 at 08:01:59 (UTC)
Goto Top
Moin,

bitte Codetags verweden, so ist as nicht lesbar.

lg,
Slainte
Member: Lichtknopf
Lichtknopf Jul 24, 2020 at 08:07:57 (UTC)
Goto Top
Danke für den Hinweis, gerade geändert.
Member: colinardo
Solution colinardo Jul 24, 2020 updated at 08:25:16 (UTC)
Goto Top
Servus.
If ($UserDetails.'Mobile,department') {
Was erwartest du davon ? face-wink Diese Eigenschaft hat das User-Objekt nicht, ergo keine Änderung am Userobjekt (if Bedingung greift nicht), ergo keine Ergebnisse am $results Objekt, ergo kein Grid-View weil $results leer.

Kaffee rüber reich..., oder war's doch wieder der Freitag? face-wink

Grüße Uwe

btw. pass auf wenn du Felder auf einen leeren String änderst bzw. löschst, das geht mit Replace nicht, in diesen Fällen muss man -Clear benutzen. Insgesamt musst du bei dem Skript noch eine Menge nacharbeiten wenn es wasserdicht sein soll, ...
Member: Lichtknopf
Lichtknopf Jul 24, 2020 updated at 08:25:57 (UTC)
Goto Top
Meine Fresse bin ich Blind, ich danke dir.
Einen Schönen Haitag und ein erholsames Rochenende.