Microsoft melakukan semua yang dapat dilakukan untuk menjadikan PowerShell sebagai pilihan pengguna listrik dan penulis otomasi di mana saja. Lewat sudah hari-hari menyusun kode dalam. NET untuk melakukan hal yang sama, sekarang Anda hanya perlu notepad.exe dan google. Kami penggemar beratnya di kantor, terutama karena Konsol Manajemen Exchange 2007 TIDAK termasuk semua yang dapat Anda lakukan di PowerShell. Microsoft sengaja gagal menerapkan hal-hal yang hanya dilakukan sesekali saja, lebih mudah untuk mengembangkannya, yang benar-benar memaksa penggunaannya jika Anda memiliki sesuatu yang menyerupai lingkungan yang kompleks.
Mengelola produk generasi baru Microsoft (Win7, Windows Server 2008, Exchange 2007/2010, SQL Server 2008) semuanya memiliki kait PowerShell yang sangat kaya. Setelah Remote Powershell (PowerShell 2.0 IIRC) dikerahkan dengan Server 2008 R2, itu akan menjadi LEBIH BANYAK berguna bagi penulis otomatisasi.
Apa yang telah kami lakukan dengan itu:
- Buat halaman web untuk mendelegasikan tugas admin tertentu ke helpdesk pengguna. Halaman web menjalankan perintah yang dijalankan di PowerShell. Hal-hal yang dilakukannya:
- Membuat dan menghapus akun pengguna, termasuk menyediakan kotak surat Exchange 2007 dan direktori home
- Buka kunci akun yang terkunci
- Buat / hapus grup
- Tambahkan / hapus pengguna dari grup
- Pindahkan pengguna di antara toko surat
- Setel kata sandi
- Ambil ekstrak dari sistem ERP dan dorong data buku alamat global ke Direktori Aktif setiap malam.
- Memecahkan masalah LegacyExchangeDN yang muncul dengan migrasi Exchange 2003 ke Exchange 2007 kami. Harus menambahkan alamat X500 ke semua orang yang dulu ada di Exchange 2003. Skrip PowerShell yang cukup pendek memperbaikinya.
- Pembuatan "kotak surat grup" yang dibuat secara skrip (kotak surat bersama di Exchange tempat banyak pengguna memiliki akses ke kotak surat), suatu proses manual karena sifat data yang kita butuhkan sebelum memulai. Ini sangat menstandarkan pengaturan kotak surat ini.
- Membuat skrip yang berjalan melalui semua mesin domained mengatur ulang kunci registri tertentu dan memulai kembali layanan. Butuh 18 jam untuk menyelesaikannya, tetapi itu menyelesaikan pekerjaan.
Jadi ya, PowerShell akan bersama kami untuk beberapa waktu.
EDIT : Menambahkan sampel kode, karena diminta
$ list = import-csv ("groupusers.csv")
$ lastseengroup = $ list [0] .group
$ ADGroupPrefix = "grp.netware."
$ ADGroupSuffix = "{redacted - dalam format, ou = grup, dc = domain, dc = domain, dc = domain}"
Hapus daftar anggota Variabel
Pengguna yang tidak diketahui variabel-jelas
foreach ($ entri dalam $ daftar) {
if ($ ($ entry.group) -ne $ lastseengroup) {
echo "tersandung di grup baru $ ($ entry.group), melakukan perubahan pada $ lastseengroup"
$ newgroup = $ ADgroupPrefix + $ lastseengroup
$ newgroupdn = '"' +" cn = $ newgroup $ ADGroupSuffix "+ '"'
gema "mendapatkan DN untuk $ newgroup"
$ existinggroup = dsquery group domainroot -name $ newgroup
if (($ existinggroup -ne $ null)) {
grup dsmod $ newgroupdn -chmbr $ daftar anggota
} lain {
dsadd grup $ newgroupdn -cakupan u -secgrp yes -members $ memberlist -desc "Grup yang diimpor dari eDirectory"
}
Hapus daftar anggota Variabel
}
$ User = get-user $ ($ entry.member) -ErrorAction SilentlyContinue
if ($ User.isvalid) {
$ UserDN = $ User.distinguishedname
$ memberlist = $ memberlist + '"' +" $ UserDN "+ '"'
} lain {
$ unknownusers = $ unknownusers + $ ($ entry.member)
}
$ lastseengroup = $ ($ entry.group)
}
dsadd group "cn = $ ADGroupPrefix $ lastseengroup $ ADGroupSuffix" -scope u -secgrp yes -members $ memberlist
Ini membutuhkan file CSV yang dibuat dengan skrip perl dan memperbarui serangkaian grup. Jika grup sudah ada, itu menggantikan keanggotaan dengan yang ditentukan dalam file. Jika grup tidak ada, itu yang membuatnya. Ini adalah sinkronisasi satu arah. Juga, belum cukup dalam produksi, tetapi tutup.