از اونجایی که SCCM هیچ برنامه ای برای نصب درایور پرینتر نداره و برای هندل کردن نصب پرینتر هیچ مکانیسمی درونش وجود نداره بنابر این از اسکریپت های خود ویندوز کمک میگیریم که خیلی هم عالی هستن ، این اسکریپت مثل همیشه با VBS نوشته شده و در چند مرحله پرینتر رو نصب میکنه ، تو این قسمت برای نصب پرینتر از متد Application استفاده میکنیم.
فرض رو بر این میگیریم شما دپلوی نرم افزار با استفاده از Application رو بلدید اگر خیر میتونید به آموزش دپلوی آفیس نگاهی بندازید, پس من میرم سر اصل مطلب.
یک فولدر در مسیر سورس Application ها بسازید و فایلهای Prnport.vbs - Prndrvr.vbs - prnmngr.vbs
از مسیر زیر کپی کنید در فولدر Share شده
%SystemRoot%\System32\Printing_Admin_Scripts\
بطور مثال در این مسیر کپی کنید ( توجه داشته باشید این مسیر باید Share شده باشد
\\sccm2016\Source\Printer\CRM\
یک فولدر Drivers ایجاد کنید و درایور پرینتر مورد نظر رو Extract کنید و ود رداخل اون فولدر قرار بدید
\\sccm2016\Source\Printer\CRM\Drivers
اسکریپت زیر رو در داخل یک فایل با اسم install.cmd کپی کنید و فایل رو ذخیره کنید.
@ECHO OFF
REM Create Port
cscript "Prnport.vbs" -a -r CRM-Printer -h 192.168.202.52 -o raw -n 9100
REM Install Driver
cscript "Prndrvr.vbs" -a -m "HP LaserJet 500 color M551 PCL6" -i "%cd%\Drivers\hpcm500u.inf"
REM Create Printer
cscript "prnmngr.vbs" -a -p "CRM-Printer1" -m "HP LaserJet 500 color M551 PCL6" -r CRM-Printer
Set Default Printer
cscript "prnmngr.vbs" -t -p "CRM-Printer1"
Exit
چطوری مدل درایور دستگاه رو پیدا کنیم : ما اینجا از پرینتر HP LaserJet 500 color M551 استفاده میکنیم ، میتونید فایل INF رو باز کنید و این مدل رو تو اون پیدا کنید. اسم درایور رو باید دقیقا مطابق با اسمی که تو فایل مشخص هست یادداشت کنید و درBatch قرار بدید .

cscript "prnmngr.vbs" -a -p "CRM-Printer1" -m "HP LaserJet 500 color M551 PCL6" -r CRM-Printer

اگر پیدا کردن مدل دقیق براتون سخته یکبار پرینتر رو روی سیستم نصب کنید و درSystem Information همون نام رو باید در یکی از INF های درایور پیدا کنید.
اسکریپت ما 3 تا کار مهم رو انجام میده که باید پشت سر هم باشه و 3 تا هم باید انجام بشه
1- ایجاد پورت
2- ایجاد درایور پرینتر
3- ایجاد نام پرینتر
در مرحله تشخیص این که آیا پرینتر قبلا نصب شده یا خیر، میتونیم از روش تشخیص رجیستری استفاده کنیم
من دوتا Detection گذاشتم که حتی اسم پرینتر حذف شد مراحل نصب پرینتر دوباره اجرا بشه .
دوتا مسیر رجیستری رو براتون قرار میدم .(میتونید از یکیش استفاده کنید)


تشخیص دومی برای نصب بودن پورت مربوطه و تشخیص اینکه آی پی پرینتر همونیه که ما میخواهیم باشه .

یک نکته : برای دپلوی کردن پرینترهایی که یوزر مربوطه ادمین لوکال نیست باید یک مرحله تنظیمات در GPO انجام بشه تا Non admin local ها اجازه نصب درایور پرینتر رو داشته باشند . در غیر اینصورت اسکریپت مربوطه هیچ عملی انجام نمیده .
این پالیسی رو روی OUمروبطه خودتون اعمال کنید.



o Class = Printer {4658ee7e-f050-11d1-b6bd-00c04fa372a7}
o Class = PNPPrinters {4d36e979-e325-11ce-bfc1-08002be10318}
شاد و پیروز باشید
جلال شاهوند
از اونجایی که SCCM هیچ برنامه ای برای نصب درایور پرینتر نداره و برای هندل کردن نصب پرینتر هیچ مکانیسمی درونش وجود نداره بنابر این از اسکریپت های خود ویندوز کمک میگیریم که خیلی هم عالی هستن ، این اسکریپت مثل همیشه با VBS نوشته شده و در چند مرحله پرینتر رو نصب میکنه ، تو این قسمت برای نصب پرینتر از متد Application استفاده میکنیم.
فرض رو بر این میگیریم شما دپلوی نرم افزار با استفاده از Application رو بلدید اگر خیر میتونید به آموزش دپلوی آفیس نگاهی بندازید, پس من میرم سر اصل مطلب.
یک فولدر در مسیر سورس Application ها بسازید و فایلهای Prnport.vbs - Prndrvr.vbs - prnmngr.vbs
از مسیر زیر کپی کنید در فولدر Share شده
%SystemRoot%\System32\Printing_Admin_Scripts\\\sccm2016\Source\Printer\CRM\\\sccm2016\Source\Printer\CRM\Driversاسکریپت زیر رو در داخل یک فایل با اسم install.cmd کپی کنید و فایل رو ذخیره کنید.
چطوری مدل درایور دستگاه رو پیدا کنیم : ما اینجا از پرینتر HP LaserJet 500 color M551 استفاده میکنیم ، میتونید فایل INF رو باز کنید و این مدل رو تو اون پیدا کنید. اسم درایور رو باید دقیقا مطابق با اسمی که تو فایل مشخص هست یادداشت کنید و درBatch قرار بدید .
cscript "prnmngr.vbs" -a -p "CRM-Printer1" -m "HP LaserJet 500 color M551 PCL6" -r CRM-Printerجلال شاهوند