PowerShell 可以配置和管理 ODBC Data Sources
下载用于 SQL Server 的 ODBC 驱动程序 - ODBC Driver for SQL Server | Microsoft Learn
支持生命周期 - ODBC Driver for SQL Server | Microsoft Learn
下载并安装 sqlcmd 实用工具 - SQL Server | Microsoft Learn
C:\Program Files\SqlCmd>sqlcmd -?
sqlcmd:安装/创建/查询 SQL Server、Azure SQL 及工具
版本:v1.8.2
标志:
-K,--application-intent
在连接到服务器时声明应用程序工作负载类型。当前唯一支持的值为 ReadOnly。
如果未指定 -K,则 sqlcmd 实用程序将不支持连接到 Always On 可用性组中的辅助副本
--authentication-method
指定用于连接到 Azure SQL 数据库的 SQL 身份验证方法。可选值:ActiveDirectoryDefault、
ActiveDirectoryIntegrated、ActiveDirectoryPassword、
ActiveDirectoryInteractive、
ActiveDirectoryManagedIdentity、
ActiveDirectoryServicePrincipal、ActiveDirectoryAzCli、
ActiveDirectoryDeviceCode、SqlPassword
-c,--batch-terminator
指定批处理终止符。默认值为 GO
-z,--change-password
新密码
-Z,--change-password-exit
新密码并退出
-R,--client-regional-setting
为向后兼容而提供。不使用客户端区域设置
-s,--column-separator
指定列分隔符。设置 SQLCMDCOLSEP 变量。
-d,--database-name
此选项设置 sqlcmd 脚本变量 SQLCMDDBNAME。此参数指定初始数据库。
默认值为登录的默认数据库属性。如果数据库不存在,则会生成错误消息并退出 sqlcmd
-A,--dedicated-admin-connection
专用管理员连接
-X,--disable-cmd-and-warn
-X[1] 禁用可能损害系统安全的命令。传递 1 告诉 sqlcmd 在运行被禁用的命令时退出。
-x,--disable-variable-substitution
导致 sqlcmd 忽略脚本变量。当脚本包含许多 INSERT 语句,
且这些语句可能包含与常规变量格式相同的字符串(例如 $(variable_name))时,此参数非常有用
--driver-logging-level
要打印的 mssql 驱动程序消息的级别
-e,--echo-input
回显输入
-g,--enable-column-encryption
启用列加密
-I,--enable-quoted-identifiers
为向后兼容而提供。始终启用带引号的标识符
-N,--encrypt-connection
客户端使用此开关请求加密连接
-m,--error-level
控制将哪些错误消息发送到 stdout。严重级别大于或等于此级别的消息将被发送
-V,--error-severity-level
控制用于在退出时设置 ERRORLEVEL 变量的严重级别
-r,--errors-to-stderr
-r[0 | 1] 将严重级别 >= 11 的错误消息输出重定向到 stderr。传递 1 以重定向所有错误(包括 PRINT)。
-b,--exit-on-error
指定发生错误时 sqlcmd 退出并返回 DOS ERRORLEVEL 值
-Y,--fixed-type-width
设置 sqlcmd 脚本变量 SQLCMDMAXFIXEDTYPEWIDTH
-F,--format
指定结果的格式
-h,--headers
指定在列标题之间打印的行数。使用 -h-1 指定不打印标题
-?,--help
-? 显示此语法摘要,--help 显示现代 sqlcmd 子命令帮助
-q,--initial-query
在 sqlcmd 启动时执行查询,但在查询完成运行后不退出 sqlcmd。
可以执行多个分号分隔的查询
-i,--input-file
标识一个或多个包含 SQL 语句批处理的文件。如果一个或多个文件不存在,sqlcmd 将退出。与 -Q/-q 互斥
-L,--list-servers
-L[c] 列出服务器。传递 c 以省略 'Servers:' 输出。
-l,--login-timeOut
指定尝试连接到服务器时,sqlcmd 登录到 go-mssqldb 驱动程序的超时前秒数。
此选项设置 sqlcmd 脚本变量 SQLCMDLOGINTIMEOUT。默认值为 30。0 表示无限
-M,--multi-subnet-failover
为向后兼容而提供。Sqlcmd 始终优化对 SQL 故障转移群集活动副本的检测
-o,--output-file
标识接收 sqlcmd 输出的文件
-a,--packet-size
请求不同大小的数据包。此选项设置 sqlcmd 脚本变量 SQLCMDPACKETSIZE。
packet_size 必须是介于 512 和 32767 之间的值。默认值 = 4096。
较大的数据包大小可以增强在 GO 命令之间具有大量 SQL 语句的脚本的执行性能。
您可以请求更大的数据包大小。但是,如果请求被拒绝,sqlcmd 将使用服务器的默认数据包大小
-P,--password
密码
-Q,--query
在 sqlcmd 启动时执行查询,然后立即退出 sqlcmd。可以执行多个分号分隔的查询
-t,--query-timeout
查询超时
-k,--remove-control-characters
-k [1|2] 从输出中删除控制字符。传递 1 表示每个字符替换为一个空格,传递 2 表示每连续字符替换为一个空格
-w,--screen-width
指定输出的屏幕宽度
-S,--server
[[tcp:]|[lpc:]|[np:]]server[\instance_name][,port]
指定要连接到的 SQL Server 实例。它设置 sqlcmd 脚本变量 SQLCMDSERVER。
-W,--trim-spaces
从列中删除尾随空格
-C,--trust-server-certificate
隐式信任服务器证书而不进行验证
-u,--unicode-output-file
指定所有输出文件均使用小端 Unicode 编码
-G,--use-aad
告诉 sqlcmd 使用 ActiveDirectory 身份验证。如果未提供用户名,则使用身份验证方法 ActiveDirectoryDefault。
如果提供了密码,则使用 ActiveDirectoryPassword。否则使用 ActiveDirectoryInteractive
-E,--use-trusted-connection
使用受信任的连接,而不是使用用户名和密码登录到 SQL Server,
忽略任何定义用户名和密码的环境变量
-U,--user-name
登录名或包含的数据库用户名。对于包含的数据库用户,必须提供数据库名称选项
-y,--variable-type-width
设置 sqlcmd 脚本变量 SQLCMDMAXVARTYPEWIDTH
-v,--variables
创建可在 sqlcmd 脚本中使用的 sqlcmd 脚本变量。
如果值包含空格,请将值括在引号中。可以指定多个 var=values 值。
如果任何指定值存在错误,sqlcmd 会生成错误消息然后退出
--version
打印版本信息并退出
-H,--workstation-name
此选项设置 sqlcmd 脚本变量 SQLCMDWORKSTATION。
工作站名称列在 sys.sysprocesses 目录视图的 hostname 列中,并且可以使用存储过程 sp_who 返回。
如果未指定此选项,则默认为当前计算机名称。此名称可用于标识不同的 sqlcmd 会话
PS C:\Users\Administrator> winget install sqlcmd
已找到 Sqlcmd Tools [Microsoft.Sqlcmd] 版本 1.8.2
此应用程序由其所有者授权给你。
Microsoft 对第三方程序包概不负责,也不向第三方程序包授予任何许可证。
正在下载 https://github.com/microsoft/go-sqlcmd/releases/download/v1.8.2/sqlcmd-amd64.msi
发布生命周期
| 驱动程序版本 | 主流支持结束 | 扩展支持终止 |
|---|---|---|
| ODBC 驱动程序 18(适用于 SQL Server) | 2028 年 1 月 11 日1 | 不適用 |
| ODBC Driver 17 for SQL Server2 | 2028 年 1 月 11 日 | 2033 年 1 月 11 日 |
| ODBC Driver 13 for SQL Server3 | 2022 年 10 月 11 日 | 2027 年 10 月 12 日 |
| ODBC Driver 11 用于 SQL Server4 | 2019 年 7 月 9 日 | 2024 年 7 月 9 日 |
如果未来发布的 SQL Server 版本包含 ODBC 驱动程序 18,那么其支持日期将会延长。
SQL Server 2019 和 2022 中包含 ODBC 驱动程序 17。
ODBC 驱动程序 13 包含在 SQL Server 2017 中。
4 ODBC 驱动程序 11 包含在 SQL Server 2014 中。


