Входная строка была в неправильном формате в запросе WQL

Я получаю следующую ошибку:

[Задача наблюдателя событий WMI] Ошибка: произошла ошибка со следующим сообщением об ошибке: «Входная строка была в неправильном формате.».

Когда я выполняю WQL Query:

SELECT * FROM __InstanceCreationEvent WITHIN 10
WHERE TargetInstance ISA 'CIM_DataFile' AND TargetInstance.Name ='C:\\Users\Mohammed\\Desktop\\Test\\ETL\\ssis-basic-control-flow-tasks\\file_to_watch.txt'

Я пытаюсь посмотреть такой файл:

введите описание изображения здесь


person Anyname Donotcare    schedule 15.11.2016    source источник
comment
Я предполагаю, что ваш путь C:\Users\Mohammed\Desktop. В этом случае вам нужно заменить каждую обратную косую черту на 4 обратной косой черты, как это C:\\\\Users\\\Mohammed\\\\Desktop. Проделайте то же самое с оставшейся частью пути.   -  person tala9999    schedule 24.07.2020


Ответы (1)


    //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 ("\\", "\\\\"). Думаю, это решит вашу проблему. Совершенно уверен, что тебе придется дважды сбежать.

person JMIII    schedule 02.09.2017