//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 ("\\", "\\\\")에주의하십시오. 문제가 해결 될 것이라고 생각하십시오. 당신은 두 번 탈출해야합니다.