ODBC(开放数据库连接)自1992年推出以来,经历了多次演变,成为了数据库访问的重要标准。以下是ODBC发展过程中的一些关键时间点和里程碑:
1. 1992年 - ODBC的诞生
- 背景:Microsoft和SQL Access Group联合发布了ODBC规范,旨在提供一种通用的方式来访问不同的数据库系统。ODBC的目标是将数据库操作与特定的数据库管理系统(DBMS)解耦,允许开发者通过统一的接口与不同的数据库进行交互。
- 关键特性:ODBC为应用程序提供了一个统一的数据库访问接口,通过驱动程序(ODBC驱动)与特定的数据库进行通信。
2. 1993年 - ODBC 1.0发布
- 特点:ODBC 1.0是第一个正式版本,开始为应用程序提供统一的数据库访问接口。该版本为Windows应用程序提供了与数据库通信的能力,但仅支持简单的SQL查询。
3. 1995年 - ODBC 2.0发布
- 特点:ODBC 2.0增加了对更多数据类型和功能的支持,改进了性能,提供了更好的查询执行计划功能和事务管理。此外,增加了对更复杂的SQL语句的支持。
4. 1997年 - ODBC 3.0发布
- 特点:ODBC 3.0是一个重要的更新,加入了更多的功能,使其更加符合企业级应用的需求。它支持多线程和并发操作,增强了数据处理能力,并提供了对大规模数据集的更好支持。此版本的发布标志着ODBC向着更高的可扩展性和性能方向发展。
- 里程碑:这一版本为ODBC提供了标准化的方式来支持现代数据库功能,如事务处理、批量操作和更复杂的数据类型。
5. 2000年 - ODBC 3.5发布
- 特点:ODBC 3.5引入了对Unicode的支持,进一步提高了跨语言、跨平台应用程序的兼容性。这为多语言开发和全球化应用程序的数据库访问提供了便利。
- 影响:由于全球化趋势的加剧,Unicode支持对非英文字符集的支持成为了ODBC的关键功能。
6. 2007年 - ODBC 3.8发布
- 特点:ODBC 3.8版本为新版Windows操作系统(如Windows Vista和Windows Server 2008)提供了兼容性,改进了数据访问的稳定性和性能。它还对64位操作系统进行了优化,增强了现代硬件环境下的性能表现。
7. 2011年 - ODBC 3.9发布
- 特点:ODBC 3.9增加了对高可用性和灾难恢复环境的支持,增强了对复杂查询和大数据集的处理能力。它还提升了对大数据处理技术的支持,适应了新的数据库应用场景。
8. 2016年 - ODBC 4.0发布
- 特点:ODBC 4.0更新了驱动管理,增强了对现代数据库特性的支持,包括对NoSQL数据库、云数据库和分布式数据库的兼容性。此外,改进了跨平台支持,使得ODBC可以在Linux、macOS等操作系统上更好地运行。
- 里程碑:此版本的发布表明ODBC不仅继续在传统关系型数据库中占据重要地位,还逐步扩展到大数据、云计算和分布式系统。
9. 近年来的进展
- 趋势:随着大数据和云计算的发展,ODBC驱动程序不断优化以支持新的数据存储系统。例如,ODBC驱动程序已被广泛应用于现代数据库,如Google BigQuery、Apache Hive、Amazon Redshift等。
- 持续更新:随着云计算和大数据的普及,ODBC在提供跨平台数据库连接方面的能力继续增长,尤其是在企业应用和数据分析领域。
ODBC自1992年以来不断演化,从最初的基本数据库访问接口发展到现在能够支持大数据、云计算、跨平台环境的强大工具。随着技术的不断进步,ODBC在数据库访问的灵活性、跨平台支持和性能优化方面的作用将继续扩大,特别是在企业级和多样化数据库应用场景中。

