पिछले लेख में हमने पुराने VBS स्क्रिप्ट को देखा जिनका उपयोग सभी Windows संस्करणों में प्रिंटर और प्रिंट संचालन को प्रबंधित करने के लिए किया जा सकता है, जो Windows XP से शुरू होता है। आज हम PowerShell का उपयोग करके प्रिंटर, प्रिंट पोर्ट, ड्राइवर और कतारों को स्थापित करने, प्रबंधित करने और हटाने के लिए सामान्य कमांड पर विचार करने जा रहे हैं। PowerShell CLI से प्रिंटर प्रबंधित करने के ये तरीके आधुनिक ऑपरेटिंग सिस्टम - Windows 10 / 8.1 और Windows Server 2019 / 2016 / 2012 R2 में उपयोग किए जा सकते हैं।
PowerShell मॉड्यूल: PrintManagement
Windows 8.1 और Windows Server 2012 R2 के रिलीज के साथ, Microsoft ने PowerShell 4.0 का एक नया संस्करण जारी किया (Windows Management Framework 4.0 का एक हिस्सा), जिसने Windows-आधारित प्रिंट सर्वर प्रबंधन cmdlets की सूची को काफी बढ़ा दिया। आप Windows 10 (PowerShell v5) पर PrintManagement मॉड्यूल में उपलब्ध प्रिंट, ड्राइवर और प्रिंट कतार प्रबंधन cmdlets की पूरी सूची निम्न कमांड के साथ प्राप्त कर सकते हैं:
Get-Command –Module PrintManagement
PrintManagement मॉड्यूल में प्रिंटर, ड्राइवर, प्रिंट पोर्ट और कतारों के प्रबंधन के लिए 22 PowerShell cmdlets शामिल हैं:
- Add-Printer - नया प्रिंटर जोड़ें (स्थापित करें);
- Add-PrinterDriver - नया प्रिंट ड्राइवर स्थापित करें;
- Add-PrinterPort - स्थानीय प्रिंट पोर्ट बनाएं;
- Get-PrintConfiguration - प्रिंटर कॉन्फ़िगरेशन प्रदर्शित करें;
- Get-Printer - कंप्यूटर पर स्थापित प्रिंटर की सूची प्रदर्शित करें;
- Get-PrinterDriver - स्थापित ड्राइवरों की सूची प्रदर्शित करें;
- Get-PrinterPort - प्रिंटर पोर्ट की सूची प्रदर्शित करता है;
- Get-PrinterProperty - प्रिंटर गुण दिखाएं;
- Get-PrintJob - प्रिंटर प्रिंट जॉब की सूची प्राप्त करें;
- Read-PrinterNfcTag - NFC टैग से प्रिंटर जानकारी प्राप्त करें;
- Remove-Printer - प्रिंटर हटाएं;
- Remove-PrinterDriver — प्रिंटर ड्राइवर हटाएं;
- Remove-PrinterPort - प्रिंटर पोर्ट हटाएं;
- Remove-PrintJob - प्रिंटर पर प्रिंट जॉब हटाएं;
- Rename-Printer - प्रिंटर का नाम बदलें;
- Restart-PrintJob - प्रिंट जॉब पुनरारंभ करें;
- Resume-PrintJob - रुके हुए प्रिंट जॉब को फिर से शुरू करें;
- Set-PrintConfiguration - प्रिंटर कॉन्फ़िगरेशन सेट करें;
- Set-Printer - प्रिंटर कॉन्फ़िगरेशन अपडेट करें;
- Set-PrinterProperty - प्रिंटर गुण बदलें;
- Suspend-PrintJob - प्रिंट जॉब निलंबित (रोकें);
- Write-PrinterNfcTag - NFC टैग में जानकारी लिखें।
किसी भी कमांड के सिंटैक्स के बारे में विस्तृत जानकारी प्राप्त करने के लिए, निम्न कमांड का उपयोग करें:
Get-Help <cmdlet_name> -Detailed
कमांड के उपयोग के उदाहरण:
Get-Help < cmdlet_name> -Examples
आइए Windows 10 में PowerShell का उपयोग करके सामान्य प्रिंटर प्रबंधन कार्यों के कुछ उदाहरण देखें।
ड्राइवर स्टोर में प्रिंटर ड्राइवर जोड़ना
Windows DriverStore में स्थापित प्रिंट ड्राइवरों को सूचीबद्ध करने के लिए:
Get-PrinterDriver

