<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: accounts code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Tue, 07 Oct 2008 15:51:05 GMT</pubDate>
    <description>DZone Snippets: accounts code</description>
    <item>
      <title>ASP Page listing and making changes to AD accounts</title>
      <link>http://snippets.dzone.com/posts/show/4560</link>
      <description>// Used for automated AD account migration&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;HTML&gt;&lt;HEAD&gt;&lt;TITLE&gt;Workstation User Account migration&lt;/TITLE&gt;&lt;br /&gt;&lt;META http-equiv=Content-Type content="text/html; charset=iso-8859-1"&gt;&lt;LINK &lt;br /&gt;href="files/v2006.css" type=text/css rel=stylesheet&gt;&lt;br /&gt;&lt;BODY leftMargin=0 topMargin=30 marginwidth="0" marginheight="0"&gt;&lt;br /&gt;&lt;CENTER&gt;&lt;br /&gt;&lt;%&lt;br /&gt;' ------------------------------------------------------------------------&lt;br /&gt;Const ADS_PROPERTY_CLEAR = 1&lt;br /&gt;&lt;br /&gt;Const SOURCE_OU="ou=NT Users,ou=NT,dc=fr,dc=erm,dc=int"&lt;br /&gt;Const TARGET_OU="ou=SUPPORT SERVICES,dc=fr,dc=erm,dc=int"&lt;br /&gt;&lt;br /&gt;Const HOMES_PATH="\\frsrvfil0001\USERS\"&lt;br /&gt;Const PROFILES_PATH="\\frsrvfil0001\PROFILES\"&lt;br /&gt;&lt;br /&gt;Const ADMIN_HOMES_PATH_SOURCE="\\frsrvfil0001\U$\NT\"&lt;br /&gt;Const ADMIN_PROFILES_PATH_SOURCE="\\frsrvfil0001\P$\NT\"&lt;br /&gt;Const ADMIN_HOMES_PATH_DEST="\\frsrvfil0001\U$\"&lt;br /&gt;Const ADMIN_PROFILES_PATH_DEST="\\frsrvfil0001\P$\"&lt;br /&gt;&lt;br /&gt;Const SCRIPT_NAME="ntuser_to_xp.asp"&lt;br /&gt;&lt;br /&gt;Dim State&lt;br /&gt;State="Init"&lt;br /&gt;Dim OU, Member&lt;br /&gt; &lt;br /&gt;If Request.QueryString("login") &lt;&gt; "" Then&lt;br /&gt;		' Affichage formulaire pour modif du compte&lt;br /&gt;		State="Info"&lt;br /&gt;End If&lt;br /&gt;If Request.Form("login") &lt;&gt; "" Then&lt;br /&gt;		' On a cliqu&#233; sur OK pour valider le formulaire&lt;br /&gt;		State="Modify"&lt;br /&gt;End If&lt;br /&gt;' ------------------------------------------------------------------------&lt;br /&gt;%&gt;&lt;br /&gt;&lt;TABLE cellSpacing=0 cellPadding=1 width=500 align=center bgColor=#26333e &lt;br /&gt;border=0&gt;&lt;br /&gt;  &lt;TBODY&gt;&lt;br /&gt;  &lt;TR&gt;&lt;br /&gt;    &lt;TD&gt;&lt;br /&gt;      &lt;TABLE cellSpacing=0 cellPadding=1 width=500 align=center border=0&gt;&lt;br /&gt;        &lt;TBODY&gt;&lt;br /&gt;        &lt;TR bgColor=#f0f3f5&gt;&lt;br /&gt;          &lt;TD width=160 valign="top"&gt;&lt;IMG height=116 src="files/man_portable.jpg" &lt;br /&gt;            width=160&gt; &lt;/TD&gt;&lt;br /&gt;          &lt;TD width=302 bgColor=#e5ebef&gt;&lt;br /&gt;&lt;br /&gt;&lt;%&lt;br /&gt;	If State="Init" Then&lt;br /&gt;	'-----------------------------------------------------------------------------------&lt;br /&gt;	' Listing of the NT Users&lt;br /&gt;	'-----------------------------------------------------------------------------------&lt;br /&gt;%&gt;          &lt;br /&gt;&lt;br /&gt;            &lt;TABLE cellSpacing=4 cellPadding=4 width="100%" align=center &lt;br /&gt;            border=0&gt;&lt;br /&gt;              &lt;TBODY&gt;&lt;br /&gt;              &lt;TR&gt;&lt;br /&gt;                &lt;TD class=medium colSpan=3 height=22&gt;&lt;br /&gt;                    &lt;%&lt;br /&gt;                    'Response.Write(SOURCE_OU &amp; "&lt;BR&gt;") &lt;br /&gt;                    %&gt;&lt;br /&gt;					Please select the NT 4.0 Workstation user account to migrate&lt;br /&gt;                &lt;/TD&gt;&lt;/TR&gt;&lt;br /&gt;                &lt;br /&gt;              &lt;TR&gt;&lt;br /&gt;                &lt;TD class=td11 height=22&gt;&lt;br /&gt;                                  &lt;%&lt;br /&gt;                  Set OU = GetObject("LDAP://" &amp; SOURCE_OU)&lt;br /&gt;                  OU.Filter = Array("user")&lt;br /&gt;    	          For Each Member In OU&lt;br /&gt;    	          		' Bug with the SMS Account ??&lt;br /&gt;    	          		If Member.Name &lt;&gt; "CN=SMSService" Then &lt;br /&gt;    	          		If Member.AccountDisabled = 0 Then&lt;br /&gt;	    	                Response.Write("&lt;A HREF=""" &amp; SCRIPT_NAME &amp; "?login=" &amp; Server.URLEncode(Member.Name) &amp; """&gt;" &amp; Member.FullName &amp; "&lt;/A&gt;&lt;BR&gt;")&lt;br /&gt;	    	            End If&lt;br /&gt;	    	            End If &lt;br /&gt;            	  Next      &lt;br /&gt;                  &lt;br /&gt;                  %&gt;&lt;br /&gt;&lt;br /&gt;                &lt;/TD&gt;&lt;br /&gt;                &lt;/TR&gt;&lt;br /&gt;                &lt;br /&gt;                &lt;/TBODY&gt;&lt;/TABLE&gt;&lt;br /&gt;&lt;br /&gt;&lt;%&lt;br /&gt;End If&lt;br /&gt;%&gt;                &lt;br /&gt;                &lt;br /&gt;&lt;%&lt;br /&gt;	If State="Info" Then&lt;br /&gt;	'-----------------------------------------------------------------------------------&lt;br /&gt;	' Information page about the NT Users&lt;br /&gt;	'-----------------------------------------------------------------------------------&lt;br /&gt;%&gt;          &lt;br /&gt;			&lt;FORM method=post&gt;&lt;br /&gt;&lt;br /&gt;            &lt;TABLE cellSpacing=4 cellPadding=4 width="100%" align=center &lt;br /&gt;            border=0&gt;&lt;br /&gt;              &lt;TBODY&gt;&lt;br /&gt;              &lt;TR&gt;&lt;br /&gt;                &lt;TD class=medium colSpan=2 height=22&gt;&lt;br /&gt;                 	&lt;%&lt;br /&gt;                 	Response.Write("Windows NT 4.0 User Account Migration")&lt;br /&gt;                    %&gt;&lt;br /&gt;					&lt;br /&gt;                &lt;/TD&gt;&lt;/TR&gt;&lt;br /&gt;               &lt;br /&gt;                  &lt;%&lt;br /&gt;                  Sub TabRow(v1,v2)&lt;br /&gt;                  		Response.Write("&lt;TR class=td11 height=16&gt;&lt;TD&gt;&lt;B&gt;" &amp; v1 &amp; "&lt;/B&gt;")&lt;br /&gt;                  		Response.Write("&lt;TD&gt;" &amp; v2 &amp; "&lt;/TD&gt;")&lt;br /&gt;                  		Response.Write("&lt;/TD&gt;&lt;/TR&gt;")&lt;br /&gt;                  End Sub&lt;br /&gt;                  Set Member = GetObject("LDAP://" &amp; Request.QueryString("login") &amp; "," &amp; SOURCE_OU)&lt;br /&gt;&lt;br /&gt;                  TabRow "User Name",Member.FullName&lt;br /&gt;                  TabRow "NT Login",Member.sAMAccountName&lt;br /&gt;				  TabRow "Login Script", Member.LoginScript &amp; " (to delete)"&lt;br /&gt;				  TabRow "Profile Path", Member.Profile&lt;br /&gt;				  TabRow "New Path",PROFILES_PATH &amp; Member.sAMAccountName&lt;br /&gt;				  TabRow "Home Folder", Member.HomeDirectory&lt;br /&gt;				  TabRow "New Path",HOMES_PATH &amp; Member.sAMAccountName&lt;br /&gt;				  &lt;br /&gt;				  ' Liste des OU dans SUPPORT SERVICES&lt;br /&gt; 				  Dim OUSuppServices, Entity, BoxList&lt;br /&gt; 				  Set OUSuppServices=GetObject("LDAP://" &amp; TARGET_OU)&lt;br /&gt;				  OUSuppServices.Filter = Array("organizationalUnit")&lt;br /&gt;				  BoxList="&lt;SELECT NAME=""entity""&gt;"&lt;br /&gt;				  For Each Entity in OUSuppServices&lt;br /&gt;				  	BoxList= BoxList &amp; "&lt;OPTION VALUE=""" &amp; Entity.Name &amp; """&gt;" &amp; Mid(Entity.Name,4) &amp; "&lt;/OPTION&gt;"&lt;br /&gt;				  Next&lt;br /&gt;				  BoxList=BoxList &amp; "&lt;/SELECT&gt;"&lt;br /&gt;				  TabRow "Organizational Unit",BoxList&lt;br /&gt;                                    &lt;br /&gt;                  %&gt;&lt;br /&gt;&lt;br /&gt;                &lt;br /&gt;                &lt;/TBODY&gt;&lt;/TABLE&gt;&lt;br /&gt;                &lt;BR&gt;&lt;br /&gt;                &lt;INPUT name=login type=hidden value=&lt;% Response.Write(Member.sAMAccountName) %&gt; &gt;&lt;br /&gt;                &lt;INPUT type=image height=18 alt="GO !" width=15 src="files/submit.gif" value=login border=0 name=ok&gt;&lt;br /&gt;                &amp;nbspCliquer ici pour migrer ce compte.&lt;BR&gt;&lt;BR&gt;&lt;br /&gt;                ATTENTION, l'utilisateur ne doit pas &#234;tre connect&#233; ! &lt;br /&gt;                &lt;% Response.Write("&lt;BR&gt;&lt;BR&gt;&lt;A HREF=""" &amp; SCRIPT_NAME &amp; """&gt;" &amp; "Cliquer ICI pour annuler" &amp; "&lt;/A&gt;&lt;BR&gt;") %&gt;&lt;br /&gt;                &lt;/FORM&gt;&lt;br /&gt;&lt;br /&gt;&lt;%&lt;br /&gt;End If&lt;br /&gt;%&gt;                &lt;br /&gt;&lt;br /&gt;&lt;%&lt;br /&gt;&lt;br /&gt;	If State="Modify" Then&lt;br /&gt;	'-----------------------------------------------------------------------------------&lt;br /&gt;	' Migration of the NT Users&lt;br /&gt;	'-----------------------------------------------------------------------------------&lt;br /&gt;Sub dirMoveTree(source, dest)&lt;br /&gt;	Response.Write "Deplacement de &lt;B&gt;" &amp; source &amp; " vers " &amp; dest &amp; "&lt;/B&gt;&lt;BR&gt;"&lt;br /&gt;	Dim Folder,File,SubFolder&lt;br /&gt;	set Folder=fso.GetFolder(source)&lt;br /&gt;	For Each File In Folder.Files&lt;br /&gt;	      Response.Write File.Name &amp; " File -&gt; " &amp; dest &amp; "&lt;BR&gt;"&lt;br /&gt;	      file.move dest &amp; "\"&lt;br /&gt;	Next&lt;br /&gt;	For Each SubFolder In Folder.SubFolders&lt;br /&gt;	      Response.Write SubFolder.Name &amp; " Folder -&gt; " &amp; dest &amp; "&lt;BR&gt;"&lt;br /&gt;	      SubFolder.move dest &amp; "\"&lt;br /&gt;	Next&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;%&gt;          &lt;br /&gt;&lt;CENTER&gt;&lt;br /&gt;Windows NT 4.0 User Account Migration&lt;BR&gt;&lt;BR&gt;&lt;br /&gt;&lt;%&lt;br /&gt;&lt;br /&gt;' Modification des proprietes l'utilisateur dans AD&lt;br /&gt;Set Member = GetObject("LDAP://" &amp; Request.QueryString("login") &amp; "," &amp; SOURCE_OU)&lt;br /&gt;&lt;br /&gt;' ADS_PROPERTY_CLEAR&lt;br /&gt;Member.PutEx 1, "scriptPath", 0&lt;br /&gt;Member.SetInfo&lt;br /&gt;&lt;br /&gt;Member.Put "profilePath", PROFILES_PATH &amp; Member.sAMAccountName&lt;br /&gt;Member.Put "homeDirectory", HOMES_PATH &amp; Member.sAMAccountName&lt;br /&gt;' &lt;br /&gt;Member.SetInfo&lt;br /&gt;' &lt;br /&gt;Response.Write("Utilisateur &lt;B&gt;" &amp; Member.sAMAccountName &amp; "&lt;/B&gt; Modifi&#233; dans AD&lt;BR&gt;&lt;BR&gt;")&lt;br /&gt;&lt;br /&gt;' Deplacement dans le bon conteneur&lt;br /&gt;Set OU = GetObject("LDAP://" &amp; "OU=Users," &amp; Request.Form("entity") &amp; "," &amp; TARGET_OU)&lt;br /&gt;OU.MoveHere "LDAP://" &amp; Request.QueryString("login") &amp; "," &amp; SOURCE_OU, Request.QueryString("login")&lt;br /&gt;Response.Write("Utilisateur &lt;B&gt;" &amp; "LDAP://" &amp; Request.QueryString("login") &amp; "," &amp; SOURCE_OU &amp; "&lt;/B&gt; Deplac&#233; dans " &amp; "LDAP://" &amp; "OU=Users," &amp; Request.Form("entity") &amp; "," &amp; TARGET_OU &amp; "&lt;BR&gt;&lt;BR&gt;")&lt;br /&gt;&lt;br /&gt;DIM fso, File, Folder, SubFolder&lt;br /&gt;Set fso = CreateObject("Scripting.FileSystemObject")&lt;br /&gt;&lt;br /&gt;' Creation des repertoires cible&lt;br /&gt;&lt;br /&gt;fso.CreateFolder(ADMIN_HOMES_PATH_DEST &amp; Request.Form("login"))&lt;br /&gt;fso.CreateFolder(ADMIN_PROFILES_PATH_DEST &amp; Request.Form("login"))&lt;br /&gt;&lt;br /&gt;' Deplacement des donn&#233;es&lt;br /&gt;&lt;br /&gt;dirMoveTree ADMIN_HOMES_PATH_SOURCE &amp; Request.Form("login"),ADMIN_HOMES_PATH_DEST &amp; Request.Form("login")&lt;br /&gt;dirMoveTree ADMIN_PROFILES_PATH_SOURCE &amp; Request.Form("login"),ADMIN_PROFILES_PATH_DEST &amp; Request.Form("login")&lt;br /&gt;&lt;br /&gt;' Applications des ACLs, en arriere plan car ca peut etre long !&lt;br /&gt;Response.Write("&lt;BR&gt;Creation du script d'application des ACLs C:\Inetpub\wwwroot\techcity\xcacls_" &amp; Request.Form("login") &amp; ".cmd&lt;BR&gt;&lt;BR&gt;")&lt;br /&gt;Set server_shell = Server.CreateObject("wscript.shell")&lt;br /&gt;&lt;br /&gt;server_shell.Run "cmd /c echo echo Excecution Cacls &gt;C:\Inetpub\wwwroot\techcity\xcacls_" &amp; Request.Form("login") &amp; ".cmd 2&gt;&amp;1",,1&lt;br /&gt;server_shell.Run "cmd /c echo xcacls.exe """ &amp; ADMIN_HOMES_PATH_DEST &amp; Request.Form("login") &amp; """ /T /C /G SYSTEM:F ADMINISTRATORS:F FR-ERM\" &amp; Request.Form("login") &amp; ":C /Y &gt;&gt;C:\Inetpub\wwwroot\techcity\xcacls_" &amp; Request.Form("login") &amp; ".cmd 2&gt;&amp;1",,1&lt;br /&gt;server_shell.Run "cmd /c echo xcacls.exe """ &amp; ADMIN_PROFILES_PATH_DEST &amp; Request.Form("login") &amp; """ /T /C /G SYSTEM:F ADMINISTRATORS:F FR-ERM\" &amp; Request.Form("login") &amp; ":F /Y &gt;&gt;C:\Inetpub\wwwroot\techcity\xcacls_" &amp; Request.Form("login") &amp; ".cmd 2&gt;&amp;1",,1&lt;br /&gt;&lt;br /&gt;' server_shell.Run "C:\Inetpub\wwwroot\techcity\xcacls.cmd &gt;C:\Inetpub\wwwroot\techcity\xcacls.log 2&gt;&amp;1",,1&lt;br /&gt;Response.Write("&lt;BR&gt;Les ACLs seront appliquee dans 5 min (scheduled)...&lt;BR&gt;&lt;BR&gt;")&lt;br /&gt;Response.Write("Attendre egalement la fin de replication de AD ...&lt;BR&gt;&lt;BR&gt;")&lt;br /&gt;&lt;br /&gt;Response.Write("&lt;BR&gt;Termin&#233; !&lt;BR&gt;")&lt;br /&gt;&lt;br /&gt;%&gt;&lt;br /&gt;&lt;% Response.Write("&lt;BR&gt;&lt;BR&gt;&lt;A HREF=""" &amp; SCRIPT_NAME &amp; """&gt;" &amp; "Cliquer ICI pour quitter" &amp; "&lt;/A&gt;&lt;BR&gt;") %&gt;&lt;br /&gt;&lt;/CENTER&gt;&lt;br /&gt;&lt;%&lt;br /&gt;End If&lt;br /&gt;%&gt;                &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;              &lt;/TD&gt;&lt;/TR&gt;            &lt;br /&gt;                &lt;br /&gt;                &lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;br /&gt;                        &lt;br /&gt;                &lt;br /&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/CENTER&gt;&lt;/BODY&gt;&lt;/HTML&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Thu, 20 Sep 2007 07:02:54 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4560</guid>
      <author>bouffon69 (Sylvain Le Courtois)</author>
    </item>
  </channel>
</rss>
