Accessing Report Server from PowerShell
It is easy! Just create and compile SOAP proxy, and load it into PowerShell. Create instance, set credentials and URL.
wsdl.exe /out:rs2005.cs http://rshost/reportserver/reportservice2005.asmx
csc /t:library rs2005.cs
[Reflection.Assembly]::LoadFrom("rs2005.dll")
$rs = new-object ReportingService2005
$rs.Credentials = [System.Net.CredentialCache]::DefaultCredentials
Now, $rs will talk to whatever server was set in step 1. Server URL can be changed easily:
$rs.Url = "http://anotherserver/reportserver/reportservice2005.asmx"
Now we can call any SOAP API methods:
$rs.GetSystemProperties($null)
$rs.ListChildren("/",$false)
etc, etc.