//Removes local network printer based
//on full unc path returns true if successful
//otherwise false
public static bool RemoveUnc(string printUncPath)
{
ManagementScope oManagementScope = new ManagementScope(ManagementPath.DefaultPath);
oManagementScope.Connect();
SelectQuery oSelectQuery = new SelectQuery();
oSelectQuery.QueryString = @"SELECT * FROM Win32_Printer WHERE Name = '" +
printUncPath.Replace("\\", "\\\\") + "'";
ManagementObjectSearcher oObjectSearcher =
new ManagementObjectSearcher(oManagementScope, oSelectQuery);
ManagementObjectCollection oObjectCollection = oObjectSearcher.Get();
if (oObjectCollection.Count != 0)
{
foreach (ManagementObject oItem in oObjectCollection)
{
oItem.Delete();
return true;
}
}
return false;
}
Я предполагаю, что это строка, которая включает в себя косые черты, вызывающие эту ошибку. Ниже приведен пример использования принтера для удаления принтера с локальной рабочей станции. Названия имен принтеров включают формат «\\ printserver \ printerShare». Обратите внимание на printUncPath.Replace ("\\", "\\\\"). Подумайте, это решит вашу проблему. Довольно уверен, что вам нужно бежать дважды.