30. oktober 2019 - 10:48Der er
7 kommentarer og 1 løsning
Fjern printerforbindelse
Hej
Jeg forsøger at lave et program der bl.a. skal fjerne en netværksprinter. Jeg har følgende kode, men får en "Access denied" - findes der en smartere måde eller er der noget jeg mangler?
try { //Fjerner nuværende printer ConnectionOptions options = new ConnectionOptions(); options.EnablePrivileges = true; ManagementScope scope = new ManagementScope(ManagementPath.DefaultPath, options); scope.Connect(); ManagementClass win32Printer = new ManagementClass("Win32_Printer"); ManagementObjectCollection printers = win32Printer.GetInstances(); foreach (ManagementObject printer in printers) { Console.WriteLine(printer.ToString()); if (printer.ToString().Contains("Follow_Me")) { Console.WriteLine("printer fundet:" + printer.ToString()); printer.Delete(); } } } catch(Exception excp) { Console.WriteLine(excp.Message); }
Hmm umiddelbart ikke.. Hvis jeg kører programmet på min udviklermaskine kan jeg se i konsollen at den rigtig nok finder de printere der indeholder "Follow_Me".. men altså med "Access denied".
Hvis jeg så prøver at bygge programmet og flytte .exe-filen til en anden PC (med samme printere) så fjerner programmet dem ikke.. heller ikke når jeg kører som administrator. Findes der en måde at debugge (se konsol) når man kører programmet fra en anden PC?
Jeg tror problemet med access denied bunder ud i at det er en domæne-PC.. Jeg har compilet programmet med følgende kommando, som ser ud til at virke på en bærbar udenfor domænet: System.Diagnostics.Process.Start("printui.exe", "/q /dn /n \\\\print\\Follow_Me").WaitForExit();
Er der ikke en ExitCode property paa den Process som Start returnerer?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.