फिर, सिस्टम में एक नया प्रिंटर ड्राइवर स्थापित करें। उदाहरण के लिए, आप लोकप्रिय प्रिंट ड्राइवर "HP यूनिवर्सल प्रिंटिंग PCL 6" स्थापित करना चाहते हैं। दस्तावेज़ीकरण के अनुसार, प्रिंट ड्राइवर जोड़ने की PowerShell कमांड इस प्रकार होनी चाहिए:
Add-PrinterDriver -Name "HP Universal Printing PCL 6" -InfPath "C:\Distr\HP-pcl6-x64\hpcu118u.inf"
हालांकि, इस तरह ड्राइवर स्थापित करने का प्रयास करते समय, निम्न त्रुटि संदेश प्रकट होता है:
Add-PrinterDriver : इस ऑपरेशन के लिए निर्दिष्ट एक या अधिक पैरामीटर्स का मान अमान्य है। At line:1 char:1+ Add-PrinterDriver -Name "HP Universal Printing PCL 6" -InfPath "C:\Di …+ ~~~~~~~~~~~~~~~~~~~~~~~~~+ CategoryInfo : InvalidArgument: (MSFT_PrinterDriver:ROOT/StandardCimv2/MSFT_PrinterDriver) [Add-PrinterDriver], CimException + FullyQualifiedErrorId : HRESULT 0x80070057,Add-PrinterDriver

यह पता चला है कि INF फ़ाइल से ड्राइवर केवल तभी स्थापित किया जा सकता है जब वह पहले से DriverStore में मौजूद हो। ऐसा प्रतीत होता है कि आप Add-PrinterDriver कमांड का उपयोग करके ड्राइवर स्टोर में नहीं होने वाले प्रिंट ड्राइवर को स्थापित नहीं कर सकते। ड्राइवर को DriverStore में जोड़ने के लिए, आप उपयोग कर सकते हैं:
- पिछले लेख में वर्णित VBS स्क्रिप्ट;
- उपयोगिता — pnputil.exe. कमांड इस तरह दिख सकती है:
pnputil.exe -i -a C:\Distr\HP-pcl6-x64\hpcu118u.inf(विशिष्ट प्रिंटर ड्राइवर स्थापित करता है) याpnputil.exe -i -a C:\Distr\HP-pcl6-x64\*.inf(निर्दिष्ट निर्देशिका में INF फ़ाइलों में पाए गए सभी ड्राइवर स्थापित करता है);
- cmdlet Add-WindowsDriver जो ऑफ़लाइन Windows छवि में ड्राइवरों को एकीकृत करने की अनुमति देता है।
प्रिंटर ड्राइवर को ड्राइवर रिपॉजिटरी में जोड़ने के बाद, आपको इसे प्रिंट सर्वर पर स्थापित करना चाहिए:
Add-PrinterDriver -Name "HP Universal Printing PCL 6"
सुझाव. PowerShell के माध्यम से ड्राइवर स्थापित करते समय प्रिंट ड्राइवर नाम फ़ील्ड में क्या निर्दिष्ट करना चाहिए? निर्दिष्ट प्रिंट ड्राइवर नाम को उसके आंतरिक सिस्टम नाम से बिल्कुल मेल खाना चाहिए, अन्यथा ड्राइवर स्थापना के दौरान त्रुटि दिखाई देगी। आप किसी ऐसे कंप्यूटर पर get-printerdriver कमांड का उपयोग करके सही ड्राइवर नाम पता लगा सकते हैं जहां यह प्रिंट ड्राइवर पहले से स्थापित है, या ड्राइवर की .inf फ़ाइल को मैन्युअली जांचकर।
PowerShell का उपयोग करके प्रिंटर कैसे स्थापित करें?
नेटवर्क प्रिंटर के लिए एक IP पोर्ट बनाएं (यहां आप नेटवर्क प्रिंटर का IP पता और रिमोट प्रिंट सर्वर दोनों का नाम निर्दिष्ट कर सकते हैं):
Add-PrinterPort -Name "IP_192.168.10.26" -PrinterHostAddress "192.168.10.26"
नया IP प्रिंट पोर्ट जोड़ने से पहले, आप जांच सकते हैं कि क्या यह मौजूद है:
$portName = "IP_192.168.10.26"
$checkPortExists = Get-Printerport -Name $portname -ErrorAction SilentlyContinue
if (-not $checkPortExists) {
Add-PrinterPort -name $portName -PrinterHostAddress "192.168.10.26"
}
निम्न कमांड की मदद से, हम कंप्यूटर पर एक नया प्रिंटर स्थापित और साझा करेंगे:
Add-Printer -Name hp3027_Office1_Buh -DriverName "HP LaserJet M3027 MFP PCL6 Class Driver" -PortName IP_192.168.10.26 -Shared -ShareName "hp3027_1_BUh" –Published

