接続の確立
CData Cmdlets ユーザーは、データモジュールをインストールし、接続プロパティを設定してスクリプトを開始できます。このセクションでは、CSV インポートおよびエクスポートcmdlet などのネイティブPowerShell cmdlet でDomino Cmdlets を使用する例を示します。
インストールおよび接続
PSGet がある場合は、PowerShell Gallery から次のコマンドを使ってcmdlet をインストールできます。CData サイトからセットアップを取得することもできます。
Install-Module DominoCmdlets
プロファイルに以下を追加すると、次のセッションでcmdlet がロードされます。
Import-Module DominoCmdlets;
Connect-Domino cmdlet を使って、別のcmdlet に渡すことができる接続オブジェクトを作成します。
$conn = Connect-Domino -URL "http://dominoserver:3002/" -DataSource "names" -TableTypes "Tables" -AuthScheme "OAuthPassword" -User "MyUser" -Password "MyPassword"
Domino への接続
次のプロパティを設定し、Domino データに接続します。- URL:Domino データベースをホスティングしているサーバーのホスト名またはIP アドレス。Domino データベースをホスティングしているサーバーのポートを含めます。例:http://sampleserver:1234/
- DatabaseScope:Domino Web UI でのスコープ名。本製品 は、指定されたスコープに適合するスキーマのフォームとビューを公開します。Domino Admin UI で、サイドバーのScopes メニューを選択します。このプロパティを既存のスコープ名に設定します。
Domino への認証
Domino は、ログイン資格情報またはAzure Active Directory OAuth アプリケーションによる認証をサポートしています。
ログイン資格情報
AuthScheme をOAuthPassword に設定し、以下のプロパティを設定します。- User:認証するDomino ユーザーのユーザー名。
- Password:認証するDomino ユーザーに関連付けられたパスワード。
本製品 は、ログイン資格情報を使用して、OAuthトークン交換を自動で実行します。
AzureAD
この認証方法では、Azure Active Directory をIdP として使用し、JWT トークンを取得します。Azure Active Directory にカスタムOAuth アプリケーションを作成し、IdP として設定する必要があります。そのためには、こちらの手順に従います。AuthScheme をAzureAD に設定し、以下のプロパティを設定します。
- OAuthClientId:カスタムOAuth アプリケーションを設定する際に取得したClient ID。
- OAuthClientSecret:カスタムOAuth アプリケーションを設定する際に取得したClient secret。
- CallbackURL:アプリの登録時に定義されたリダイレクトURI。例:https://localhost:33333
- AzureTenant:データにアクセスするために使用されるMicrosoft Online テナント。companyname.microsoft.com 形式の値またはテナントId を指定します。
- テナントId は、Azure ポータルのAzure Active Directory -> プロパティページに表示されるディレクトリId と同じものです。
データの取得
Select-Domino cmdlet はデータを取得するためのネイティブなPowerShell インターフェースを提供します。
$results = Select-Domino -Connection $conn -Table "Person" -Columns @("unid, FirstName") -Where "City='Miami'"Invoke-Domino cmdlet はSQL インターフェースを提供します。このcmdlet を使うと、Query パラメータを介してSQL クエリを実行できます。
cmdlet 出力のパイプ処理
cmdlet は行オブジェクトをパイプラインに一度に一行ずつ返します。以下は、結果をCSV ファイルにエクスポートします。
Select-Domino -Connection $conn -Table Person -Where "City = 'Miami'" | Select -Property * -ExcludeProperty Connection,Table,Columns | Export-Csv -Path c:\myPersonData.csv -NoTypeInformation
Select-Domino からの結果をSelect-Object cmdlet にパイプして、Export-CSV cmdlet にパイプする前にいくつかのプロパティを実行していることがわかるでしょう。これをする理由は、CData Cmdlets は接続、テーブル、およびカラムの情報を結果セットの各行オブジェクトに追加しますが、必ずしもその情報がCSV ファイルに必要ではないからです。
ただし、これによってcmdlet の出力を別のcmdlet にパイプすることが容易になります。以下に、結果セットをJSON に変換する例を示します。
PS C:\> $conn = Connect-Domino -URL "http://dominoserver:3002/" -DataSource "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" }