ODBC(开放数据库连接,Open Database Connectivity)数据源是一种标准化的数据库访问接口,它允许不同的应用程序通过统一的接口访问多种数据库系统。通过ODBC,应用程序可以在不考虑数据库类型的情况下访问不同的数据库,如MySQL、SQL Server、Oracle等。
1. 是什么:
- ODBC数据源指的是通过ODBC接口访问的数据库的连接配置。这些配置包含了数据库的地址、名称、端口等信息,使得应用程序能够与特定的数据库进行通信。
- 数据源通常是指配置好的连接字符串,帮助应用程序通过ODBC协议来连接数据库。
2. 怎么样:
- 配置ODBC数据源通常需要在操作系统的ODBC管理工具中进行设置。比如在Windows中,可以通过“控制面板”进入“管理工具”,然后选择“ODBC数据源管理器”,来配置新的数据源。
- 配置时,你需要提供数据库的连接信息,包括数据库的类型、服务器地址、用户名、密码等。配置完成后,应用程序就可以使用ODBC接口来访问数据库了。
3. 为什么:
- 兼容性:ODBC提供了一个统一的接口,使得应用程序可以访问多种类型的数据库,无需针对每种数据库编写特定的代码。它支持多种数据库管理系统(DBMS),这对跨平台开发非常重要。
- 灵活性:开发者可以轻松切换数据库,而不必修改应用程序代码中的数据库访问部分,只需更改数据源的配置。
- 标准化:ODBC是由Microsoft和SQL Access Group制定的标准,它提供了广泛的兼容性和支持,尤其适用于跨平台或多数据库环境下的应用。
ODBC的广泛使用使得开发者能更方便地处理数据库操作,尤其在需要访问多个数据库时,提供了一个简化的方式。


