Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. "Welcome to Abed's Magical AD Mover!"
  2.  
  3. $dsmod_enable = 0;
  4. $dsmove_enable = 1;
  5.  
  6. $prefix = 'bads';
  7. $cur_yr = (get-date).year;
  8.  
  9. $logfile = 'log' + (get-date -format HHmmss.MMddyy) + '.txt';
  10. do {
  11.     $user_file = read-host "CSV Source: [Enter] for $prefix$cur_yr.csv";
  12.     if(!$user_file) {
  13.         $filename = "$prefix$cur_yr.csv";
  14.     } else {
  15.         $filename = $user_file;
  16.     }
  17. } until ((test-path $filename) -eq "True")
  18. "Ready to move using $filename...";
  19. do{$ready = read-host 'Proceed? (y/n)'}  
  20. until ($ready -eq "y" -or $ready -eq "n")
  21. if($ready -eq "n") {
  22.     exit;
  23. }
  24. $data = import-csv $filename;
  25. $failcount = 0;
  26. $success_check = "Students";
  27. $ts_start = get-date -format HH:mm:ss.MM-dd-yy;
  28. 'Job Start Time: ' + $ts_start;
  29. 'Job Start Time: ' + $ts_start | out-file -Append $logfile;
  30. foreach( $i in $data ) {
  31.     if($i.Username) {
  32.         $ts = get-date -format HH:mm:ss;
  33.         $ts + ' - ' + $i.Username;
  34.         "@echo off" | out-file -enc ASCII run.bat | out-null;
  35.         start-sleep -m 200;
  36.         if($dsmod_enable) {
  37.         $dsmod = 'echo user CN=' + $i.Username + ',OU=Students,DC=otterbein,DC=edu -desc "Alumni ' + $i.GRAD_TERM.Substring(0,4) + '"';
  38.         $dsmod | out-file -Append -enc ASCII run.bat | out-null;
  39.         $dsmod;
  40.         start-sleep -m 200; }
  41.         if($dsmove_enable) {
  42.         $dsmove = 'echo CN=' + $i.Username + ',OU=Students,DC=otterbein,DC=edu -newparent OU=' + $i.GRAD_TERM.Substring(0,4) + ',OU=Alumni,DC=otterbein,DC=edu';
  43.         $dsmove | out-file -Append -enc ASCII run.bat | out-null;
  44.         $dsmove;
  45.         start-sleep -m 150; }
  46.         $run = .\run.bat;
  47.         if($run -like "*$success_check*"){
  48.             $msg = 'SUCCESS';
  49.             write-host "Success!" -foregroundcolor green;
  50.             $dsmod
  51.             $dsmove
  52.         } else {
  53.             $msg = 'FAIL';
  54.             $failcount = $failcount + 1;
  55.             write-host 'Failure on user ' + $i.Username -foregroundcolor white -backgroundcolor red;
  56.             do{$ready = read-host 'Proceed with move? (y/n)'}  
  57.                 until ($ready -eq "y" -or $ready -eq "n")
  58.             if ($ready -eq "n") {
  59.                 exit;
  60.             }
  61.            
  62.         }
  63.        
  64.         $ts + ": " + $i.Username + ' [' + $msg + ']' | out-file -Append $logfile;
  65.     }
  66. }
  67. $ts_finish = get-date -format HH:mm:ss.MM-dd-yy;
  68. 'Job Finish Time: ' + $ts_finish;
  69. 'Job Finish Time: ' + $ts_finish | out-file -Append $logfile;
  70. 'Log saved to ' + $logfile
  71.  
  72. if ($failcount -eq 0) {
  73.     ./dance.ps1 # :D-< :D|-< :D/-<
  74. }
  75.  
  76. #cleanup
  77. rm .\run.bat
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement