PowerShell for Non-N00bs: LiveMeeting XML API and You

I work with Microsoft LiveMeeting regularly, and have found PowerShell's ability to interact with its public XML API interface to be of great value.  There's even a blog devoted to this topic (last update August 11, 2008 - it's a stable interface, so there's little change.)

Here's a scrubbed screen scrape of me getting my membership data from my LiveMeeting account:

$wc = new-object system.net.WebClient;

$getPostingUrlURL = 'https://www.livemeeting.com/cc/your_cc/xml/4.0/GetPostingURLRequest';
[xml]$getPostingUrlReply = $wc.DownloadString($getPostingUrlURL);
$postingUrl = $getPostingUrlReply

.PlaceWareConfCenter.GetPostingURLReply.url;

 

$query = @'
<PlaceWareConfCenter authUser="timid" authPassword="scrubbed">
<GetUserProfileRequest/>
</PlaceWareConfCenter>
'@

;

[xml]$getUserProfileReply = $wc.UploadString($postingUrl, "POST", $query);
$getUserProfileReply.Save([Console]::Out

);

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<PlaceWareConfCenter>
<GetUserProfileReply>
<User userID="timid" userName="Timid at MSDN">
<OptionList>
<BooleanOption value="False" name="publishRealAudio">
</BooleanOption>
<!-- cut for brevity's sake -->
</OptionList>
</User>
</GetUserProfileReply>
</PlaceWareConfCenter

>

 

Oh, one neat thing about System.Net.XML objects - they format data very nicely.