Изменить владельца задания печати
Здравствуйте!
Есть консольное приложение на c#, исполняемое на сервере, которое отправляет на печать графические изображения. В сети используется AD. Возможно ли как-то изменить владельца задания печати, то есть печатать не из под системного пользователя сервера, а из-под какого-нибудь доменного юзера?
Печать документа делается через класс PrintDocument.
|
Цитата:
Цитата Surround
Возможно ли как-то изменить владельца задания печати »
|
Создать задачу в планировщике и указать владельцем задания любого нужного пользователя, тогда задача будет запускаться от того имени, какое укажешь.
Либо, если задача запускается руками - правой кнопкой с зажатым Shift - запуск от имени другого пользователя.
|
печать осуществляется из программы следующим образом:
PHP код:
PrintDocument printDocument = new PrintDocument();
printDocument.PrinterSettings.PrinterName = "имя принтера";
printDocument.PrintPage += new PrintPageEventHandler(printDocument_PrintPage);
printDocument.Print();
событие printDocument_PrintPage подгружает в объект картинку, которая затем печатается. В очереди принтера задание выполняется от имени текущего пользователя, которое хотелось бы изменить.
Покопался, нашел способ обратится к свойствам очереди через объект ManagementObjectSearcher :
PHP код:
string query = "SELECT * FROM Win32_PrintJob";
using (ManagementObjectSearcher jobQuery = new ManagementObjectSearcher(query))
{
using (ManagementObjectCollection jobs = jobQuery.Get())
{
foreach (ManagementObject job in jobs)
{
Console.WriteLine(job["Document"]);
}
}
}
но опять-таки, это только чтение...
|
Время: 23:38.
© OSzone.net 2001-