CDemuth,
I built this off the sample domains and realms perl script provided OOTB adding some additional methods for the response values and displaying this in a text file. You will need to change the connection information for your policy server.
use warnings;
use Netegrity::PolicyMgtAPI;
my @resources;
$destFile="DomainsRealms.txt";
open(DEST,">".$destFile) || die "Open file error: $!";
print DEST "Domains and Domain Realms for your domain.\n";
print DEST "Printed " . scalar(localtime)."";
$policyapi = Netegrity::PolicyMgtAPI->New();
$session = $policyapi->CreateSession("siteminder", "*PW*");
@domains=$session->GetAllDomains();
foreach $domain(@domains) {
print DEST "\n\nDomain " . $domain->Name() . ":";
@userDirs=$domain->GetUserDirSearchOrder();
@policies=$domain->GetAllPolicies();
foreach $userDir(@userDirs) {
print DEST "\n Domain Directories are: " . $userDir->Name();
foreach $policy(@policies) {
print DEST "\n Domain Policies are: " . $policy->Name();
@realms=$domain->GetAllRealms();
foreach $realm(@realms) {
print DEST "\n Realm " . $realm->Name();
print DEST "\n Realm Description " . $realm->Description();
print DEST "\n Resource filter is " . $realm->ResourceFilter();
@rules=$realm->GetAllRules();
foreach $rule(@rules) {
print DEST "\n Rules Name is " . $rule->Name();
print DEST "\n Rule Action is " . $rule->Action();
# print DEST "\n Rule Description is " . $rule->Description();
@responses=$domain->GetAllResponses();
foreach $response(@responses) {
print DEST "\n Response is " . $response->Name();
}
}
}
}
}
}
print "\nDomain and realm report written to " . $destFile."\n";