Trying to use the following script (based on the 'Groups' example in the SDK) to add groups based on Nodes.Location and a CustomProperty !=
if (! (Get-PSSnapin | where {$_.Name -eq "SwisSnapin"})) {
Add-PSSnapin "SwisSnapin"
}# Connect to SWIS
$hostname = "localhost"
$username = "username here"
$password = "password here" | ConvertTo-SecureString -asPlainText -Force
$cred = New-Object -typename System.Management.Automation.PSCredential -argumentlist $username, $password
$swis = Connect-Swis -host $hostname -cred $cred#Set the locatoin of the csv
Set-Location 'C:\Users\username here\Desktop'# read in csv file
$importFile="./MakeGroups.csv"
$importList=IMPORT-CSV $importFile#iterate through each entry in csv file
FOREACH($import in $importList)
{
$SiteCode = $import.Location
$members = @(
@{ Name = "$SiteCode"; Definition = "filter:/Orion.Nodes[Location='$SiteCode' AND CustomProperties.Device_Type != 'Router']" }
)$groupId = (Invoke-SwisVerb $swis "Orion.Container" "CreateContainer" @(
# group name
"$SiteCode",
# owner, must be 'Core'
"Core",
# refresh frequency
60,
# Status rollup mode:
# 0 = Mixed status shows warning
# 1 = Show worst status
# 2 = Show best status
0,
# group description
"Group created by the PowerShell sample script.",
# polling enabled/disabled = true/false (in lowercase)
"true",
# group members
([xml]@(
"<ArrayOfMemberDefinitionInfo xmlns='http://schemas.solarwinds.com/2008/Orion'>",
[string]($members |% {
"<MemberDefinitionInfo><Name>$($_.Name)</Name><Definition>$($_.Definition)</Definition></MemberDefinitionInfo>"
}
),
"</ArrayOfMemberDefinitionInfo>"
)).DocumentElement
)).InnerText
}
Keep getting this error:
Invoke-SwisVerb : Entity Orion.Nodes does not contain requested property A
At C:\Users\username here\Desktop\MakeGroups.ps1:32 char:14
+ $groupId = (Invoke-SwisVerb $swis "Orion.Container" "CreateContainer" @(
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Invoke-SwisVerb], FaultException`1
+ FullyQualifiedErrorId : SwisError,SwisPowerShell.InvokeSwisVerb
Looking in the DB, the script is creating the group under 'Containers', but there is not an entry being created under 'ContainerMemberDefinitions'
All help is appreciated 