Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

Windows 10 /Server2016でPowerShellを使用してプリンターとドライバーを管理する

前回の記事では、Windows XP以降、すべてのWindowsバージョンでプリンターと印刷操作を管理するために使用できる旧式のVBSスクリプトについて説明しました。今日は、PowerShellを使用してプリンター、印刷ポート、ドライバー、およびキューをインストール、管理、および削除するための一般的なコマンドについて検討します。 PowerShell CLIからプリンターを管理するこれらの方法は、最新のオペレーティングシステム(Windows 10/8.1およびWindowsServer2019/2016/2012 R2)で使用できます。

PowerShellモジュール:PrintManagement

Windows8.1およびWindowsServer2012 R2のリリースに伴い、MicrosoftはPowerShell 4.0の新しいバージョン(Windows Management Framework 4.0の一部)をリリースしました。これにより、Windowsベースのプリントサーバー管理コマンドレットのリストが大幅に拡張されました。次のコマンドを使用して、Windows 10(PowerShell v5)のPrintManagementモジュールで使用できる印刷、ドライバー、および印刷キュー管理コマンドレットの完全なリストを取得できます。

Get-Command –Module PrintManagement

Windows 10 /Server2016でPowerShellを使用してプリンターとドライバーを管理する PrintManagementモジュールには、プリンター、ドライバー、印刷ポート、およびキューを管理するための22のPowerShellコマンドレットが含まれています。

  • 追加プリンター –新しいプリンタを追加(インストール)します。
  • Add-PrinterDriver –新しいプリンタドライバをインストールします。
  • Add-PrinterPort –ローカル印刷ポートを作成します;
  • Get-PrintConfiguration –プリンタ構成を表示します;
  • Get-Printer –コンピューターにインストールされているプリンターのリストを表示します。
  • Get-PrinterDriver –インストールされているドライバーのリストを表示します。
  • Get-PrinterPort –プリンタポ​​ートのリストを表示します。
  • Get-PrinterProperty –プリンタのプロパティを表示します;
  • Get-PrintJob –プリンタの印刷ジョブのリストを取得します。
  • Read-PrinterNfcTag –NFCタグからプリンター情報を取得します。
  • 削除-プリンタ –プリンタを取り外します;
  • 削除-PrinterDriver —プリンタドライバを削除します;
  • 削除-PrinterPort –プリンタポ​​ートを削除します。
  • 削除-PrintJob –プリンタの印刷ジョブを削除します。
  • 名前の変更-プリンタ –プリンタの名前を変更します。
  • 再起動-PrintJob –印刷ジョブを再開します;
  • Resume-PrintJob –一時停止した印刷ジョブを再開します。
  • Set-PrintConfiguration –プリンタ構成を設定します;
  • セットプリンター –プリンタ構成を更新します;
  • Set-PrinterProperty –プリンタのプロパティを変更します。
  • Suspend-PrintJob –印刷ジョブを一時停止(一時停止)します。
  • Write-PrinterNfcTag –NFCタグに情報を書き込みます。

コマンドの構文に関する詳細情報を取得するには、次のコマンドを使用します。

Get-Help <cmdlet_name> -Detailed

コマンドの使用例:

Get-Help < cmdlet_name> -Examples

Windows10でPowerShellを使用する一般的なプリンター管理タスクの例をいくつか見てみましょう。

DriverStoreへのプリンタードライバーの追加

Windows DriverStoreにインストールされているプリンタードライバーを一覧表示するには:

Get-PrinterDriver

Windows 10 /Server2016でPowerShellを使用してプリンターとドライバーを管理する

次に、システムに新しいプリンタドライバをインストールします。たとえば、人気のある印刷ドライバー「HPUniversalPrintingPCL6」をインストールするとします。ドキュメントによると、印刷ドライバーを追加するPowerShellコマンドは次のようになります。

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

ただし、この方法でドライバーをインストールしようとすると、次のエラーメッセージが表示されます。

