FSMO de Active Directory
Ce script détecte les détenteurs de rôles en utilisant le NTDSUTIL.
#************************************************* #* dumpfsmos.pl - dumps a list of FSMO #* (Flexible Single Master Operations) #* and servers that hold the role. #************************************************* #* Requirements: #* NTDSUTIL (NT Directory Services Utility) #************************************************* #* Author: Joaquin Menchaca (JM) #* Copyright 2012 - Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) #************************************************* #* Updates: #* 20050427 JM Document Creation #************************************************* die "Please provide the name of a domain controller" if @ARGV < 1; my $roles = getMasterRoles($ARGV[0]); my $header = "Operation Masters known to $ARGV[0]:"; print $header, "\n", "-" x length($header), "\n"; foreach (keys %$roles) { printf " %-15s %s\n", $_, $roles->{$_}; } sub getMasterRoles { my $target = shift; my %servers; my $subcmd = "roles Connections "; my $connect = "\"Connect to server $target\" Quit "; my $select = "\"select Operation Target\" "; my $listroles = "\"List roles for connected server\" "; my $terminate = "Quit Quit Quit"; open (NTDSUTIL, "ntdsutil $subcmd $connect $select $listroles $terminate |") || die "Command does not exist!"; foreach (<NTDSUTIL>) { next unless /Settings,CN=/; my ($role, $roleholder) = split /\s-\s/; my ($server) = (split /=/, (split /,/, $roleholder)[1])[1]; $servers{$role} = $server; } close(NTDSUTIL); return {%servers}; }