PowerShell nyomtatók és nyomtatóillesztők kezelése a Windows 10 / Server 2016 rendszerben

Egy előző cikkben megtekintettük a régi iskolai vbscripteket, amelyek felhasználhatók a nyomtatók és a nyomtatás kezelésére a Windows összes verziójában, kezdve a Windows XP-vel. Ma megvizsgáljuk a tipikus parancsokat a Windows nyomtatók, portok és nyomtatóillesztők létrehozására, eltávolítására a PowerShell használatával. Ezek a nyomtatókezelési módszerek a modern operációs rendszerekben - Windows 10, 8.1 és Windows Server 2012 R2 / 2016/2019 - felhasználhatók.


Tartalom:

  • PowerShell modul: PrintManagement
  • Telepítse a nyomtató-illesztőprogramot az illesztőprogram-tárolóba
  • Telepítsen egy új nyomtatót a PowerShell használatával
  • Sorolja fel a nyomtatókat a nyomtatószerveren a PowerShell használatával
  • Csatlakoztasson egy hálózati nyomtatót a PowerShell-ből
  • Nyomtató eltávolítása a PowerShell használatával

PowerShell modul: PrintManagement

A Windows 8.1 és a Windows Server 2012 R2 kiadásával a Microsoft kiadott egy új verziót PowerShell 4.0 (a Windows Management Framework 4.0 része), amely jelentősen kibővítette a Windows-alapú nyomtatószerver kezelésére szolgáló parancsmagok listáját. A Windows 10 PrintManagement moduljában (PoSh v5) elérhető nyomtatók, illesztőprogramok és nyomtatási sorok kezelésére szolgáló parancsmagok teljes listája a következő paranccsal jeleníthető meg:
Get-Command -modul PrintManagement

A PrintManagement modul 22 PowerShell-parancsmagot biztosít a nyomtatók, illesztőprogramok, nyomtatási portok és sorok kezeléséhez:

  • Add-Printer - új nyomtató hozzáadása (telepítése);
  • Add-PrinterDriver - új nyomtatóillesztő telepítése;
  • Add-PrinterPort - hozzon létre egy nyomtatási portot;
  • Get-PrintConfiguration - a nyomtató nyomtatási beállításainak megjelenítése;
  • Get-Printer - jelenítse meg a számítógépre telepített nyomtatók listáját;
  • Get-PrinterDriver - listázza a telepített nyomtatóillesztőket;
  • Get-PrinterPort - megjeleníti a nyomtatási portok listáját;
  • Get-PrinterProperty - a nyomtató tulajdonságainak megjelenítése;
  • Get-PrintJob - a nyomtató nyomtatási feladatainak listája;
  • Read-PrinterNfcTag - nyomtatóinformációk beszerzése NFC-címkéből;
  • Eltávolítás-nyomtató - távolítsa el a nyomtatót;
  • Remove-PrinterDriver - távolítsa el a nyomtató-illesztőprogramot;
  • Remove-PrinterPort - távolítsa el a nyomtató portját;
  • Remove-PrintJob - távolítsa el a nyomtatási feladatot a nyomtatóról;
  • Nyomtató átnevezése - nevezze át a nyomtatót;
  • Restart-PrintJob - indítsa újra a nyomtatási feladatot;
  • Resume-PrintJob - szüneteltetett munka indítása
  • Set-PrintConfiguration - a nyomtató konfigurációjának beállítása;
  • Set-Printer - frissítse a nyomtató konfigurációját;
  • Set-PrinterProperty - a nyomtató tulajdonságainak megváltoztatása;
  • Suspend-PrintJob - szünetelteti a nyomtatási feladatot;
  • Write-PrinterNfcTag - információk írása az NFC címkébe.

Egy adott parancs részletes szintaxisinformációi az alábbiak szerint szerezhetők be:

Get-Help - Részletesen

Példák a parancsok használatára:

Get-Help -Példák

Nézzünk meg néhány példát a tipikus nyomtatókezelési forgatókönyvekre a Windows 10-ben a PowerShell-ből..

Telepítse a nyomtató-illesztőprogramot az illesztőprogram-tárolóba

A Windows illesztőprogram-tárolóba telepített nyomtatóillesztők felsorolása:

Get-nyomtató illesztőprogramok

Új nyomtató-illesztőprogramot állítottunk be a rendszerbe, például a HP Universal Printing PCL 6-at. A dokumentáció szerint az illesztőprogram hozzáadására szolgáló PowerShell-parancsnak a következőnek kell lennie:

Add-PrinterDriver -Név "HP Universal Printing PCL 6" -InfPath "C: \ Distr \ HP-pcl6-x64 \ hpcu118u.inf"

Amikor azonban megpróbálja telepíteni az illesztőprogramot, egy hiba jelenik meg:

Add-PrinterDriver: A művelet egy vagy több megadott paramétere érvénytelen. Sorban: 1 char: 1 + Add-PrinterDriver - Név "HP Universal Printing PCL 6" -InfPath "C: \ Di ... + ~~~~~~~~~~~~~~~~~~~~ ~~~~ + Kategóriainformáció: InvalidArgument: (MSFT_PrinterDriver: ROOT / StandardCimv2 / MSFT_PrinterDriver) [Add-PrinterDriver], CimException + FullyQualifiedErrorId: HRESULT 0x80070057, Add-PrinterDriver

