Untuk alasan di luar kendali saya, saya telah ditugaskan untuk menyiapkan GPO / GPP untuk menyebarkan 100+ printer kami ke 1000+ klien kami.
Berita baiknya adalah kami memiliki lebih dari selusin situs, dan sebagian besar, saya diizinkan untuk mendorong semua printer di situs X ke semua PC klien di situs X.
Berita buruknya adalah bahwa dua cara saya tahu bagaimana melakukannya ( "Menyebarkan dengan Kebijakan Grup ...", dari server cetak " dan menggunakan GPP / Group Policy Preferences ) melibatkan jauh lebih banyak pekerjaan manual daripada yang saya bersedia untuk ini banyak printer. Saya bahkan tidak bisa memilih semua printer di server cetak dan menggunakan Deploy with Group Policy...
opsi, misalnya - saya berharap untuk melakukan itu satu per satu, yang tidak akan terjadi. GPP lebih buruk lagi , seperti yang saya harapkan untuk memilih jalur printer dari server cetak dan kemudian secara manual memasukkan banyak informasi (seperti IP printer) yang seharusnya dapat diperoleh dari koneksi printer.
Google-Fu saya untuk skrip untuk menambahkan semua printer pada server cetak ke GPO / GPP muncul kosong, dan saya sepertinya tidak bisa melihat cara lain untuk melakukan ini bahkan dengan mode semi-otomatis, tapi saya bertahan dengan keyakinan bahwa saya kehilangan sesuatu, karena tidak mungkin orang waras akan memilih untuk secara manual menambahkan ratusan printer ke dalam GPO.
Idealnya, saya ingin mencari cara terprogram untuk menggunakan GPP, tetapi dalam situasi tersebut, solusi apa pun yang tidak melibatkan puluhan jam menambahkan printer secara manual akan sangat bagus.
Apakah ada yang punya cara untuk melakukan ini, atau saya perlu membuat skrip PowerShell dan / atau menipu bawahan untuk melakukan ini?
sumber
$GPM = New-Object -ComObject GPMgmt.Gpm
. Saya pikir antarmuka itu, walaupun menjadi babi mutlak untuk dikerjakan, mungkin memberi Anda metode yang sedikit lebih mendukung daripada sekadar meretas beberapa XML yang tampak dan berbau seperti GPO asli. Tidak ada yang suka COM. Paling tidak dari semua yang kami Powershellers.Jawaban:
Saya googled cukup keras, dan bahkan bermain-main dengan
backup-GPO
harapan bisa meretas file XML yang dihasilkan dan menggantinya, tetapi saya curiga bahwa skrip PowerShell ada di masa depan Anda.Tidak seburuk itu. Anda dapat membuat daftar printer dari server terdekat dan kemudian mengulanginya dan memetakannya.
Sesuatu seperti ini:
Jika printer dinamai hal-hal yang logis, dan ada beberapa cara logis untuk mengidentifikasi mesin, Anda mungkin dapat memperbaikinya lagi. Saya biasa memilih server terdekat berdasarkan menarik alamat IP klien, misalnya. Jika alamat IP seperti 10.20. *, Buka server1. Dll
Saya harap itu membantu.
Edit:
Melihat dokumentasi @ EvanAnderson, saya cukup yakin bahwa XML dapat diretas.
Sedikit file saya yang diekspor (dengan redaksi) yang relevan:
sumber
Menurut pendapat saya, manajemen Powershell Kebijakan Grup menyebalkan tanpa produk pihak ketiga (komersial).
Saya pikir Anda terjebak slinging melalui XML (atau dalam HTML jika Anda suka ) di Objek Kebijakan Grup untuk melakukan apa yang Anda cari.
Untungnya XML tidak terlihat menakutkan . Nilai UID per-printer (yang saya percaya adalah yang dimaksud oleh @KatherineVillyard dalam komentarnya) hanyalah GUID acak yang dibuat untuk setiap printer yang direferensikan dalam XML.
Berikut ini beberapa contoh kode Powershell, yang dimodelkan dengan tanpa malu-malu setelah kode Katherine:
(Saya menulis kode Powershell yang benar-benar jelek.)
Saya belum benar-benar mencoba agar GPP CSE mem-parsing XML ini. XML setidaknya memvalidasi.
Saya mulai berpikir tentang menulis beberapa monstrositas menggunakan
Get-GPO
dan menguraikan GUID untuk sampai ke jalur sistem file untuk GPO di SYSVOL tetapi, mengingat bahwa saya perlu melakukan beberapa pekerjaan nyata malam ini, saya pikir saya akan pergi itu sebagai latihan untuk pembaca. > tersenyum <Namun, itu seharusnya sangat layak.sumber
Saya baru-baru ini melakukan proyek serupa dan setelah melihat ke dalam metode push GPO yang bagus vs GPP yang lebih baru vs scripting, saya memilih untuk menulis semuanya. Saya tidak tahu apa yang terbaik untuk Anda, tetapi berikut adalah beberapa petunjuk untuk Anda:
Idealnya gunakan klien dengan OS baru (Windows 8/2012 +) untuk terhubung ke server cetak dan mendapatkan informasi Printer dari Server Cetak:
Get-Printer -Computer PrintServerName
Gunakan grup Keamanan AD untuk memetakan antrian cetak ke komputer. Jadi misalkan Anda memiliki antrian cetak (Anda berkumpul dari perintah di atas) bernama \ PrintServer1 \ MyColorPrinter123, buat grup keamanan seperti printer.group.PrintServer1.MyColorPrinter123, dan tambahkan komputer ke grup itu
Dalam skrip startup, memiliki fungsi untuk memeriksa keanggotaan grup komputer saat akan muncul, dan melihat apakah itu merupakan bagian dari grup printer apa pun. Jika ya, gunakan perintah printui.exe (atau printui.dll) bawaan untuk memetakan printer seperti ini
Invoke-Expression 'rundll32 printui.dll, PrintUIEntry / ga / n "\ PrintServer1 \ MyColorPrinter123" / q'
Setelah komputer menyala, layanan spooler cetak itu akan mendorong 'koneksi cetak', yang biasa dilakukan GPO, kepada setiap pengguna yang akan masuk.
Anda bisa menjadi jauh lebih detail ** tetapi pada level tinggi itulah yang dibutuhkan.
** Saya membuat GUI yang memungkinkan pengguna (benar-benar teknisi) untuk memilih Print Server, dan memberi mereka daftar printer di server itu. Jika mereka memilih satu, mereka dapat melihat semua properti itu. Info itu berasal dari Get-Printer yang saya sebutkan di atas. Jika Anda mengekspor data itu sebagai csv, Anda dapat menggunakannya kembali untuk menampilkan informasi ..
** Teknisi menggunakan GUI itu untuk mengirim permintaan untuk menambahkan komputer ke printer yang seharusnya terhubung. Ini adalah 'permintaan', tetapi mereka tidak memiliki izin dalam AD.
** Skrip backend sederhana menonton folder dan menambahkan komputer ke grup printer yang saya sebutkan di atas. Jadi, jika Anda sudah tahu siapa yang harus mendapatkan printer mana, hebat, Anda bisa dengan mudah melakukannya. Menambahkan komputer ke grup adalah pekerjaan mudah dengan Cmdlet AD.
** Anda juga dapat menjadwalkan pekerjaan untuk memeriksa server cetak untuk melihat apakah ada antrian cetak baru, dan membandingkannya dengan Anda grup AD.
Jadi, menciptakan solusi yang 'terkelola' sedikit terlibat, tetapi mudah untuk memulai dengan dasar-dasar dan terus menambahkan untuk memiliki sistem yang sangat fleksibel, mudah digunakan yang tidak melibatkan GPO ... hanya sedikit PowerShell
sumber