Bagaimana cara membuat kontak AD secara massal? Saya mencoba sesuatu seperti ini. Saya hanya memiliki Nama Depan dan Belakang di CSV saya.

$CSVPath = "C:\mycontacts.csv"

Import-Csv $CSVPath | foreach{New-ADObject -Type Contact -Name $_.FirstName - OtherAttributes @{'FirstName'=$_.FirstName;'LastName'=$_.LastName} - Path "OU=Contacts,OU=Lab,DC=MYDC,DC=com"}

Ini adalah pesan kesalahan saya: New-ADObject : Tidak dapat memvalidasi argumen pada parameter 'Nama'. Argumennya nol atau kosong. Berikan argumen yang tidak nol atau kosong, lalu coba perintah lagi. Pada baris:3 karakter:64

enter image description here

Ini CSV saya

0
Ivan Radunković 19 November 2020, 15:45

1 menjawab

Jawaban Terbaik

Terima kasih telah menunjukkan kepada kami file csv yang sedang Anda kerjakan.

Kita sekarang bisa melihat karakter pembatas yang digunakan adalah titik koma.

Perbaiki kode dengan memberi tahu Import-Csv bahwa kode tidak boleh menggunakan koma default dengan menambahkan parameter -Delimiter:

Import-Csv $CSVPath -Delimiter ';' | ForEach-Object {
    New-ADObject -Type Contact -Name $_.FirstName -DisplayName ('{0} {1}' -f $_.FirstName, $_.LastName) -Path "OU=Contacts,OU=Lab,DC=MYDC,DC=com"
}

Juga, Anda telah menambahkan spasi antara tanda hubung dan nama parameter di sini - OtherAttributes dan di sini - Path yang seharusnya tidak ada.

Mungkin juga, saya dapat menarik minat Anda untuk mulai menggunakan Memotong pada cmdlet yang dapat mengambil banyak parameter.
Ini akan membantu Anda menjaga agar kode Anda tetap dapat dibaca dan dipelihara dengan tidak harus menggunakan baris kode yang panjang.. PANJANG.

Import-Csv $CSVPath -Delimiter ';' | ForEach-Object {
    $splat = @{
        Type        = 'Contact'
        Name        = $_.FirstName
        Path        = "OU=Contacts,OU=Lab,DC=MYDC,DC=com"
        DisplayName = '{0} {1}' -f $_.FirstName, $_.LastName
        # more parameters can be set here, mostly using 'OtherAttributes'
        # make sure you use the LDAP attribute names with correct casing
        OtherAttributes = @{'givenName'      = $_.FirstName
                            'sn'             = $_.LastName
                            'mail'           = $_.EmailAddress
                            'proxyAddresses' = $_.EmailAddress
                           }        }
    New-ADObject @splat
}

Catatan: Item OtherAttributes memungkinkan Anda menyetel lebih banyak atribut AD menggunakan Hashtable daripada yang ditawarkan Get-ADObject cmdlet melalui parameter normalnya.
Berhati-hatilah di sini bahwa Anda menggunakan nama atribut LDAP dalam huruf besar/kecil yang benar.
Nama atribut LDAP dapat ditemukan misalnya di sini

2
Theo 20 November 2020, 10:02