Я использую WMI Code Creator для создания кода для добавления сетевого принтера.
http://img13.imageshack.us/img13/9847/wmicodecreatorwin32prin.png
Сгенерированный код прекрасно работает (в любом случае, под моей учетной записью домена):
using System;
using System.Management;
using System.Windows.Forms;
namespace WMISample
{
public class CallWMIMethod
{
public static void Main()
{
try
{
ManagementClass classInstance =
new ManagementClass("root\\CIMV2",
"Win32_Printer", null);
// Obtain in-parameters for the method
ManagementBaseObject inParams =
classInstance.GetMethodParameters("AddPrinterConnection");
// Add the input parameters.
inParams["Name"] = "\\\\PrintServer\\PrinterName";
// Execute the method and obtain the return values.
ManagementBaseObject outParams =
classInstance.InvokeMethod("AddPrinterConnection", inParams, null);
// List outParams
Console.WriteLine("Out parameters:");
Console.WriteLine("ReturnValue: " + outParams["ReturnValue"]);
}
catch(ManagementException err)
{
MessageBox.Show("An error occurred while trying to execute the WMI method: " + err.Message);
}
}
}
}
Однако мне нужно добавить сетевой принтер в локальную учетную запись ПК, т. Е. Учетную запись не в домене, которая не имеет доступа к \ PrintServer.
Где можноЯ ввел имя пользователя и пароль пользователя домена (служебная учетная запись) в приведенный выше код?
Я часами гуглю, но все, что я могу найти, - это один глупый пост, в котором говорится, как добавить принтер наудаленный компьютер, что я не собираюсь делать.
(мне нужно добавить удаленный принтер к текущему ПК, а не к удаленному ПК.) (Предупреждениечто зарегистрированный пользователь является локальной учетной записью ПК.)
Кто-нибудь знает, как этого можно достичь?