接続の確立
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 -Server 'https://domino.corp.com' -Database 'names.nsf' -Port '3002' -SSLClientCertType 'PEMKEY_FILE' -SSLClientCert 'full_path_of_certificate.pem' -SSLServerCert '*'
接続の前に
本製品 ではProton コンポーネントのインストールが必要です。通常、 Proton はAppDev パックの一部として配布されます。Proton またはAppDev パックの入手およびインストール方法については、HCL ドキュメント を参照してください。
本製品 は匿名アクセス、またはクライアント証明書の提供によりProton を認証できます。 これらのオプションは両方ともDomino で特定の設定が必要です。
次の2セクションでは、接続に必要な事前設定について説明します。使用したい認証方法に対応するセクションを参照してください。
クライアント証明書による認証の設定
クライアント証明書による認証では、本製品 は専用のユーザーアカウントとして接続します。 このユーザーには、接続するすべてのデータベースに対するdesigner またはそれ以上のアクセス権が付与される必要があります。
また、本製品 を使用するためにはユーザーがインターネット証明書を所持する必要があります。 サーバーコンソールで以下のコマンドを実行することで、Proton にこの証明書を作成させることができます。 APPUSER は本製品 でアクセス設定するユーザーアカウント名、ADMINISTRATOR は証明書を受け取るユーザー名です。
load proton --setupclient "APPUSER" --sendto "ADMINISTRATOR"
新しい証明書は、Notes のADMINISTRATOR メールボックスから利用できます。 証明書は、クライアント証明書(clientcert)およびキー(clientkey)の2ファイルに分けて送信される場合があります。 キーファイルのテキストを証明書ファイルの末尾にコピーアンドペーストして、2つのファイルを結合する必要があります。
匿名認証の設定
匿名アクセスでは、本製品 はAnonymous という一般的なユーザーアカウントで接続します。 接続するすべてのデータベースには、次の2つの権限が設定される必要があります。
- Anonymous ユーザーには、designer またはそれ以上のデータベースへのアクセス権が付与される必要があります。
- データベースは、Maximum Internet name and password オプションがdesigner またはそれ以上のアクセスに設定される必要があります。 この設定は、データベースのAccess Control List オプションのAdvanced タブにあります。
Domino への接続
接続するには以下を設定します。
- Server:Proton サービスを使ってDomino を実行中のサーバーのIP アドレス。
- Port:Proton サービスがリッスンしているポート番号。
- Database:.nsf 拡張子を含むデータベースファイル名。
- SSLServerCert:サーバーが受け入れ可能なTLS/SSL 証明書に設定。コンピュータによって信頼されていない他の証明書はすべて拒否されます。または、"*" を設定するとすべての証明書を受け入れます。
Domino への認証
本製品 は、クライアント証明書を使用してProton に認証することも、匿名アクセスで認証することも可能です。
クライアント証明書による認証
クライアント証明書で認証するには以下を設定します。- AuthScheme:SSLCertificate に設定。
- SSLClientCertType:これは、証明書ファイルの形式と一致する必要があります。 通常、.pem 証明書の場合はPEMKEY_FILE、.pfx 証明書の場合はPFXFILE のいずれかになります。
- SSLClientCert:証明書ファイルへのパス。
匿名認証
匿名認証を使用するには、AuthScheme をAnonymous に設定します。
データの取得
Select-Domino cmdlet はデータを取得するためのネイティブなPowerShell インターフェースを提供します。
$results = Select-Domino -Connection $conn -Table "ByName" -Columns @("Name, Address") -Where "City='Miami'"
Invoke-Domino cmdlet はSQL インターフェースを提供します。このcmdlet を使うと、Query パラメータを介してSQL クエリを実行できます。
cmdlet 出力のパイプ処理
cmdlet は行オブジェクトをパイプラインに一度に一行ずつ返します。以下は、結果をCSV ファイルにエクスポートします。
Select-Domino -Connection $conn -Table ByName -Where "City = 'Miami'" | Select -Property * -ExcludeProperty Connection,Table,Columns | Export-Csv -Path c:\myByNameData.csv -NoTypeInformation
Select-Domino からの結果をSelect-Object cmdlet にパイプして、Export-CSV cmdlet にパイプする前にいくつかのプロパティを実行していることがわかるでしょう。これをする理由は、CData Cmdlets は接続、テーブル、およびカラムの情報を結果セットの各行オブジェクトに追加しますが、必ずしもその情報がCSV ファイルに必要ではないからです。
ただし、これによってcmdlet の出力を別のcmdlet にパイプすることが容易になります。以下に、結果セットをJSON に変換する例を示します。
PS C:\> $conn = Connect-Domino -Server 'https://domino.corp.com' -Database 'names.nsf' -Port '3002' -SSLClientCertType 'PEMKEY_FILE' -SSLClientCert 'full_path_of_certificate.pem' -SSLServerCert '*'
PS C:\> $row = Select-Domino -Connection $conn -Table "ByName" -Columns (Name, Address) -Where "City = 'Miami'" | select -first 1
PS C:\> $row | ConvertTo-Json
{
"Connection": {
},
"Table": "ByName",
"Columns": [
],
"Name": "MyName",
"Address": "MyAddress"
}