以编程方式设置打印机共享名称

Setting printer Share name programmatically

我已经能够使用 System.Management 程序集中的 ManagementObject 成功重命名打印机。

string query = String.Format("SELECT * FROM Win32_Printer WHERE Name = '{0}'", printerName);
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
ManagementObjectCollection collection = searcher.Get();
ManagementObject printer = collection.Cast<ManagementObject>().ElementAt(0);
printer.InvokeMethod("RenamePrinter", new object[] { newName });

有没有类似设置打印机共享名的东西?

这是我正在尝试更改的 属性 的屏幕截图:

原来我可以直接更改管理对象的属性。我是这样做的:

string query = String.Format("SELECT * FROM Win32_Printer WHERE Name = '{0}'", printerName);
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
ManagementObjectCollection collection = searcher.Get();
ManagementObject printer = collection.Cast<ManagementObject>().ElementAt(0);

// The part that changes the printer share name
printer.Properties["ShareName"].Value = newName;
printer.Put();