5 my $hostname = `hostname`;
7 my $realm = "bludom.tridgell.net";
9 my $dnsname = "$hostname.$realm";
11 my $basedn = "DC=" . join(",DC=", split(/\./, $realm));
13 # return the current NTTIME as an integer
17 $t += (369.0*365.25*24*60*60-(3.0*24*60*60+6.0*60*60));
19 return sprintf("%lld", $t);
22 # generate a random guid. Not a good algorithm.
25 my $r1 = int(rand(2**32));
26 my $r2 = int(rand(2**16));
27 my $r3 = int(rand(2**16));
28 my $r4 = int(rand(2**16));
29 my $r5 = int(rand(2**32));
30 my $r6 = int(rand(2**16));
31 return sprintf("%08x-%04x-%04x-%04x-%08x%04x", $r1, $r2, $r3, $r4, $r5, $r6);
34 my $domainguid = randguid();
38 return sprintf("S-1-5-21-%d-%d-%d",
39 int(rand(10**8)), int(rand(10**8)), int(rand(10**8)));
42 my $domainsid = randsid();
46 my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday) = gmtime(time);
47 return sprintf "%04u%02u%02u%02u%02u%02u.0Z",
48 $year+1900, $mon+1, $mday, $hour, $min, $sec;
51 #######################
52 # substitute a single variable
57 if ($var eq "BASEDN") {
61 if ($var eq "DOMAINSID") {
65 if ($var eq "DOMAIN") {
69 if ($var eq "REALM") {
73 if ($var eq "HOSTNAME") {
77 if ($var eq "DNSNAME") {
81 if ($var eq "LDAPTIME") {
85 if ($var eq "NEWGUID") {
89 if ($var eq "NTTIME") {
93 die "ERROR: Uknown substitution variable $var\n";
96 #####################################################################
97 # read a file into a string
100 my($filename) = shift;
102 open(INPUTFILE, $filename) || return undef;
103 my($saved_delim) = $/;
105 my($data) = <INPUTFILE>;
112 my $data = FileLoad("provision.ldif") || die "Unable to load provision.ldif\n";
116 while ($data =~ /(.*?)\$\{(\w*)\}(.*)/s) {
117 my $sub = substitute($2);