Доступ запрещен при добавлении порта принтера Ethernet с WMI в 64-битной Windows XP - PullRequest
0 голосов
/ 18 ноября 2011

Я пишу установщик драйвера принтера.Помимо прочего, он может создать принтер Ethernet, а это значит, что мне нужно создать порт принтера Ethernet.

Код, который я использовал для создания порта (см. Ниже), отлично работает на 32-битной Windows XP, WindowsVista 32 и 64 бит и Windows 7 32 и 64 бит.Однако, когда код запускается в 64-разрядной Windows XP, я получаю исключение отказа в доступе.

Вот код C #, сводящийся к простой форме, которая выдает ошибку:

static void Main(string[] args)
{
    ManagementClass portClass = new ManagementClass("Win32_TCPIPPrinterPort");
    ManagementObject portObject = portClass.CreateInstance();

    portObject["Name"] = "TestPort";
    portObject["HostAddress"] = "172.16.2.78";
    portObject["PortNumber"] = 9100;
    portObject["Protocol"] = 1;
    portObject["SNMPEnabled"] = false;

    PutOptions options = new PutOptions();
    options.Type = PutType.UpdateOrCreate;
    try
    {
        portObject.Put(options);
    }
    catch (ManagementException e)
    {
        Console.WriteLine("ManagementException: " + e.Message);
    }
}

При запуске программы я вошел в систему как администратор, и я также попытался щелкнуть правой кнопкой мыши и сделать «Запуск от имени» администратора, но это не имеет никакого эффекта.У меня также есть манифест, чтобы заставить приложение запускаться от имени администратора в Windows Vista / 7;Я не уверен, как это влияет на 64-разрядную версию Windows XP.

Большая часть информации, которую я нашел в Интернете, касается использования WMI на удаленном компьютере, но все это относится к локальному компьютеру.

1 Ответ

0 голосов
/ 18 ноября 2011

При запуске программы я вошел в систему как администратор, и я также попытался щелкнуть правой кнопкой мыши и сделать «Запуск от имени» администратора, но это не имеет эффекта.

Этот пункт контекстного меню не был добавлен до Windows Vista.Как именно вы делаете это на Windows XP?Вы пытались настроить файл manfest?

Хотелось бы, чтобы я действительно мог дать ответ, но в вашем вопросе отсутствуют важные детали и / или содержится утверждение, которое не имеет смысла (т. Е. «Запускать от имени администратора в Windows XP».").

Из следующего вопроса: Обработка исключения" Отказано в доступе "с помощью вызовов WMI

Добавить манифест в вашу программутак что он всегда работает с правами администратора. Здесь - это еще одна ссылка, которая более важна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...