ODBC(开放数据库连接)数据源经历了多年的发展,不仅为数据库应用提供了统一的接口,还帮助开发者简化了跨平台数据库的访问。下面是与Windows控制面板中ODBC数据源相关的一个发展时间线:
1. 1992年 - ODBC的诞生:
- 背景:Microsoft与SQL Access Group联合推出ODBC协议,旨在让开发者能通过统一的接口访问不同的数据库系统(如SQL Server、Oracle等)。此时,ODBC为Windows应用提供了首次通用的数据库访问方式。
- 特点:定义了ODBC驱动程序和应用之间的交互标准。
2. 1993年 - ODBC 1.0发布:
- 特点:ODBC 1.0为Windows提供了首次实现的ODBC数据源配置,提供了简单的SQL查询功能。Windows控制面板中首次加入了ODBC数据源管理工具,允许用户配置连接数据库所需的信息。
3. 1995年 - ODBC 2.0发布:
- 特点:ODBC 2.0改进了性能,增加了对复杂数据类型和更强大查询功能的支持。
- Windows控制面板的改进:在Windows的ODBC数据源管理中,增加了对多个数据源的配置和管理能力,开发者可以更灵活地配置与多个数据库的连接。
4. 1997年 - ODBC 3.0发布:
- 特点:ODBC 3.0增加了多线程和并发操作的支持,更好地支持事务处理和批量操作。
- Windows控制面板的演变:Windows控制面板中的ODBC数据源管理工具变得更加强大,支持更复杂的数据库配置和管理选项。
5. 2000年 - ODBC 3.5发布:
- 特点:ODBC 3.5引入了Unicode支持,为多语言环境下的数据库应用提供了更多的兼容性。
- Windows控制面板的进化:随着Unicode支持的加入,Windows的ODBC管理工具在控制面板中优化了对非英文字符集的支持。
6. 2007年 - ODBC 3.8发布:
- 特点:ODBC 3.8加强了对64位操作系统的支持,提升了数据访问的稳定性。
- Windows控制面板的优化:在64位Windows操作系统中,ODBC数据源管理工具得到了进一步优化,以支持64位数据访问。
7. 2011年 - ODBC 3.9发布:
- 特点:ODBC 3.9加强了对大数据和复杂查询的支持,尤其是对高可用性和灾难恢复环境的优化。
- Windows控制面板的增强:在配置ODBC数据源时,Windows控制面板提供了更多自定义和高级选项,使管理员能够更好地管理数据库连接。
8. 2016年 - ODBC 4.0发布:
- 特点:ODBC 4.0改进了对云数据库和分布式系统的兼容性,并且提供了对NoSQL数据库的支持。
- Windows控制面板的扩展:Windows控制面板中的ODBC数据源管理工具增加了对新的数据库类型和服务的支持,尤其是云平台和分布式数据库。
9. 近年来的进展:
- 趋势:随着大数据、云计算和分布式系统的普及,ODBC驱动程序持续更新,适应现代数据库的需求。
- Windows控制面板的变化:控制面板中的ODBC管理工具不断改进,使得用户能够更容易地配置和管理各种数据库连接,尤其是在跨平台和云环境中的操作。
从最初的ODBC 1.0到ODBC 4.0及后续版本,ODBC技术不断演化,提供了更强大的功能和更广泛的兼容性,而Windows控制面板中的ODBC数据源管理工具也随着版本的更新而变得更加灵活和强大,为用户提供了更加简便和高效的数据库管理和配置方式。

