Are you looking for a quick and easy way to access your Google Docs from PowerShell? The
Google Data Provider provides an easy-to-use
ADO.NET interface that you can take advantage of with your PowerShell Scripts. Simply use the included SQL
like .NET objects (GoogleConnection, GoogleCommand, GoogleDataAdapter, etc) in your PowerShell scripts to
connect to your Google Apps accounts and synchronize, automate, download, and more!
Using the Google Data Provider in PowerShell to List Google Docs:
# Load the Google Data Provider assembly
[Reflection.Assembly]::LoadFile("C:\Program Files\RSSBus\RSSBus Google Data Provider\lib\System.Data.RSSBus.Google.dll")
# Connect to Google
$constr = "User=[username];Password=[password]"
$conn= New-Object System.Data.RSSBus.Google.GoogleConnection($constr)
$conn.Open()
$sql="SELECT Name, AuthorName, Type, Updated, Weblink from Documents"
$da= New-Object System.Data.RSSBus.Google.GoogleDataAdapter($sql, $conn)
$dt= New-Object System.Data.DataTable
$da.Fill($dt)
$dt.Rows | foreach {
Write-Host $_.updated $_.name
}
Listing is only the first step. With full CRUD support, you can use the Google Data Provider to
easily upload and download documents as well. The following bit of PowerShell code downloads one
of the documents listed above:
Download a file from Google Docs:
$cmd= New-Object System.Data.RSSBus.Google.GoogleCommand("DownloadDocument", $conn)
$cmd.CommandType= [System.Data.CommandType]'StoredProcedure'
$cmd.Parameters.Add( (New-Object System.Data.RSSBus.Google.GoogleParameter("@Type", "TXT")) )
$cmd.Parameters.Add( (New-Object System.Data.RSSBus.Google.GoogleParameter("@Name", "myfile")) )
$cmd.Parameters.Add( (New-Object System.Data.RSSBus.Google.GoogleParameter("@LocalFile", "d:\myfile.txt")) )
$reader = $cmd.ExecuteReader()
Likewise, calling the UploadDocument stored procedure allows your scripts to
upload documents directly to Google Docs.
As you can see, the Google Data Provider provides a hassle-free way to access the features of Google Apps directly from PowerShell script, and eliminates
the headache involved with authentication, security, etc. Happy scripting!
CodeProject