'; $group = urlencode($_GET['group']); $url = "http://172.17.0.1:5000/gpo?group=$group"; // query API $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_URL, $url); $response = curl_exec($ch); if ($e = curl_error($ch)) { die("Curl error: $e"); } $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); if ($httpCode != 200) { die("Error: Received HTTP code $httpCode"); } curl_close($ch); $data = json_decode($response, true); $numResults = count($data); // build the group array $gpoMap = []; // will look like: [ 'GPO‑Name' => ['Administrator' => [...], 'vnc_admin' => [...]] ] if (isset($data['error'])) { echo "
Error: {$data['error']}
"; } else { foreach ($data as $row) { // safety: skip rows that do not contain the expected keys if (!isset($row['gpo'], $row['ad_group'], $row['local_group'])) { continue; } $gpoName = $row['gpo']; $adGroup = $row['ad_group']; $localGroup = strtolower($row['local_group']); // initialise if not already done if (!isset($gpoMap[$gpoName])) { $gpoMap[$gpoName] = [ 'administrators' => [], 'vnc_admin' => [] ]; } // put the ad_group into the right bucket if ($localGroup === 'administrators') { $gpoMap[$gpoName]['administrators'][] = $adGroup; } elseif ($localGroup === 'vnc_admin') { $gpoMap[$gpoName]['vnc_admin'][] = $adGroup; } } ksort($gpoMap, SORT_STRING | SORT_FLAG_CASE); if($numResults > 0){ echo 'Total results: '.$numResults.'| GPO | Administrators | vnc_admin |
|---|---|---|
| "; echo " | {$adminGroups} | "; echo "{$vncGroups} | "; echo '
'; } } } // if you click on a GPO name, print all OUs else if (isset($_GET['gpo'])) { echo 'OUs linked to GPO '.$_GET['gpo'].':
';
$LinkedOUs = getLinkedOUs($_GET['gpo']);
echo implode("
", $LinkedOUs);
echo '
Return Home';
}
else {
echo '
'; echo "
No group specified.
"; } echo "Source code can be found here.
"; ?>