Windows控制面板中的ODBC数据源管理工具(ODBC Data Source Administrator)用于配置和管理应用程序与数据库之间的连接。它提供了一个统一的界面,允许用户在Windows环境下轻松地管理不同类型的数据库连接。以下是一些典型的应用场景:
1. 数据库应用开发
- 场景描述:开发人员在构建桌面应用程序时,通常需要与不同的数据库系统(如SQL Server、MySQL、Oracle等)进行交互。通过Windows控制面板中的ODBC数据源管理工具,可以为应用程序配置和管理数据库连接,简化数据库交互的过程。
- 典型应用:开发一个Windows桌面应用程序,需要访问后台的SQL Server或MySQL数据库。开发人员可以通过ODBC连接池设置数据库的登录信息、连接字符串等,并通过应用程序使用这些连接。
2. 数据迁移与集成
- 场景描述:在不同的数据库系统之间迁移数据时,ODBC可以作为一个桥梁,帮助将数据从一个数据库导入到另一个数据库。
- 典型应用:企业A使用Oracle数据库存储业务数据,但计划迁移到SQL Server。通过ODBC数据源管理工具,管理员可以配置从Oracle到SQL Server的ODBC连接,然后使用ETL工具(如SQL Server Integration Services,SSIS)或自定义脚本来迁移数据。
3. 数据报表与分析
- 场景描述:许多商业智能(BI)和报表工具(如Microsoft Access、Excel、Power BI等)支持ODBC连接,用户可以通过配置ODBC数据源,连接不同类型的数据库,生成报告和进行数据分析。
- 典型应用:财务团队使用Excel生成定期的财务报表,数据存储在SQL Server数据库中。管理员通过ODBC设置与SQL Server的连接,使得Excel能够直接通过ODBC查询数据库并生成报表。
4. 多平台数据访问
- 场景描述:不同操作系统和平台的应用程序可能需要访问相同的数据库。ODBC提供了一个跨平台的数据访问解决方案,允许Windows应用程序访问Linux、Unix或Mac OS上的数据库。
- 典型应用:在跨平台环境中,Windows上的应用程序需要访问部署在Linux服务器上的PostgreSQL数据库。管理员可以通过ODBC配置数据源,使得Windows应用程序能够透明地访问Linux上的数据库。
5. 客户端与数据库交互
- 场景描述:许多客户端应用程序需要通过ODBC连接到远程数据库,进行数据查询、插入和更新。此时,ODBC数据源为客户端提供了与数据库的通信桥梁。
- 典型应用:销售人员使用的Windows客户端应用程序需要访问远程的客户关系管理(CRM)数据库。通过在Windows控制面板配置ODBC数据源,客户端应用程序可以方便地连接到CRM数据库,查询和更新客户信息。
6. 企业级系统的集中管理
- 场景描述:在企业级系统中,数据库连接的配置通常集中在Windows服务器上。ODBC数据源管理工具允许系统管理员统一管理多个数据库的连接,确保所有数据库连接的正确性和安全性。
- 典型应用:IT部门为公司内部多个应用(如HR系统、财务系统、库存管理系统)配置统一的数据库连接。通过ODBC数据源管理工具,管理员可以集中管理这些连接的配置,确保所有系统可以顺利访问共享的数据库资源。
7. 支持大数据和云数据库
- 场景描述:随着云计算和大数据技术的发展,许多企业将数据存储在云数据库或大数据平台中。ODBC作为一个标准接口,可以帮助用户通过Windows应用访问这些现代数据库系统。
- 典型应用:公司使用Amazon Redshift或Google BigQuery存储大数据,通过Windows控制面板中的ODBC数据源配置工具,管理员可以创建连接以便桌面应用程序或BI工具访问这些云数据库。
8. 数据库驱动的配置与调优
- 场景描述:数据库管理员使用ODBC管理工具,定期检查和优化数据库连接。通过ODBC数据源配置,管理员可以管理连接池、调整连接参数,以及监控和调优数据库连接性能。
- 典型应用:DBA(数据库管理员)定期检查ODBC数据源配置,确保数据库连接的最大化性能,配置适当的连接池大小,避免因连接数过多而导致的性能瓶颈。
9. 提供第三方软件的数据库连接支持
- 场景描述:一些第三方应用软件(如CRM、ERP系统等)使用ODBC作为与数据库通信的协议。这些软件通过Windows控制面板配置的ODBC数据源来访问不同类型的数据库。
- 典型应用:企业部署了一个第三方CRM系统,该系统使用ODBC来连接后端数据库(如MySQL或SQL Server)。管理员通过ODBC数据源配置工具,设置好数据库连接信息,确保CRM系统能够正确访问数据库。
通过Windows控制面板中的ODBC数据源管理工具,用户和开发者能够方便地配置、管理和优化不同数据库的连接。它不仅为开发者提供了多种数据库的统一接入方式,还为管理员提供了一个集中的数据库连接管理平台。无论是在应用开发、数据迁移、报表分析,还是在企业级系统的维护中,ODBC都能发挥重要作用。


