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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 590432
Url: https://administrator.de/contentid/590432
Ausgedruckt am: 22.11.2024 um 05:11 Uhr
4 Kommentare
Neuester Kommentar
Servus.
Kaffee rüber reich..., oder war's doch wieder der Freitag?
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, ...
If ($UserDetails.'Mobile,department') {
Was erwartest du davon ? 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?
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, ...