PowerShell から Google カレンダー、連絡先、ドキュメントをクエリ
PowerShell から Google Drive に素早く簡単にアクセスする方法をお探しですか?CData ADO.NET Provider for Google Apps は、PowerShell スクリプトから利用できる使いやすい ADO.NET インターフェースを提供します。PowerShell スクリプトで付属の .NET オブジェクトを使用するだけで、Google Apps に接続して、同期、自動化、ダウンロードなどが可能になります!
Google Apps への接続
PowerShell から CData ADO.NET Provider に接続するには、まずインストールディレクトリの lib サブフォルダにあるプロバイダーアセンブリをロードします。
[Reflection.Assembly]::LoadFile("C:\Program Files\\CData\\CData ADO.NET Provider for Google Apps\lib\System.Data.CData.GoogleApps.dll")
PowerShell では、以下のコードで接続プロパティを設定できます。
$constr = "OAuthClientId=username;OAuthClientSecret=password;InitiateOAuth=true;" $conn= New-Object System.Data.CData.GoogleApps.GoogleAppsConnection($constr) $conn.Open()
Google Apps では、ユーザー名とパスワードの代わりに OAuth 認証を使用します。OAuth 認証値の取得方法については、ヘルプドキュメントの「はじめに」ガイドを参照してください。
PowerShell からの作成、取得、更新、削除
CData Data Provider を使用すると、PowerShell から標準的な SQL クエリを実行できます。以下のコードは、すべての CData ADO.NET Provider で SQL コマンドを実行するために使用できます。
GoogleAppsDataAdapter を使用して、Google Apps に対する CRUD(作成、読み取り、更新、削除)クエリを実行できます。次の例では、SELECT クエリを使用して Google Drive 内のドキュメントとフォルダの情報を一覧表示します。GoogleAppsDataAdapter の Fill メソッドを使用して、DataTable に結果を格納します。
$sql="SELECT Title, Format, Extension, Viewed, Modified from Documents"
$da= New-Object System.Data.CData.GoogleApps.GoogleAppsDataAdapter($sql, $conn)
$dt= New-Object System.Data.DataTable
$da.Fill($dt)
$dt.Rows | foreach {
Write-Host $_.updated $_.title
}
その他の Google Apps 操作
Google Apps Data Provider を使用すると、ドキュメントのアップロードやダウンロード、Google Maps からの経路案内の取得などを簡単に行えます。以下のコードは、Google Drive 内のドキュメントをダウンロードします。
$cmd= New-Object System.Data.CData.Google.GoogleCommand("DownloadDocument", $conn)
$cmd.CommandType= [System.Data.CommandType]'StoredProcedure'
$cmd.Parameters.Add( (New-Object System.Data.CData.Google.GoogleParameter("@DocumentType", "TXT")) )
$cmd.Parameters.Add( (New-Object System.Data.CData.Google.GoogleParameter("@Title", "myfile")) )
$cmd.Parameters.Add( (New-Object System.Data.CData.Google.GoogleParameter("@LocalFile", "d:\myfile.txt")) )
$reader = $cmd.ExecuteReader()
ストアドプロシージャは、SELECT、INSERT、UPDATE、DELETE ステートメントでは表現できない Google API の機能(IM の送信や検索など)を利用可能にします。クエリの例やストアドプロシージャの詳細については、ヘルプドキュメントの「ADO.NET の使用」の章を参照してください。利用可能なストアドプロシージャとその入力については、「データモデル」の章を参照してください。
CodeProject