Kiderül, hogy az inf fájlból származó illesztőprogram csak akkor adható hozzá, ha már megtalálható a DriverStore illesztőprogram-tárhelyében (az adattárról további információ itt található). Kiderül, hogy az Add-PrinterDriver paranccsal nem telepíthető olyan illesztőprogram, amely nincs a rendszerillesztő-tárban. Az illesztőprogram telepítéséhez a DriverStore-ban használhatja:

  • vbs szkript az előző cikkből;
  • hasznosság pnputil.exe. A formátum: pnputil.exe -i-C: \ Distr \ HP-pcl6-x64 \ hpcu118u.inf (telepítsen egy meghatározott nyomtató-illesztőprogramot) vagy pnputil.exe -i-C: \ Distr \ HP-pcl6-x64 \ *. inf (telepítse az összes illesztőprogramot, amely a megadott könyvtár inf fájljaiban található);
  • Add-WindowsDriver-parancsmag az illesztőprogramok integrálásához egy offline Windows-képbe.

A nyomtató-illesztőprogram hozzáadása után a lerakathoz hozzá kell adnia az elérhető nyomtatószerverek listájához.

Add-PrinterDriver -Név "HP Universal Printing PCL 6"

tanács. Honnan tudhatom, hogy mit kell megadni a mezőben a nyomtató-illesztőprogram nevével, amikor az illesztőprogramot a PowerShell-en keresztül telepíti? A megadott nyomtatóillesztő-névnek pontosan meg kell egyeznie a belső rendszernevével, különben hiba jelenik meg a telepítés során. A parancs segítségével megtudhatja a helyes illesztőprogram nevét get-nyomtató illesztőprogramok egy olyan rendszeren, amelybe ez az illesztőprogram már telepítve van, vagy az illesztőprogram .inf fájljának kézi vizsgálatával.

Telepítsen egy új nyomtatót a PowerShell használatával

Hozzon létre egy ip portot a hálózati nyomtatóra történő nyomtatáshoz (itt megadhatja mind a hálózati nyomtató IP-címét, mind a távoli nyomtatószerver nevét):

Add-PrinterPort -Name "IP_192.168.10.26" -PrinterHostAddress "192.168.10.26" 
Mielőtt hozzáadna egy portot, ellenőrizheti, létezik-e:

$ 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"

A következő parancs használatával létrehozunk egy új nyomtatót a rendszerben, és közzétesszük (megosztjuk):
Kiegészítő-nyomtató -név hp2050_Office1_Buh -DriverNév "HP Deskjet 2050 J510 series osztály illesztőprogram" -PortName IP_192.168.10.26 -Ha megosztott -ShareName "hp2050_1_BUh" -Között

megjegyzés. Vegye figyelembe, hogy ugyanazon művelet végrehajtásához vbs parancsfájlok (Admin szkriptek nyomtatása) használata esetén két különböző parancsot kell futtatnia..
A nyomtató átnevezéséhez futtassa a következő parancsot:

Átnevezés-nyomtató -Név "hp2050_Office1_Buh" -ÚjNév "hp2050_Salary"

A parancsok végrehajtása után egy új megosztott nyomtató jelenik meg a rendszerben hp2050_Office1_Buh néven..

Sorolja fel a nyomtatókat a nyomtatószerveren a PowerShell használatával

Felsoroljuk a számítógépre telepített nyomtatók teljes listáját:

Get-nyomtató

Mint láthatja, a parancs megmutatja a nyomtató nevét, típusát (helyi vagy hálózati), illesztőprogramot, nyomtatási portot, azt, hogy a nyomtató meg van-e osztva, és a nyomtatót közzétette az AD-ben.

A legtöbb PrintManagement modul parancsmag használható állapotának megtekintésére, valamint a nyomtatók, illesztőprogramok és nyomtatási sorok kezelésére a távoli számítógépeken. A távoli számítógép vagy szerver nevét a paraméter argumentumaként kell megadni -ComputerName.

A PowerShell használatával információkat szerezhet a távoli számítógépre (nyomtatószerverre) telepített nyomtatókról, ennek végrehajtásához futtassa a következő parancsot:

Get-Printer-ComputerName msk-prnt1 | A formátumlista neve, illesztőprogramnév

Csak a megosztott nyomtatók felsorolásához használja a következő parancsot:

Get-Printer-ComputerName msk-prnt1 | ahol Shared -eq $ true | fl Név

Csatlakoztasson egy hálózati nyomtatót a PowerShell-ből

A nyomtató nyomtatószerverről történő csatlakoztatásához használja a következő parancsot:

Add-Printer -ConnectionName \\ msk-prnt1 \ HPCL3020

A Windows 10 az utolsó nyomtatót használja alapértelmezett nyomtatóként. Ha a rögzített nyomtatót alapértelmezés szerint szeretné használni, futtassa a következő parancsot:

Set-ItemProperty - "HKCU elérési út: \ SZOFTVER \ Microsoft \ Windows NT \ CurrentVersion \ Windows" -Név "LegacyDefaultPrinterMode" -Érték 1 -Force

Az alábbi parancsok segítségével állítsa be az alapértelmezett nyomtatót:

$ wsnObj = Új-Object -COM WScript.Network
$ wsnObj.SetDefaultPrinter (% PrinterName%)

Nyomtató eltávolítása a PowerShell használatával

A nyomtató eltávolításához a következő PowerShell parancsot kell futtatnia:

Eltávolítás-nyomtató -Név "hp2050_Office1_Buh"

Egy adott illesztőprogramot eltávolíthat az Remove-PrinterDriver parancsmag segítségével:

Remove-PrinterDriver -Név "HP Universal Printing PCL 6"