नोट: ध्यान दें कि VBS स्क्रिप्ट (प्रिंटिंग एडमिन स्क्रिप्ट) का उपयोग करके समान ऑपरेशन (प्रिंटर स्थापित और साझा करें) करने के लिए, आपको दो अलग-अलग कमांड निष्पादित करने होंगे।
इन कमांड को चलाने के बाद, "hp3027_Office1" नाम का एक नया साझा प्रिंटर सिस्टम में दिखाई देगा।

प्रिंटर का नाम बदलने के लिए, बस कमांड चलाएं:
Rename-Printer -Name "hp3027_1_Buh" -NewName "hp3027_F1_Salary"
प्रिंट सर्वर पर स्थापित प्रिंटर सूचीबद्ध करें
आइए इस कंप्यूटर पर स्थापित प्रिंटर की पूरी सूची प्रदर्शित करें:
Get-Printer
जैसा कि आप देख सकते हैं, कमांड प्रिंटर नाम, प्रकार (स्थानीय या नेटवर्क), ड्राइवर, प्रिंट पोर्ट, चाहे प्रिंटर साझा किया गया हो और Active Directory में प्रकाशित हो, दिखाता है।

अधिकांश PrintManagement cmdlets का उपयोग दूरस्थ कंप्यूटर (प्रिंट सर्वर) पर प्रिंटर, ड्राइवर और प्रिंट कतारों की स्थिति देखने और प्रबंधित करने के लिए किया जा सकता है। दूरस्थ कंप्यूटर या सर्वर का नाम –ComputerName पैरामीटर के तर्क के रूप में निर्दिष्ट किया जाता है।
आप PowerShell कमांड का उपयोग करके दूरस्थ कंप्यूटर पर स्थापित प्रिंटर के बारे में जानकारी प्राप्त कर सकते हैं:
Get-Printer -ComputerName rome-prnt1 | Format-List Name,DriverName
केवल साझा प्रिंटर की सूची प्रदर्शित करने के लिए, कमांड का उपयोग करें:
Get-Printer -ComputerName rome-prnt1 | where Shared -eq $true | fl Name
PowerShell के साथ नेटवर्क साझा प्रिंटर से कनेक्ट करना
प्रिंट सर्वर से साझा प्रिंटर से कनेक्ट करने के लिए, कमांड का उपयोग करें:
Add-Printer -ConnectionName \\rome-prnt1\HP3027
Windows 10 प्रिंटिंग के लिए उपयोग किए गए नवीनतम प्रिंटर को डिफ़ॉल्ट प्रिंटर के रूप में उपयोग करता है। यदि आप एक निश्चित डिफ़ॉल्ट प्रिंटर का उपयोग करना चाहते हैं, तो कमांड चलाएं:
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" -Name "LegacyDefaultPrinterMode" -Value 1 –Force
डिफ़ॉल्ट प्रिंटर सेट करने के लिए, आप निम्न कमांड का उपयोग कर सकते हैं:
$wsnObj = New-Object -COM WScript.Network
$wsnObj.SetDefaultPrinter(%PrinterName%)
PowerShell का उपयोग करके प्रिंटर कैसे हटाएं?
एक प्रिंटर को हटाने के लिए, आपको निम्न PowerShell कमांड चलाने की आवश्यकता है:
Remove-Printer -Name "hp3027_L1_O1"
आप Remove-PrinterDriver cmdlet का उपयोग करके एक विशिष्ट ड्राइवर हटा सकते हैं:
Remove-PrinterDriver -Name "HP Universal Printing PCL 6"