Примечание. Мне известен модуль 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.
- Как создать DSN с помощью CIM / WMI для драйверов с именами, содержащими подстановочные символы?
- Есть ли способ обратиться к драйверу, имя которого содержит
*
таким образом, который позволяет методу 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