Here's a simple example script utilizing the .Net SDK. It requires that a robot is installed on the machine and you have nimbusapi.dll in your c:\temp or some other folder.
add-type -path c:\temp\nimbusapi.dll
function new-uimlogin {
[CmdletBinding()]
param (
[parameter(Mandatory=$true,Position=0)]
[string]$Username,
[parameter(Mandatory=$true, Position=1)]
[string]$Password
)
PROCESS {
[Nimsoft.NimBUS.Messaging.NimbusSession]$s = New-Object -TypeName Nimsoft.NimBUS.Messaging.NimbusSession
$global:sid = $s.login($Username, $Password, $false)
$s.Dispose()
}
}
function get-uimhub {
[CmdletBinding()]
param (
[parameter(Mandatory=$false,Position=0)]
[string]$Ip = 127.0.0.1,
[parameter(Mandatory=$false, Position=1)]
[int]$Port = 48002
)
PROCESS {
[Nimsoft.NimBUS.Messaging.NimbusSession]$s = New-Object -TypeName Nimsoft.NimBUS.Messaging.NimbusSession -argumentlist $Ip, $Port, $global:sid
[Nimsoft.NimBUS.Messaging.Request]$request = [Nimsoft.NimBUS.Messaging.Request]$req = New-Object -TypeName Nimsoft.NimBUS.Messaging.Request -ArgumentList gethubs
$hubs = $s.SendMessage($req)
$hubCol = @()
foreach ($pds in $hubs.gettablepdss("hublist")) {
$hubObj = new-object -type PSObject
foreach ($key in $pds.getkeys()) {
$hubObj | add-member -type noteproperty -name $key -value $pds.getvalueasstring($key)
}
$hubCol += $hubObj
}
$s.Dispose()
$hubCol
}
}
and here's how to use it
ipmo <filename>.ps1
new-uimlogin -username <user> -password <pass>
get-hub # if on a hub machine
get-hub -ip <ip> # if on a robot
-jon