Set-OdbcDsn
Configures properties for existing ODBC DSNs.
Syntax
Set-OdbcDsn
[-PassThru]
[-SetPropertyValue <String[]>]
[-RemovePropertyValue <String[]>]
[-InputObject] <CimInstance[]>
[-CimSession <CimSession[]>]
[-ThrottleLimit <Int32>]
[-AsJob]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-OdbcDsn
[-PassThru]
[-SetPropertyValue <String[]>]
[-RemovePropertyValue <String[]>]
[-Name] <String>
[-DriverName <String>]
[-Platform <String>]
-DsnType <String>
[-CimSession <CimSession[]>]
[-ThrottleLimit <Int32>]
[-AsJob]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
The Set-OdbcDsn cmdlet configures the properties for existing Open Database Connectivity (ODBC) data source names (DSNs). Specify properties to add or modify by using the SetPropertyValue parameter. Specify properties to remove by using the RemovePropertyValue parameter.
Use the Add-OdbcDsn cmdlet to add a new DSN.
For more information about ODBC, data source names, and drivers, see Microsoft Open Database Connectivity (ODBC), Data Sources, and Drivers on the Microsoft Developer Network.
Examples
Example 1: Change a 64-bit ODBC DSN to use a specified database
PS C:\> Set-OdbcDsn -Name "MyPayroll" -DsnType "System" -Platform "64-bit" -SetPropertyValue "Database=Payroll"
This command changes the 64-bit ODBC System DSN named MyPayroll to use a database named Payroll. This example is designed for SQL Server drivers.
Example 2: Change a native platform ODBC DSN to use a specified database
PS C:\> Set-OdbcDsn -Name "MyPayroll" -DsnType "System" -SetPropertyValue "Database=Payroll"
This command changes the native platform ODBC System DSN named MyPayroll to use a database named Payroll. This example resembles the previous example, but it does not specify the Platform parameter.Therefore, configures a DSN on the native platform.
Example 3: Change a User DSN to use Windows Authentication and a specified database
PS C:\> Set-OdbcDsn -Name "MyPayroll" -DsnType "User" -Platform "32-bit" -RemovePropertyValue @("UID", "PWD") -SetPropertyValue @("Trusted_Connection=Yes", "Database=Payroll")
This command changes the specified 32-bit ODBC User DSN named MyPayroll from using SQL Server Authentication to using Windows Authentication. This example is designed for SQL Server drivers. Also, the command specifies a value of Payroll for the Database key.
Example 4: Change specified DSNs to use a specified database file
PS C:\> Set-OdbcDsn -Name "*Payroll*" -DsnType "All" -Platform "All" -DriverName "Microsoft Access Driver (*.mdb, *.accdb)" -SetPropertyValue 'Dbq=C:\payroll.accdb'
This command changes all ODBC User DSNs and System DSNs on both platforms with names that contain Payroll and that use a driver named Microsoft Access Driver (*.mdb, *.accdb) to use the database file C:\payroll.accdb.
Example 5: Migrate all DSNs that use a driver with name that starts with a string
PS C:\> Get-OdbcDsn -DriverName "SQL Server*" -DsnType "All" -Platform "All" | Where-Object{ ($_.Attribute["Server"] -eq "oldServer") } | Set-OdbcDsn -SetPropertyValue "Server=newServer"
This command migrates the oldServer to newServer for all User DSNs and System DSNs that use a driver that has a name that starts with SQL Server.
Example 6: Change a 64-bit ODBC System DSN to use a specified database
PS C:\> $sysDsn = Set-OdbcDsn -Name "MyPayroll" -DsnType "System" -Platform "All" -SetPropertyValue "Database=Payroll" -PassThru
This command changes the 64-bit ODBC System DSN named MyPayroll to use a database named Payroll, and then stores the result in the $sysDsn variable. The command includes the PassThru parameter. Without PassThru, the cmdlet does not return anything.
Example 7: Migrates DSNs that use a driver with name that starts with a string by using a variable
PS C:\> $DsnArray = Get-OdbcDsn -DriverName "SQL Server*" | Where-Object{ ($_.Attribute["Server"] -eq "oldServer") }
PS C:\> Set-OdbcDsn -InputObject $DsnArray -SetPropertyValue "Server=newServer"
The first command uses the Get-OdbcDsn cmdlet to get each driver that has a name that starts with SQL Server and has a value of oldServer for the Server attribute. The command stores the results in the $DsnArray variable.
The second command sets the value for Server to a new value.
Parameters
-AsJob
Runs the cmdlet as a background job. Use this parameter to run commands that take a long time to complete.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CimSession
Runs the cmdlet in a remote session or on a remote computer. Enter a computer name or a session object, such as the output of a New-CimSession or Get-CimSession cmdlet. The default is the current session on the local computer.
Type: | CimSession[] |
Aliases: | Session |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Prompts you for confirmation before running the cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DriverName
Specifies the name of a driver. This cmdlet modifies the ODBC DSN that uses the driver that this parameter specifies. You can use wildcard characters. If you do not specify this parameter, this cmdlet modifies DSNs for all drivers.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-DsnType
Specifies the type of an ODBC DSN. This cmdlet modifies a DSN of the type that this parameter specifies. The acceptable values for this parameter are:
- User
- System
- All
Type: | String |
Accepted values: | User, System, All |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-InputObject
Specifies the input object that is used in a pipeline command.
Type: | CimInstance[] |
Aliases: | Dsn |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Specifies the name of an ODBC DSN. This cmdlet modifies the DSN that this parameter specifies. You can use wildcard characters to specify more than one ODBC DSN.
Type: | String |
Aliases: | DsnName |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PassThru
Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Platform
Specifies the platform architecture. This cmdlet modifies the ODBC DSN that belongs to the architecture that this parameter specifies. The acceptable values for this parameter are:
- 32-bit
- 64-bit
- All
The default value is 32-bit on a 32-bit process. The default value is 64-bit on a 64-bit process. If you run this cmdlet in a remote CIM session, this parameter refers to the platform architecture on the remote computer.
Type: | String |
Accepted values: | 32-bit, 64-bit, All |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-RemovePropertyValue
Specifies an array of property values to remove. This cmdlet removes the property values that this parameter specifies from the ODBC DSN. Specify an array of keys to remove.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-SetPropertyValue
Specifies an array of property values. This cmdlet modifies the properties that this parameter specifies for the ODBC DSN. Specify array of strings of the form <key>=<value>.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ThrottleLimit
Specifies the maximum number of concurrent operations that can be established to run the cmdlet.
If this parameter is omitted or a value of 0
is entered, then Windows PowerShell® calculates an optimum throttle limit for the cmdlet based on the number of CIM cmdlets that are running on the computer.
The throttle limit applies only to the current cmdlet, not to the session or to the computer.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |