Anda dapat menggunakanImpor-CSVPowerShell cmdlet untuk membaca konten file CSV. Setelah Anda memuat isi file CSV, Anda mendapatkan objek PowerShell di mana setiap kolom dari file CSV adalah properti terpisah. Artikel ini membahas spesifik data membaca dari file CSV dengan menggunakan cmdlet impor-CSV.
File CSV digunakan untuk menyimpan data tabel. Misalnya, kami telah membuat spreadsheet Excel sederhana yang berisi info pengguna iklan dengan struktur berikut:ADlogin,Email,Phone,Department. Perhatikan bahwa baris pertama spreadsheet berisi nama kolom. Di PowerShell, ini akan tersedia sebagai atribut objek dalam array.
Tugas kami adalah mengimpor file CSV ini ke PowerShell dan membuat perubahan ke Active Directory untuk setiap pengguna dari file.
Dalam artikel sebelumnya, kami menjelaskan cara menggunakan cmdlet Export-CSV untuk menyimpan objek PowerShell ke file CSV.

Simpan file Excel ini sebagai file CSV dengan nilai yang dipisahkan koma. File teks yang dihasilkan akan terlihat seperti ini:


Sekarang, untuk mengimpor file CSV ke PowerShell, yang harus Anda lakukan adalah menentukan namanya (path):
$ADUsers=Import-CSV -path C:PSmy_ad_users.csv
CMDlet Impor-CSV mengubah data dari file CSV menjadi array PowerShell.
Jika file CSV menggunakan pembatas selain koma, Anda dapat menentukannya dengan-Delimiterparameter. Misalnya, untuk mengimpor file CSV dengan pembatas titik koma (;) Gunakan perintah:
$ADUsers=Import-CSV -path C:PSmy_ad_users.csv -Delimiter ";"
Jika Anda menggunakan karakter tab sebagai pembatas dalam CSV, Anda dapat menentukannya sebagai berikut:-Delimiter `t
Jika Anda ingin menggunakan default pembatas di sistem Anda (tergantung pada pengaturan bahasa dan windows regional), gunakan-UseCulturebendera.
Jalankan perintah ini untuk mendapatkan pembatas default sistem Anda di Windows:
(Get-Culture).TextInfo.ListSeparator
Sekarang jika Anda memanggil variabel $ Adusers, itu akan menampilkan konten file CSV Anda. Cmdlet mengonversi konten file menjadi array. Semua nilai dari file CSV direpresentasikan sebagai baris.
Jika file CSV Anda berisi pengkodean karakter UTF-8, pastikan Anda juga menentukan tipe UTF8 untuk menghindari kesalahan pengkodean:
Lihat juga:
Import-CSV -path C:PSmy_ad_users.csv -Encoding UTF8
Daftar properti objek yang tersedia dapat ditampilkan sebagai berikut:
$ADUsers|get-member
Anda dapat melihat bahwa baris array berisi pScustomObjects, elemen yang dapat diakses oleh nama kolom dari file CSV Anda.

Anda dapat menampilkan semua nilai dari kolom tertentu:
$ADusers.email
Atau atribut objek yang ditentukan:
$ADusers| Select-Object Email, Phone


Opsi lain yang berguna adalah mengakses objek tertentu dalam array secara langsung. Misalnya, jalankan perintah berikut untuk mendapatkan nilai baris 4 (penomoran dimulai pada 0):
$ADusers[3]


Jika Anda ingin mengubah atribut pengguna Direktori Aktif yang telah Anda tentukan dalam file CSV Anda, cukup gunakan loop foreach untuk mengulangi semua baris dalam array $ adusers (kami akan menggunakan cmdlet set-aduser dari modul AD PowerShell untuk membuat perubahan).
# Iterating over all the rows in the array one by one
$ADUsers | ForEach-Object {
# In this example, the $_. statement means we are accessing the current row of the array You can get the value of a particular column from the current row by accessing it by the column name. For example, to display the ADLogin value from the current line:
Write-host $_.ADLogin
# Now we search for a user in AD by the value of the ADLogin column and change its attribute values:
Set-ADUser -Identity $_.AdLogin -MobilePhone $_.Phone –Department $_.Department –EmailAddress $_.Email
}
Anda dapat mengganti skrip ini dengan PowerShell One-Liner yang lebih kompak:
Import-Csv C:PSmy_ad_users.csv | foreach {Set-ADUser -Identity $_.AdLogin -MobilePhone $_.Phone –Department $_.Department –EmailAddress $_.Email}
Terkadang Anda mungkin menemukan format di bawah ini lebih nyaman. Di sini kami mengakses baris array saat ini melalui$UserVariabel Kami Definisi dalam Pernyataan Foreach:
ForEach ($User in $ADUsers){
$samaccountname = $User.ADlogin
$email = $user.Email
Write-host $samaccountname
Write-host $email
}
Dalam beberapa kasus, saat memproses elemen array dari file CSV, Anda mungkin perlu menambahkan kolom tambahan ke array. Misalnya, jika Anda ingin menambahkan tanggal saat ini ke objek $ Adusers:
$ADUsers | add-member -membertype NoteProperty -name Date -value (Get-Date -Format dd/MM/yyyy)


Berikut adalah lebih banyak skenario di mana Anda dapat menggunakan cmdlet impor-CSV untuk melakukan operasi administrasi pada sejumlah besar objek:
- Ekspor kotak surat pertukaran ke file PST:
Import-CSV "C:psuser_to_export_pst.csv" | ForEach {New-MailboxExportRequest -Mailbox $_.username -FilePath $_.UNCPathtoPst - Tambahkan pengguna ke grup keamanan iklan dengan PowerShell: i
mport-CSV .users.csv -Header users | ForEach-Object {Add-AdGroupMember -Identity ‘TestADGroup’ -members $_.users}
Atau kasus serupa untuk menambahkan pengguna ke grup Microsoft Entra ID (Azure AD):Import-CSV "C:PSadd_m365_members.csv" | ForEach-Object {
Add-UnifiedGroupLinks –Identity it_dept –LinkType Members –Links $_.member
} - Dapatkan informasi tentang pengguna dari iklan:
Import-Csv c:psusernsme_list.csv | ForEach {Atau gunakan set-aduser untuk mengubah atribut pengguna tertentu:
Get-ADUser -identity $_.user -Properties Name, telephoneNumber |
Select Name, telephoneNumber |
Export-CSV c:psexport_ad_list.csv -Append -Encoding UTF8
}Import-Csv "C:psmodifyad_users.csv" | foreach {Set-ADUser -Identity $_.SamAccountName –Title $_.Title -MobilePhone $_.MobilePhone}Perbarui foto pengguna di Active Directory:Import-Csv C:PSimport.csv |%{Set-ADUser -Identity $_.AD_username -Replace @{thumbnailPhoto=([byte[]](Get-Content $_.Photo -Encoding byte))}} - Buat pengguna curah di Active Directory dari daftar dalam file CSV.














