none
Errore Script powershell RRS feed

  • Domanda

  • Premesso che ho un Domain controller Windows 2008 r2 Powershell 5.1 , parto dal fatto che i nostri utenti AD hanno il campo attributo EmployeeID con un numero univoco identificativo, vorrei che tramite uno script di powershell potessi scrivere sul campo EmployeeNumber il C.F. Ho provato con uno script ma mi da errore. Lo script importa un file .csv dove c'è l'elenco di tutti i dati utenti dell'attributo EmployeeID, una volta verificato quello, il secondo dato dovrebbe scrivere il CF sul EmployeeNumber. Qualcuno ha suggerimenti ?

    ====Script======Non funzionante====

    Import-CSV "C:\AD\Users.csv" | % {
    $EmployeeID = $_.EmployeeID
    $ID = $_.EmployeeNumber
    $User = Get-ADUser -Filter {EmployeeID -eq $EmployeeID}
    Set-ADUser $User.samaccountname -EmployeeNumber $ID
    }

    mercoledì 6 luglio 2022 11:00

Risposte

  • Ho guardato bene il tuo codice cambiato, non sarebbe mai andato...
    prima ti avevo risposto dal cell ed era un po' tutto troppo piccolo!

    Import-CSV "C:\AD\users.csv" |%{ $ID = $_.EmployeeNumber $utente=$_.utente TRY { $user=Get-ADUser -Filter {samaccountname -eq $utente} Write-Host $user } Catch { Write-Host "Errore utente $utente" } TRY { Set-ADUser $User.samaccountname -EmployeeNumber $ID } Catch {
    write-host "Set-ADUser $($User.samaccountname) -EmployeeNumber $Id" Write-Host "Errore settando il C.F. utente $utente - $id"
    } }

    Usa questo


    Gastone Canali >


    Se alcuni post rispondono al tuo quesito, ricorda di contrassegnarli come risposta e non dimenticare anche i post utili. GRAZIE! Dai un occhio ai link Click Here and Here Leaderboard Here







    venerdì 8 luglio 2022 16:41
    Moderatore

Tutte le risposte

  • Potresti riportare l'errore, sarebbe utile per cercare di capire e darti una risposta

    Gastone Canali >


    Se alcuni post rispondono al tuo quesito, ricorda di contrassegnarli come risposta e non dimenticare anche i post utili. GRAZIE! Dai un occhio ai link Click Here and Here Leaderboard Here

    mercoledì 6 luglio 2022 22:37
    Moderatore
  • //==== queto è l'errore =======//

    Set-ADUser : Cannot convert 'System.Object[]' to the type 'Microsoft.ActiveDirectory.Management.ADUser' required by
    parameter 'Identity'. Specified method is not supported.
    At C:\ad\add_cf.ps1:6 char:12
    + Set-ADUser $user.samaccountname - EmployeeNumber $ID
    +            ~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidArgument: (:) [Set-ADUser], ParameterBindingException
        + FullyQualifiedErrorId : CannotConvertArgument,Microsoft.ActiveDirectory.Management.Commands.SetADUser

    grazie

    giovedì 7 luglio 2022 08:01
  • Dall'errore sembra che il parametro $ID non sia di tipo corretto

    Prova con un utente tuo es:

    Set-ADUser mario.rossi -EmployeeNumber 'MRARSS00A01F205E'


    Se funziona, modifica il tuo script così

    ....
    write-host "Set-ADUser $($User.samaccountname) -EmployeeNumber $ID"
    Set-ADUser $User.samaccountname -EmployeeNumber $ID
    ....

    e posta l'output della write  qui

    Ciao Gastone

    PS: via debug tu puoi vedere tutto, la write-host è per noi, servirebbe anche $id|gm


    Gastone Canali >


    Se alcuni post rispondono al tuo quesito, ricorda di contrassegnarli come risposta e non dimenticare anche i post utili. GRAZIE! Dai un occhio ai link Click Here and Here Leaderboard Here





    giovedì 7 luglio 2022 19:37
    Moderatore
  • Gentile Gastone,
    innanzitutto grazie per la tua risposta, il comando che hai postato
    Set-ADUser mario.rossi -EmployeeNumber 'MRARSS00A01F205E' funziona ma non riesco a farlo su tutte le righe del CSV per cui mi restituisce ancora degli errori.

    Ho modificato lo script così:

    Import-CSV "C:\AD\Users.csv" | % {
    $ID = $_.EmployeeNumber
    $User = Get-ADUser -Filter {utente -eq $User.samaccountname}
    Set-ADUser $User -EmployeeNumber $ID
    }

    ed il file csv contiene le seguenti righe:

    utente, employeenumber
    nome1.cognome1, codicefiscale1
    nome2.cognome2, codicefiscale2

    dove nome1.cognome1 e nome2.cognome2 sono gli accoutname di AD

    dove sbaglio?

    venerdì 8 luglio 2022 11:02
  • Secondo me non sbagli, c'è un problema in al alcune righe del CSV

    Gastone Canali >


    Se alcuni post rispondono al tuo quesito, ricorda di contrassegnarli come risposta e non dimenticare anche i post utili. GRAZIE! Dai un occhio ai link Click Here and Here Leaderboard Here

    venerdì 8 luglio 2022 11:07
    Moderatore
  • Ho guardato bene il tuo codice cambiato, non sarebbe mai andato...
    prima ti avevo risposto dal cell ed era un po' tutto troppo piccolo!

    Import-CSV "C:\AD\users.csv" |%{ $ID = $_.EmployeeNumber $utente=$_.utente TRY { $user=Get-ADUser -Filter {samaccountname -eq $utente} Write-Host $user } Catch { Write-Host "Errore utente $utente" } TRY { Set-ADUser $User.samaccountname -EmployeeNumber $ID } Catch {
    write-host "Set-ADUser $($User.samaccountname) -EmployeeNumber $Id" Write-Host "Errore settando il C.F. utente $utente - $id"
    } }

    Usa questo


    Gastone Canali >


    Se alcuni post rispondono al tuo quesito, ricorda di contrassegnarli come risposta e non dimenticare anche i post utili. GRAZIE! Dai un occhio ai link Click Here and Here Leaderboard Here







    venerdì 8 luglio 2022 16:41
    Moderatore