接続の確立
CData Cmdlets ユーザーは、データモジュールをインストールし、接続プロパティを設定してスクリプトを開始できます。このセクションでは、CSV インポートおよびエクスポートcmdlet などのネイティブPowerShell cmdlet でGaroon Cmdlets を使用する例を示します。
インストールおよび接続
PSGet がある場合は、PowerShell Gallery から次のコマンドを使ってcmdlet をインストールできます。CData サイトからセットアップを取得することもできます。
Install-Module GaroonCmdlets
プロファイルに以下を追加すると、次のセッションでcmdlet がロードされます。
Import-Module GaroonCmdlets;
Connect-Garoon cmdlet を使って、別のcmdlet に渡すことができる接続オブジェクトを作成します。
$conn = Connect-Garoon
Garoon への接続
認証値に加えて、下記のパラメータを使いGaroon に接続しデータを取得します。
- Url:アカウントのURL。
NOTE:サポートされているバージョンで許容されるURL 形式は以下のとおりです。
- Cloud 版:https://(subdomain).cybozu.com
- Package 版(Windows 環境):http://(server IP address or host name)/scripts/(installation identifier)/grn.exe
- Package 版(Linux 環境):http://(server IP address or host name)/cgi-bin/(installation identifier)/grn.cgi
Garoon への認証
Garoon は、以下の認証メソッドをサポートしています。
パスワード
Garoon への認証には、以下を設定する必要があります。
- User:アカウントのユーザー名。
- Password:アカウントのパスワード。
- AuthScheme:AuthScheme をPassword に設定。
追加のセキュリティ
これまでに説明した認証スキームに加えて、Garoon はBasic 認証ヘッダーおよびSSL 証明書の形で追加のセキュリティを提供します。Basic
Basic 認証を使用しているGaroon 環境では、追加のBasic 資格情報を渡す必要があります。そのためには、次を設定してください。
- BasicAuthUser - Basic ログイン名。
- BasicAuthPassword - Basic パスワード。
クライアントSSL
認証情報に加えて、リクエストの受け入れにSSL 証明書が必須となるようGaroon を設定することができます。そのためには、次を設定してください。
- SSLClientCert - SSL 証明書の証明書を含むファイル。または、クライアント証明書のための証明書ストア名。
- SSLClientCertType - 証明書の種類。
- SSLClientCertSubject - (オプション)証明書ストアで証明書を検索する際に、ストア内でこのプロパティの値を含むサブジェクトを検索します。
- SSLClientCertPassword - 証明書ストアでパスワードが必要とされる場合、このプロパティを使用してパスワードを指定し、証明書ストアにアクセスできます。
データの取得
Select-Garoon cmdlet はデータを取得するためのネイティブなPowerShell インターフェースを提供します。
$results = Select-Garoon -Connection $conn -Table "Events" -Columns @("Id, EventMenu") -Where "CreatorName='Bob'"Invoke-Garoon cmdlet はSQL インターフェースを提供します。このcmdlet を使うと、Query パラメータを介してSQL クエリを実行できます。
cmdlet 出力のパイプ処理
cmdlet は行オブジェクトをパイプラインに一度に一行ずつ返します。以下は、結果をCSV ファイルにエクスポートします。
Select-Garoon -Connection $conn -Table Events -Where "CreatorName = 'Bob'" | Select -Property * -ExcludeProperty Connection,Table,Columns | Export-Csv -Path c:\myEventsData.csv -NoTypeInformation
Select-Garoon からの結果をSelect-Object cmdlet にパイプして、Export-CSV cmdlet にパイプする前にいくつかのプロパティを実行していることがわかるでしょう。これをする理由は、CData Cmdlets は接続、テーブル、およびカラムの情報を結果セットの各行オブジェクトに追加しますが、必ずしもその情報がCSV ファイルに必要ではないからです。
ただし、これによってcmdlet の出力を別のcmdlet にパイプすることが容易になります。以下に、結果セットをJSON に変換する例を示します。
PS C:\> $conn = Connect-Garoon PS C:\> $row = Select-Garoon -Connection $conn -Table "Events" -Columns (Id, EventMenu) -Where "CreatorName = 'Bob'" | select -first 1 PS C:\> $row | ConvertTo-Json { "Connection": { }, "Table": "Events", "Columns": [ ], "Id": "MyId", "EventMenu": "MyEventMenu" }
データの削除
以下は、抽出条件に合うあらゆるレコードを削除します。
Select-Garoon -Connection $conn -Table Events -Where "CreatorName = 'Bob'" | Remove-Garoon
データの変更
cmdlet はデータクレンジング同様、データの変換を容易にします。次の例は、レコードがすでに存在するかどうか、挿入する前に更新が必要かどうかをチェックしてから、CSV ファイルのデータをGaroon にロードします。
Import-Csv -Path C:\MyEventsUpdates.csv | %{ $record = Select-Garoon -Connection $conn -Table Events -Where ("Id = `'"+$_.Id+"`'") if($record){ Update-Garoon -Connection $conn -Table Events -Columns @("Id","EventMenu") -Values @($_.Id, $_.EventMenu) -Where "Id = `'$_.Id`'" }else{ Add-Garoon -Connection $conn -Table Events -Columns @("Id","EventMenu") -Values @($_.Id, $_.EventMenu) } }