Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C添加网络打印机#_C#_Wmi - Fatal编程技术网

C# 使用C添加网络打印机#

C# 使用C添加网络打印机#,c#,wmi,C#,Wmi,我一直在构建一个程序来轻松配置新映像的计算机(设置DNS服务器、IP地址、网关、添加到AD、添加可选打印机等)。我曾在PowerShell中使用过它,但我一直在尝试将它移植到C#,主要目的是将许多小脚本合并到一个脚本中,添加一个漂亮的用户界面,并作为练习提高C#。到目前为止进展顺利,但我在添加打印机方面遇到了一些问题 下面是我用来配置网络打印机的PowerShell脚本: Add-PrinterPort -name ESDPRT500 -PrinterHostAddress $ReceiptPr

我一直在构建一个程序来轻松配置新映像的计算机(设置DNS服务器、IP地址、网关、添加到AD、添加可选打印机等)。我曾在PowerShell中使用过它,但我一直在尝试将它移植到C#,主要目的是将许多小脚本合并到一个脚本中,添加一个漂亮的用户界面,并作为练习提高C#。到目前为止进展顺利,但我在添加打印机方面遇到了一些问题

下面是我用来配置网络打印机的PowerShell脚本:

Add-PrinterPort -name ESDPRT500 -PrinterHostAddress $ReceiptPrinterIP
Set-Printer -Name "EPSON TM-T88IV Receipt" -PortName ESDPRT500
我一直在看下面的C#代码,但它似乎只通过TCP/IP端口设置打印机,而我相信我的端口在“EPSON端口处理程序”下


根据打印机的配置,有人能给我指出正确的方向吗?我已经找到了通过TCP/IP端口安装驱动程序和添加打印机的例子,但在这方面运气不太好。谢谢

我要尝试的第一件事是通过powershell进行配置,然后用c#读取设置。然后更改“设置代码”以反映这些,删除打印机并尝试通过c#…PowerShell文档安装
Add PrinterPort
说明您正在使用默认的TCP端口号创建TCP/IP打印机端口。我认为您应该使用
Win32\u printer
类,然后调用并调用方法
AddPrinterConnection
通过powershell进行配置,然后使用c#读取设置。然后更改“设置代码”以反映这些,删除打印机并尝试通过c#…PowerShell文档安装
Add PrinterPort
说明您正在使用默认TCP端口号创建TCP/IP打印机端口。我认为您应该使用
Win32\u printer
类,然后调用并调用方法
AddPrinterConnection
ManagementClass portClass = new ManagementClass("Win32_TCPIPPrinterPort");
ManagementObject portObject = portClass.CreateInstance();
portObject["Name"] = portName;
portObject["HostAddress"] = "174.30.164.15";
portObject["PortNumber"] = portNumber;
portObject["Protocol"] = 1;
portObject["SNMPCommunity"] = "public";
portObject["SNMPEnabled"] = true;
portObject["SNMPDevIndex"] = 1;
PutOptions options = new PutOptions();
options.Type = PutType.UpdateOrCreate;             
portObject.Put(options);