Add-PrinterDriver:この操作に指定された1つ以上のパラメーターの値が無効です。行:1文字: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

Windows 10 /Server2016でPowerShellを使用してプリンターとドライバーを管理する

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ファイルにあるすべてのドライバをインストールします); Windows 10 /Server2016でPowerShellを使用してプリンターとドライバーを管理する
  • コマンドレットAdd-WindowsDriver これにより、ドライバーをオフラインのWindowsイメージに統合できます。

プリンタドライバをドライバリポジトリに追加したら、プリントサーバーにインストールする必要があります。

Add-PrinterDriver -Name "HP Universal Printing PCL 6"

Windows 10 /Server2016でPowerShellを使用してプリンターとドライバーを管理する

ヒント 。 PowerShellを介してドライバーをインストールするときに、印刷ドライバー名のフィールドに何を指定する必要があるかを確認するにはどうすればよいですか?指定するプリンタドライバ名は、その内部システム名と完全に一致している必要があります。一致していない場合、ドライバのインストール中にエラーが表示されます。 get-printerdriver を使用して、正しいドライバー名を見つけることができます このプリンタドライバがすでにインストールされているコンピュータでコマンドを実行するか、ドライバの.infファイルを手動で調べます。 Windows 10 /Server2016でPowerShellを使用してプリンターとドライバーを管理する

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

Windows 10 /Server2016でPowerShellを使用してプリンターとドライバーを管理する

:VBSスクリプト(管理スクリプトの印刷)を使用して同じ操作(プリンターのインストールと共有)を実行するには、2つの異なるコマンドを実行する必要があることに注意してください。

これらのコマンドを実行すると、「hp3027_Office1」という名前の新しい共有プリンターがシステムに表示されます。

Windows 10 /Server2016でPowerShellを使用してプリンターとドライバーを管理する

プリンタの名前を変更するには、次のコマンドを実行します。

Rename-Printer -Name "hp3027_1_Buh" -NewName "hp3027_F1_Salary"

プリントサーバーにインストールされているプリンタの一覧表示

このコンピュータにインストールされているプリンタの完全なリストを表示しましょう:

Get-Printer

ご覧のとおり、このコマンドは、プリンター名、タイプ(ローカルまたはネットワーク)、ドライバー、印刷ポート、プリンターがActiveDirectoryで共有および公開されているかどうかを示します。

Windows 10 /Server2016でPowerShellを使用してプリンターとドライバーを管理する

ほとんどのPrintManagementコマンドレットは、ステータスを表示し、リモートコンピューター(プリントサーバー)上のプリンター、ドライバー、および印刷キューを管理するために使用できます。リモートコンピューターまたはサーバーの名前は、 –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コマンドレットを使用して、特定のドライバーを削除できます。

Remove-PrinterDriver -Name "HP Universal Printing PCL 6"


  1. PowerShellを使用したWindowsプロセスの管理

    PowerShellには、ローカルコンピューターまたはリモートコンピューター上のプロセスを管理するための多くの機能があります。 PowerShellを使用すると、実行中のプロセスのリストを取得したり、ハングアップしたプロセスを一時停止したり、Windowsタイトルでプロセスを検索したり、非表示モードまたはインタラクティブモードで新しいプロセスを実行したりできます。 次のように、Windows10で使用可能なプロセス管理コマンドレットのリストを表示できます。 Get-Command –Noun Process Get-Process –実行中のWindowsプロセスのリス

  2. Windows8.1およびWindowsServer2012R2KMS-アクティベーション

    Windows8.1およびWindowsServer2012 R2の公式リリースから約4か月が経過したため、システム管理者は、これらのOSを完全にサポートするためにITインフラストラクチャを更新する必要があります。この記事では、KMSサーバー上のWindows8.1およびWindowsServer 2012 R2のKMS(Key Management Service)アクティベーションの問題について説明し、古いバージョンのWindowsに展開します。 [アコーディオン][tabtitle =”この記事の内容”] [/ tab] [/ accordion] KMSサーバーが新し