PowerShell 可以配置和管理 ODBC Data Sources。下面是一个示例,演示如何使用 PowerShell 创建一个系统级的 ODBC 数据源。
# 导入相关模块
Import-Module -Name 'DBD::ODBC'
# 定义 ODBC 数据源信息
$dsnName = "MyDataSource" # 数据源名称
$driverName = "SQL Server" # 驱动程序名称
$serverName = "localhost" # 服务器名称
$databaseName = "MyDatabase" # 数据库名称
# 创建 ODBC 数据源
$odbcCmd = "Add-OdbcDsn -Name '$dsnName' -DriverName '$driverName' -Platform 32-bit -SetPropertyValue @('Server=$serverName', 'Database=$databaseName')"
Invoke-Expression -Command $odbcCmd
# 验证是否创建成功
$dsnList = Get-OdbcDsn
if ($dsnList.Name -contains $dsnName) {
Write-Host "ODBC Data Source '$dsnName' created successfully."
} else {
Write-Host "Failed to create ODBC Data Source '$dsnName'."
}
在上述示例中,我们使用了 Add-OdbcDsn 命令来创建一个名为 MyDataSource 的 ODBC 数据源。具体的参数可以根据实际情况进行修改,例如驱动程序名称、服务器名称、数据库名称等。最后通过 Get-OdbcDsn 命令验证数据源是否创建成功。
请注意,以上示例中使用的是 PowerShell 的 DBD::ODBC 模块,你需要确保已正确安装了该模块。另外,可能需要以管理员权限运行 PowerShell 来执行上述命令。
这只是一个简单的示例,实际上,PowerShell 还提供了其他命令和方法来配置和管理 ODBC 数据源,例如修改数据源配置、删除数据源等。你可以根据具体需求使用适当的命令和参数来完成相应操作。
使用 PowerShell 删除已存在的系统级 ODBC 数据源。
# 定义要删除的 ODBC 数据源名称
$dsnName = "MyDataSource"
# 删除 ODBC 数据源
$odbcCmd = "Remove-OdbcDsn -Name '$dsnName' -Confirm:$false"
Invoke-Expression -Command $odbcCmd
# 验证是否删除成功
$dsnList = Get-OdbcDsn
if ($dsnList.Name -notcontains $dsnName) {
Write-Host "ODBC Data Source '$dsnName' removed successfully."
} else {
Write-Host "Failed to remove ODBC Data Source '$dsnName'."
}
在这个示例中,我们使用 Remove-OdbcDsn 命令来删除名为 MyDataSource 的 ODBC 数据源。通过 -Confirm:$false 参数可以避免在删除时出现确认提示。
使用 PowerShell 来修改已存在的 ODBC 数据源的属性。在这个示例中,我们将修改名为 MyDataSource 的数据源的服务器名称和数据库名称。
# 定义要修改的 ODBC 数据源信息
$dsnName = "MyDataSource" # 数据源名称
$serverName = "newServer" # 新的服务器名称
$databaseName = "newDatabase" # 新的数据库名称
# 更新 ODBC 数据源属性
$odbcCmd = "Set-OdbcDsn -Name '$dsnName' -SetPropertyValue @('Server=$serverName', 'Database=$databaseName')"
Invoke-Expression -Command $odbcCmd
# 验证是否更新成功
$dsnList = Get-OdbcDsn
$dsn = $dsnList | Where-Object { $_.Name -eq $dsnName }
if ($dsn.Server -eq $serverName -and $dsn.Database -eq $databaseName) {
Write-Host "ODBC Data Source '$dsnName' updated successfully."
} else {
Write-Host "Failed to update ODBC Data Source '$dsnName'."
}
在这个示例中,我们使用 Set-OdbcDsn 命令来更新名为 MyDataSource 的 ODBC 数据源的服务器名称和数据库名称。通过 -SetPropertyValue 参数可以设置相应的属性值。
最后,我们使用 Get-OdbcDsn 命令和 Where-Object 过滤器来验证数据源是否更新成功。
需要注意的是,以上示例中的参数值仅供演示目的,实际情况中,你需要根据具体的数据库系统和连接信息来设置相应的参数值。另外,可能需要以管理员权限运行 PowerShell 来执行上述命令。
使用 PowerShell 测试 ODBC 数据源的连接状态。
# 定义要测试的 ODBC 数据源信息
$dsnName = "MyDataSource" # 数据源名称
# 测试 ODBC 数据源连接状态
$conn = New-Object -TypeName System.Data.Odbc.OdbcConnection("Dsn=$dsnName")
try {
$conn.Open()
Write-Host "ODBC Data Source '$dsnName' connection test succeeded."
} catch {
Write-Host "Failed to connect to ODBC Data Source '$dsnName'. Error message: $($_.Exception.Message)"
} finally {
if ($conn.State -eq 'Open') {
$conn.Close()
}
}
在这个示例中,我们使用 System.Data.Odbc.OdbcConnection 类来创建一个 ODBC 数据源连接,并尝试打开该连接。如果连接成功,则输出“连接成功”的消息;否则,输出相应的错误消息。
需要注意的是,以上示例中的参数值仅供演示目的,实际情况中,你需要根据具体的数据库系统和连接信息来设置相应的参数值。另外,可能需要以管理员权限运行 PowerShell 来执行上述命令。

浙公网安备 33010602011771号