Как добавить экземпляр CIM с параметром ключа, который содержит запрещенные символы подстановки? - PullRequest
1 голос
/ 24 апреля 2020

Примечание. Мне известен модуль Wda c , но в настоящее время он не работает с PowerShell 7 . Обход этой проблемы привел к этому вопросу.


Метод Add класса MSFT_OdbcDsnTask имеет обязательный параметр «DriverName», описание которого выглядит следующим образом:

DriverName [in]

Имя драйвера ODB C для нового ODB C DSN. Вы не можете использовать символы подстановки.

Большинство драйверов ODB C на моем компьютере имеют имена, содержащие *, что, как мне кажется, интерпретируется как символ подстановки в этом контексте. Ниже приведены некоторые примеры:

  • Драйвер Microsoft Excel (* .xls)
  • Драйвер Microsoft Access (* .mdb)
  • Текстовый драйвер Microsoft Access (* .txt, * .csv)

Вызов метода Add для создания DSN путем вызова команды PowerShell

Invoke-CimMethod -ClassName MSFT_OdbcDsnTask `
                 -Namespace ROOT\Microsoft\Windows\Wdac `
                 -MethodName 'Add' `
                 -Arguments @{
                     Name       = 'test'
                     DsnType    = 'User'
                     Platform   = '32-bit'
                     DriverName = 'Microsoft Excel Driver (*.xls)'
                     # DriverName = 'SQL Server' }

приводит к ошибке The requested object could not be found. , Изменение закомментированной строки таким образом, чтобы DriverName = 'SQL Server' вместо драйвера excel, содержащего подстановочный знак, успешно создавал DSN.

  1. Как создать DSN с помощью CIM / WMI для драйверов с именами, содержащими подстановочные символы?
  2. Есть ли способ обратиться к драйверу, имя которого содержит * таким образом, который позволяет методу Add найти этот драйвер?

Обновление 1 :

Ошибка, сгенерированная в соответствии с этим комментарием , заставила меня задуматься, действительно ли это связано с подстановочными знаками. Я запустил этот скрипт , чтобы протестировать все драйверы, упомянутые на моем компьютере. Результат ниже. Обратите внимание, что драйвер Microsoft ODBC for Oracle не удалось с ошибкой The driver {ODBC for Oracle} is not installed..

Result  Name
------  ----
Failure Driver do Microsoft Access (*.mdb)
Failure Microsoft Paradox Driver (*.db )
Failure Microsoft Access Driver (*.mdb)
Failure Microsoft Text-Treiber (*.txt; *.csv)
Failure Microsoft Excel-Treiber (*.xls)
Failure Microsoft Access Text Driver (*.txt, *.csv)
Failure Microsoft Access dBASE Driver (*.dbf, *.ndx, *.mdx)
Failure Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)
Failure Microsoft dBase Driver (*.dbf)
Failure Microsoft Access Driver (*.mdb, *.accdb)
Failure Microsoft ODBC for Oracle
Failure Microsoft Text Driver (*.txt; *.csv)
Failure Driver da Microsoft para arquivos texto (*.txt; *.csv)
Failure Driver do Microsoft Excel(*.xls)
Failure Microsoft Access-Treiber (*.mdb)
Failure Driver do Microsoft Paradox (*.db )
Failure Microsoft Excel Driver (*.xls)
Failure Driver do Microsoft dBase (*.dbf)
Failure Microsoft Paradox-Treiber (*.db )
Failure Microsoft dBase-Treiber (*.dbf)
Success SQL Server Native Client 11.0
Success SQL Server
Success SQL Server
Success SQL Server Native Client 11.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...