Establishing a Connection
With the CData Cmdlets users can install a data module, set the connection properties, and start scripting. This section provides examples of using our Domino Cmdlets with native PowerShell cmdlets, like the CSV import and export cmdlets.
Connecting to Domino
To connect to Domino data, set the following properties:- URL: The host name or IP of the server hosting the Domino database. Include the port of the server hosting the Domino database. For example: http://sampleserver:1234/
- DatabaseScope: The name of a scope in the Domino Web UI. The cmdlet exposes forms and views for the schema governed by the specified scope. In the Domino Admin UI, select the Scopes menu in the sidebar. Set this property to the name of an existing scope.
Authenticating to Domino
Domino supports authenticating via either login credentials (OAuthPassword) or Microsoft Entra ID (AzureAD).
Login Credentials
Set these properties:- AuthScheme: OAuthPassword.
- User: The authenticating Domino user's login.
- Password: The authenticating Domino user's password.
The cmdlet uses the login credentials to automatically perform an OAuth token exchange.
Microsoft Entra ID (Azure AD)
Note: Microsoft has rebranded Azure AD as Entra ID. In topics that require the user to interact with the Entra ID Admin site, we use the same names Microsoft does. However, there are still CData connection properties whose names or values reference "Azure AD".
This authentication method uses Azure Active Directory as an identity provider (IdP) to obtain a JWT token. Before a user can authenticate via Azure AD, a user with admin privileges must create a custom Azure AD OAuth application in Azure Active Directory and configure it as an IdP, as described in Creating a Custom Entra ID (Azure AD) Application.
Once the custom Azure AD application has been completed, set these properties:
- AuthScheme: AzureAD.
- OAuthClientId: The Client ID that was obtained during custom Azure AD application creation.
- OAuthClientSecret: The Client Secret that was obtained during custom Azure AD application creation.
- CallbackURL : The redirect URI that was specified during custom Azure AD application registration. For example, https://localhost:33333.
- AzureTenant: The Microsoft Online tenant being used to access data.
Supply either the Tenant ID, or a value in the form companyname.microsoft.com.
(The Tenant ID is the same as the directory ID shown in the Azure Portal's Azure Active Directory > Properties page.)
Creating a Connection Object
You can then use the Connect-Domino cmdlet to create a connection object that can be passed to other cmdlets:
$conn = Connect-Domino -URL "http://dominoserver:3002/" -DatabaseScope "names" -TableTypes "Tables" -AuthScheme "OAuthPassword" -User "MyUser" -Password "MyPassword"
Retrieving Data
The Select-Domino cmdlet provides a native PowerShell interface for retrieving data:
$results = Select-Domino -Connection $conn -Table "Person" -Columns @("unid, FirstName") -Where "City='Miami'"
The Invoke-Domino cmdlet provides an SQL interface. This cmdlet can be used to execute an SQL query via the Query parameter.
Piping Cmdlet Output
The cmdlets return row objects to the pipeline one row at a time. The following line exports results to a CSV file:
Select-Domino -Connection $conn -Table Person -Where "City = 'Miami'" | Select -Property * -ExcludeProperty Connection,Table,Columns | Export-Csv -Path c:\myPersonData.csv -NoTypeInformation
You will notice that we piped the results from Select-Domino into a Select-Object cmdlet and excluded some properties before piping them into an Export-CSV cmdlet. We do this because the CData Cmdlets append Connection, Table, and Columns information onto each row object in the result set, and we do not necessarily want that information in our CSV file.
However, this makes it easy to pipe the output of one cmdlet to another. The following is an example of converting a result set to JSON:
PS C:\> $conn = Connect-Domino -URL "http://dominoserver:3002/" -DatabaseScope "names" -TableTypes "Tables" -AuthScheme "OAuthPassword" -User "MyUser" -Password "MyPassword"
PS C:\> $row = Select-Domino -Connection $conn -Table "Person" -Columns (unid, FirstName) -Where "City = 'Miami'" | select -first 1
PS C:\> $row | ConvertTo-Json
{
"Connection": {
},
"Table": "Person",
"Columns": [
],
"unid": "Myunid",
"FirstName": "MyFirstName"
}