<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: Bouffon69's Code Snippets</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Fri, 16 May 2008 11:34:42 GMT</pubDate>
    <description>DZone Snippets: Bouffon69's Code Snippets</description>
    <item>
      <title>Perl : scan a list of networks, looking for hosts responding on the port 80 (http)</title>
      <link>http://snippets.dzone.com/posts/show/5467</link>
      <description>// Input : a list of address of routers, in dotted decimal notation&lt;br /&gt;&lt;code&gt;&lt;br /&gt;use strict;&lt;br /&gt;use Net::Ping;&lt;br /&gt;use IO::Socket::INET;&lt;br /&gt;&lt;br /&gt;sub isodate() {&lt;br /&gt;        my ($day, $mon, $year, $hour, $min, $sec) = (localtime)[3, 4, 5, 2, 1, 0];&lt;br /&gt;        $mon++; # 0-based index&lt;br /&gt;        $year = $year + 1900;&lt;br /&gt;        my $date = sprintf ("%04i-%02i-%02i %02i\:%02i\:%02i", $year, $mon, $day, $hour, $min, $sec);&lt;br /&gt;        return $date;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sub testhost {&lt;br /&gt;       my $p = new Net::Ping("tcp");&lt;br /&gt;       $p-&gt;{port_num}=80; &lt;br /&gt;       my @result = $p -&gt; ping($_[0],2);&lt;br /&gt;       return $result[0];&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;sub to_dot {&lt;br /&gt;	my $n = shift;&lt;br /&gt;	my @decimal;&lt;br /&gt;	for (1..4) {&lt;br /&gt;		unshift @decimal, $n &amp; 0xFF;&lt;br /&gt;		$n &gt;&gt;= 8;&lt;br /&gt;	}&lt;br /&gt;	return join(".",@decimal);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;my %dejavu;&lt;br /&gt;open FH,"liste.txt";&lt;br /&gt;while (&lt;FH&gt;) {&lt;br /&gt;	chomp;&lt;br /&gt;	my ($routeur,$mask)=split;&lt;br /&gt;	&lt;br /&gt;	next if $routeur !~ /\d+\.\d+\.\d+\.\d+$/ or $mask !~ /\d+\.\d+\.\d+\.\d+$/;&lt;br /&gt;	&lt;br /&gt;	next if defined($dejavu{$routeur});&lt;br /&gt;	$dejavu{$routeur}=1;&lt;br /&gt;	&lt;br /&gt;	my ($o1,$o2,$o3,$o4) = split /\./,$mask;&lt;br /&gt;	my $mask=$o1*256**3+$o2*256**2+$o3*256+$o4;&lt;br /&gt;	my $num = $mask ^ 0xFFFFFFFF;&lt;br /&gt;	$num--;&lt;br /&gt;&lt;br /&gt;	my ($o1,$o2,$o3,$o4) = split /\./,$routeur;&lt;br /&gt;	my $net=$o1*256**3+$o2*256**2+$o3*256+$o4 &amp; $mask;&lt;br /&gt;	&lt;br /&gt;	#print join("|",$routeur,&amp;to_dot($net),$num)."\n";&lt;br /&gt;	&lt;br /&gt;	print "Starting scanning network ".to_dot($net).", router = ".$routeur."\n";&lt;br /&gt;	print "Adresses demarrant de ".to_dot($net+1)." et finissant a ".to_dot($net+$num).".\n";&lt;br /&gt;	for my $i (1..$num) {&lt;br /&gt;		my $host=to_dot($net+$i);&lt;br /&gt;		if ( &amp;testhost($host) ) {&lt;br /&gt;			print "$host is alive\n";&lt;br /&gt;			my $port=80;&lt;br /&gt;			my $sock = new IO::Socket::INET (PeerAddr =&gt; $host,&lt;br /&gt;					     PeerPort =&gt; $port,&lt;br /&gt;					     Proto =&gt; 'tcp');&lt;br /&gt;			if ($sock){&lt;br /&gt;				close $sock;&lt;br /&gt;				print "$port -open on $host\n";&lt;br /&gt;				open OUT,"&gt;&gt;webservers.txt";&lt;br /&gt;				print OUT join("|",isodate(),$host,to_dot($net),$routeur)."\n";&lt;br /&gt;				close OUT;&lt;br /&gt;			}	else	{&lt;br /&gt;				print "$port -closed on $host\n";&lt;br /&gt;			}&lt;br /&gt;&lt;br /&gt;		} else {&lt;br /&gt;			print "$host is not responding\n";&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;close FH;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Tue, 06 May 2008 07:05:28 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5467</guid>
      <author>bouffon69 (Sylvain Le Courtois)</author>
    </item>
    <item>
      <title>Excel VBA : read registry key values on a remote computer using WMI</title>
      <link>http://snippets.dzone.com/posts/show/4675</link>
      <description>// VBA code to paste in an module&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Function ORACLEHOMES(strComputer As String)&lt;br /&gt;    Const HKEY_LOCAL_MACHINE = &amp;H80000002&lt;br /&gt;    ORACLEHOMES = ""&lt;br /&gt;    Dim strKeyPath&lt;br /&gt;    Dim arrSubKeys&lt;br /&gt;    Dim oReg&lt;br /&gt;    Dim strValueName&lt;br /&gt;    Dim strValue&lt;br /&gt;    'strComputer = "."&lt;br /&gt;    Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &amp; strComputer &amp; "\root\default:StdRegProv")&lt;br /&gt;    strKeyPath = "SOFTWARE\ORACLE"&lt;br /&gt;    oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys&lt;br /&gt;    For Each subkey In arrSubKeys&lt;br /&gt;        If Left(subkey, 4) = "KEY_" Then&lt;br /&gt;            strValueName = "ORACLE_HOME"&lt;br /&gt;            oReg.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath &amp; "\" &amp; subkey, strValueName, strValue&lt;br /&gt;            If ORACLEHOMES = "" Then&lt;br /&gt;                ORACLEHOMES = strValue&lt;br /&gt;            Else&lt;br /&gt;                ORACLEHOMES = ORACLEHOMES &amp; ";" &amp; strValue&lt;br /&gt;            End If&lt;br /&gt;        End If&lt;br /&gt;    Next&lt;br /&gt;End Function&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 19 Oct 2007 12:03:49 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4675</guid>
      <author>bouffon69 (Sylvain Le Courtois)</author>
    </item>
    <item>
      <title>Browser automation using perl LWP</title>
      <link>http://snippets.dzone.com/posts/show/4587</link>
      <description>// This is a sample code used to measure reports response times on a OAS application.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/usr/bin/perl&lt;br /&gt;#&lt;br /&gt;# LWP connection to the Datamart Portal&lt;br /&gt;# Timing of the main reports&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;use strict;&lt;br /&gt;require LWP::UserAgent;&lt;br /&gt;&lt;br /&gt;my $ua = LWP::UserAgent-&gt;new;&lt;br /&gt;&lt;br /&gt;sub isodate() {&lt;br /&gt;        my ($day, $mon, $year, $hour, $min, $sec) = (localtime)[3, 4, 5, 2, 1, 0];&lt;br /&gt;        $mon++; # 0-based index&lt;br /&gt;        $year = $year + 1900;&lt;br /&gt;        my $date = sprintf ("%04i-%02i-%02i %02i\:%02i\:%02i", $year, $mon, $day, $hour, $min, $sec);&lt;br /&gt;        return $date;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sub datamart_login {&lt;br /&gt;        my ( $user, $pass ) = @_;&lt;br /&gt;        my $time_begin=time();&lt;br /&gt;        my $url='http://daprd:7782/portal/page?_pageid=37,134413,37_134422&amp;_dad=portal&amp;_schema=PORTAL';&lt;br /&gt;        my $req = HTTP::Request-&gt;new( GET =&gt; $url );&lt;br /&gt;        my $resp = $ua-&gt;request($req);&lt;br /&gt;        my $loginform = $resp-&gt;content ;&lt;br /&gt;        if ( $loginform !~ /Entrez votre nom utilisateur/ ) {&lt;br /&gt;                die isodate()." Failed to get the logon page of the Web Site\n";&lt;br /&gt;        } else {&lt;br /&gt;                my $locale="";&lt;br /&gt;                my ($v) = $loginform =~ /NAME=\"v\" value=\"(.+)\"/;&lt;br /&gt;                my ($site2pstoretoken) = $loginform =~ /NAME=\"site2pstoretoken\" value=\"(.+)\"/;&lt;br /&gt;                my ($submiturl) = $loginform =~ /form method=\"POST\" action=\"(.*?)\"/;&lt;br /&gt;                $resp = $ua-&gt;post( $submiturl,&lt;br /&gt;                   [&lt;br /&gt;                     ssousername =&gt; $user,&lt;br /&gt;                     password =&gt; $pass,&lt;br /&gt;                     v =&gt; $v,&lt;br /&gt;                     locale =&gt; $locale,&lt;br /&gt;                     site2pstoretoken =&gt; $site2pstoretoken&lt;br /&gt;                   ],&lt;br /&gt;                );&lt;br /&gt;                $resp = $ua-&gt;get($url);&lt;br /&gt;                $resp = $ua-&gt;get($url);&lt;br /&gt;                if ( $resp-&gt;content !~ /Crit..res de recherche/ ) {&lt;br /&gt;                        die isodate()." Failed to get the main page of Portal\n";&lt;br /&gt;                }&lt;br /&gt;        }&lt;br /&gt;        print join(";",isodate(),"Time to log on the Portal",time()-$time_begin,$url)."\n";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sub datamart_testurl {&lt;br /&gt;        my ($label,$url,$expected)=@_;&lt;br /&gt;        my $time_begin=time();&lt;br /&gt;        my $resp;&lt;br /&gt;        $resp = $ua-&gt;get($url);&lt;br /&gt;        $resp = $ua-&gt;get($url) if $resp-&gt;content !~ /$expected/;        # We try two times !&lt;br /&gt;        if ( $resp-&gt;content !~ /$expected/ ) {&lt;br /&gt;                print STDERR isodate()." Test Failed on $label. $expected not found in response.\n";&lt;br /&gt;                print STDERR $resp-&gt;as_string;&lt;br /&gt;        } else {&lt;br /&gt;                print join(";",isodate(),$label,time()-$time_begin,$url)."\n";&lt;br /&gt;        }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;$ua-&gt;timeout(1200);&lt;br /&gt;$ua-&gt;cookie_jar({});&lt;br /&gt;$ua-&gt;agent( 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)' );&lt;br /&gt;#push @{ $ua-&gt;requests_redirectable }, 'POST';&lt;br /&gt;&lt;br /&gt;# &gt;&gt;&gt;&gt; Main code here&lt;br /&gt;&lt;br /&gt;datamart_login("xxxx","xxxx");&lt;br /&gt;&lt;br /&gt;open FH,"/exploit/scripts/appli/check_datamart.ini" or die "Unable to open check_datamart.ini";&lt;br /&gt;while (&lt;FH&gt;) {&lt;br /&gt;        chomp();&lt;br /&gt;        my ($report,$expected,$url) = split /;/;&lt;br /&gt;        datamart_testurl($report,$url,$expected);&lt;br /&gt;}&lt;br /&gt;close FH;&lt;br /&gt;&lt;br /&gt;# &lt;&lt;&lt;&lt; Main code here&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 28 Sep 2007 11:48:47 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4587</guid>
      <author>bouffon69 (Sylvain Le Courtois)</author>
    </item>
    <item>
      <title>Internet Explorer automation using win32::OLE</title>
      <link>http://snippets.dzone.com/posts/show/4586</link>
      <description>// Sample code used for one of my client&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/usr/bin/perl -w&lt;br /&gt;&lt;br /&gt;use strict;&lt;br /&gt;use Data::Dumper;&lt;br /&gt;use Win32::OLE qw( EVENTS );&lt;br /&gt;&lt;br /&gt;my ($day, $mon, $year, $hour, $min, $sec) = (localtime)[3, 4, 5, 2, 1, 0];&lt;br /&gt;$mon++; # 0-based index&lt;br /&gt;$year = $year + 1900;&lt;br /&gt;my $date = sprintf ("%04i-%02i-%02i %02i\:%02i\:%02i", $year, $mon, $day, $hour, $min, $sec);&lt;br /&gt;&lt;br /&gt;my $Disconnect;&lt;br /&gt;my $Menu;&lt;br /&gt;my $TreeView;&lt;br /&gt;my $WatchDog;&lt;br /&gt;my $MenuClicked=0;&lt;br /&gt;&lt;br /&gt;my $ScenarioCompleted=0;&lt;br /&gt;&lt;br /&gt;my @TreeViewLinks=("Appareillage du B","Branchement Comptage","Branchement individuel");&lt;br /&gt;my $Previouslink=$TreeViewLinks[0];&lt;br /&gt;&lt;br /&gt;my $ie = Win32::OLE-&gt;new( 'InternetExplorer.Application' ) or die "error starting IE";&lt;br /&gt;$ie-&gt;{visible} = 1;&lt;br /&gt;&lt;br /&gt;Win32::OLE-&gt;Option( Warn =&gt; 3 );&lt;br /&gt;&lt;br /&gt;$WatchDog=time();&lt;br /&gt;Win32::OLE-&gt;WithEvents( $ie, \&amp;Event, 'DWebBrowserEvents2' );&lt;br /&gt;$ie-&gt;navigate( 'http://www.xxx.fr' );&lt;br /&gt;Win32::OLE-&gt;MessageLoop();&lt;br /&gt;unlink("noemis.err") if -f "noemis.err";&lt;br /&gt;if ( ! $ScenarioCompleted ) {&lt;br /&gt;	open( ERR , "&gt;noemis.err" ); &lt;br /&gt;	print ERR "Problem executing Noemis scenario, please check www.xxx.fr.\n" ;&lt;br /&gt;	close(ERR);&lt;br /&gt;}&lt;br /&gt;$Disconnect-&gt;Click();&lt;br /&gt;Win32::OLE-&gt;SpinMessageLoop;&lt;br /&gt;&lt;br /&gt;# Maintenance du fichier historique&lt;br /&gt;open ( STATS , "noemis.txt" );&lt;br /&gt;my @lines=&lt;STATS&gt;;&lt;br /&gt;close (STATS);&lt;br /&gt;open( STATS , "&gt;noemis.txt" ); &lt;br /&gt;for my $line (@lines) {&lt;br /&gt;	my ($datetime) = split ( /;/ , $line );&lt;br /&gt;	my ($h_year,$h_mon) = $datetime =~ /^([0-9]{4})-([0-9]{2})/;&lt;br /&gt;	print STATS $line if ($year*12+$mon) - ($h_year*12+$h_mon) &lt; 2;&lt;br /&gt;}&lt;br /&gt;print STATS join(";",$date,"Noemis Scenario",( time() - $WatchDog ))."\n";&lt;br /&gt;close( STATS );&lt;br /&gt;&lt;br /&gt;sleep 2;&lt;br /&gt;Win32::OLE-&gt;SpinMessageLoop;&lt;br /&gt;sleep 1;&lt;br /&gt;$ie-&gt;Quit();&lt;br /&gt;exit 0;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;sub Event {&lt;br /&gt;	my ($Obj,$Event,@Args) = @_;&lt;br /&gt;	my $IEObject = shift @Args;&lt;br /&gt;	print " Event triggered: $Event\n";    &lt;br /&gt;&lt;br /&gt;	my ($i,$anchor);&lt;br /&gt;	my $anchors;&lt;br /&gt;    &lt;br /&gt;	# STEP 1 : Find the main menu, login to the web site, find the treeview&lt;br /&gt;	if ($Event eq "DocumentComplete") {    &lt;br /&gt;		print "URL: " . $IEObject-&gt;Document-&gt;URL . "\n";&lt;br /&gt;		if ( $IEObject-&gt;Document-&gt;URL eq "http://www.xxx.fr/ident.aspx" ) {&lt;br /&gt;			my $forms = $IEObject-&gt;Document-&gt;forms;&lt;br /&gt;			my $form = $forms-&gt;item(0);&lt;br /&gt;			if ( defined($form-&gt;elements("fldNumCli")) ) {&lt;br /&gt;				print "--------------------------------------------\n";&lt;br /&gt;				print "Found the login box, authenticating ...\n";&lt;br /&gt;				print "--------------------------------------------\n";&lt;br /&gt;			    $form-&gt;elements("fldNumCli")-&gt;{value} = "xxxx";&lt;br /&gt;			    $form-&gt;elements("fldUtil")-&gt;{value} = "xxx";&lt;br /&gt;			    $form-&gt;elements("fldPwd")-&gt;{value} = "xxx";&lt;br /&gt;		    	$form-&gt;elements("btIdent")-&gt;Click();&lt;br /&gt;	    		}&lt;br /&gt;		}&lt;br /&gt;		if ( $IEObject-&gt;Document-&gt;URL eq "http://www.xxx.fr/menu.aspx" ) {&lt;br /&gt;			print "Found the menu.\n";&lt;br /&gt;			$Menu = $IEObject-&gt;Document;&lt;br /&gt;			$anchors = $IEObject-&gt;Document-&gt;links;&lt;br /&gt;			for (my $i=0; $i &lt; $anchors-&gt;length; $i++) {&lt;br /&gt;				$anchor = $anchors-&gt;item($i);&lt;br /&gt;				print $anchor-&gt;href."\n";&lt;br /&gt;				$Disconnect = $anchor if $anchor-&gt;href eq "http://www.xxx.fr/ident.aspx?qs=deconnecter";&lt;br /&gt;			}&lt;br /&gt;	      	}	    &lt;br /&gt;		if ( $IEObject-&gt;Document-&gt;URL eq "http://www.xxx.fr/client/frameTreeview.aspx" ) {&lt;br /&gt;			print "Found the TreeView.\n";&lt;br /&gt;			$TreeView = $IEObject-&gt;Document;&lt;br /&gt;      		}		&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	# STEP 2 : Click on the Menu and TreeView links   &lt;br /&gt;	if ($Event eq "DocumentComplete") {    		&lt;br /&gt;	if ( ! $MenuClicked and defined($Menu) ) {&lt;br /&gt;		my $MenuItem = $Menu-&gt;getElementById("SM_CLIE_RECH");&lt;br /&gt;		if ( defined($MenuItem) ) { &lt;br /&gt;			print $MenuItem-&gt;ID."\n";&lt;br /&gt;			$MenuItem-&gt;Click;&lt;br /&gt;			$MenuClicked = 1;&lt;br /&gt;		}&lt;br /&gt;	}}&lt;br /&gt;&lt;br /&gt;	if ( $Event eq "CommandStateChange" or $Event eq "StatusTextChange" ) {&lt;br /&gt;		print Dumper($IEObject);&lt;br /&gt;	}&lt;br /&gt;	if ( @TreeViewLinks != 0 and &lt;br /&gt;	     defined($TreeView) and &lt;br /&gt;	     $Event eq "DocumentComplete" &lt;br /&gt;	) {&lt;br /&gt;		my $link = shift(@TreeViewLinks);&lt;br /&gt;		$anchors = $TreeView-&gt;links;&lt;br /&gt;		my $found=0;&lt;br /&gt;		print "Looking for '$link' in the TreeView ... \n";&lt;br /&gt;	        for (my $i=0; $i &lt; $anchors-&gt;length; $i++) {&lt;br /&gt;		       	$anchor = $anchors-&gt;item($i);&lt;br /&gt;	        	#print $anchor-&gt;innerHTML."\n";&lt;br /&gt;		       	if ( $anchor-&gt;innerHTML =~ /$link/ ) {&lt;br /&gt;				print "Clicking on '$link' ... \n";&lt;br /&gt;	                	$anchor-&gt;Click;&lt;br /&gt;				$found=1;&lt;br /&gt;				$Previouslink=$link;&lt;br /&gt;				last;&lt;br /&gt;			}&lt;br /&gt;	        }&lt;br /&gt;		if ( ! $found ) { &lt;br /&gt;			# Le TreeView a bugge, on reclique&lt;br /&gt;			sleep 1;&lt;br /&gt;			print "Looking for '$Previouslink' in the TreeView ... \n";&lt;br /&gt;		        for (my $i=0; $i &lt; $anchors-&gt;length; $i++) {&lt;br /&gt;			       	$anchor = $anchors-&gt;item($i);&lt;br /&gt;	        		#print $anchor-&gt;innerHTML."\n";&lt;br /&gt;		       		if ( $anchor-&gt;innerHTML =~ /$Previouslink/ ) {&lt;br /&gt;					print "Clicking on '$Previouslink' ... \n";&lt;br /&gt;	              		  	$anchor-&gt;Click;&lt;br /&gt;					last;&lt;br /&gt;				}&lt;br /&gt;		        }&lt;br /&gt;			unshift @TreeViewLinks,$link;&lt;br /&gt;		}&lt;br /&gt;	} &lt;br /&gt;   &lt;br /&gt;	# STEP 3 : Verify the list displayed &lt;br /&gt;		&lt;br /&gt;	if ($Event eq "DocumentComplete") {    &lt;br /&gt;   		if ( @TreeViewLinks == 0 and $IEObject-&gt;Document-&gt;URL =~ /listeRefPlof.aspx/ ) {&lt;br /&gt;			print "Scenario completed, exiting ...\n";&lt;br /&gt;			$ScenarioCompleted=1;&lt;br /&gt;	   		Win32::OLE-&gt;QuitMessageLoop;&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;	# Exit on errors&lt;br /&gt;	    &lt;br /&gt;	Win32::OLE-&gt;QuitMessageLoop() if $Event eq "OnQuit" or time() &gt; $WatchDog + 60;&lt;br /&gt;    &lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 28 Sep 2007 11:45:24 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4586</guid>
      <author>bouffon69 (Sylvain Le Courtois)</author>
    </item>
    <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>
    <item>
      <title>Simple ASP page to reset passwords</title>
      <link>http://snippets.dzone.com/posts/show/4559</link>
      <description>// This page allows to reset an AD account password.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;HTML&gt;&lt;HEAD&gt;&lt;TITLE&gt;Reinitialisation de mot de passe&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;FORM method=post&gt;&lt;br /&gt;&lt;CENTER&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&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;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;                If Request.Form("login") = "" Then&lt;br /&gt;                	Response.Write("&lt;B&gt;Saisir le compte &#224; reinitialiser&lt;/B&gt;")&lt;br /&gt;                Else&lt;br /&gt;                    Dim Group, Member, Domain, UserFound&lt;br /&gt;                    ' &lt;br /&gt;                    Domain ="FR-ERM"&lt;br /&gt;                    '&lt;br /&gt;                    UserFound=0&lt;br /&gt;                    &lt;br /&gt;	                Set Group = GetObject("WinNT://" &amp; Domain &amp; "/Domain Users")&lt;br /&gt;    	            For Each Member In Group.Members&lt;br /&gt;    	            	' Response.Write(Member.Name &amp; "&lt;BR&gt;")&lt;br /&gt;        	        	If UCase(Member.Name) = UCase(Request.Form("login")) Then&lt;br /&gt;        	        		UserFound=1&lt;br /&gt;        	        		If Member.AccountDisabled Then &lt;br /&gt;        	        			Response.Write(" " &amp; Request.Form("login") &amp;" est un compte desactive&lt;/B&gt;")&lt;br /&gt;        	        			Exit For&lt;br /&gt;        	        		Else&lt;br /&gt;        	        			' Essai de reinit de mot de passe&lt;br /&gt;        	        			Dim res&lt;br /&gt;        	        			res=Member.SetPassword(Request.Form("pass"))&lt;br /&gt;        	        			'Member.Put "pwdLastSet", CLng(0)&lt;br /&gt;        	        			Member.Put "PasswordExpired", 1&lt;br /&gt;								Member.SetInfo&lt;br /&gt;        	        			Response.Write("&lt;B&gt;L'utilisateur "&amp; Request.Form("login") &amp; " a chang&#233; de mot de passe !&lt;BR&gt;&lt;BR&gt;&lt;/B&gt;Il devra changer de mot de passe au prochain login.")&lt;br /&gt;        	        			Exit For&lt;br /&gt;        	        		End If&lt;br /&gt;        	        	End If &lt;br /&gt;            	    Next      &lt;br /&gt;       	        	If UserFound = 0 Then&lt;br /&gt;       	        		Response.Write(Request.Form("login") &amp;" non trouv&#233; dans le domaine "&amp; Domain)&lt;br /&gt;       	        	End If           	            	&lt;br /&gt;                	&lt;br /&gt;                End If&lt;br /&gt;                %&gt;&lt;br /&gt;              &lt;br /&gt;                &lt;/TD&gt;&lt;/TR&gt;&lt;br /&gt;              &lt;TR&gt;&lt;br /&gt;                &lt;TD class=td11 width="1%" height=22&gt;Identifiant&lt;br /&gt;               &lt;br /&gt;                &lt;/TD&gt;&lt;br /&gt;                &lt;TD class=td11 colSpan=2&gt;Nouveau mot de passe&lt;/TD&gt;&lt;/TR&gt;&lt;br /&gt;              &lt;TR&gt;&lt;br /&gt;                &lt;TD width="25%"&gt;&lt;INPUT maxLength=20 name=login&gt;&lt;br /&gt; &lt;br /&gt;                &lt;/TD&gt;&lt;br /&gt;                &lt;TD width="20%"&gt;&lt;INPUT type=password maxLength=10 size=10 &lt;br /&gt;                  name=pass&gt; &lt;/TD&gt;&lt;br /&gt;                &lt;TD&gt;&lt;INPUT type=image height=18 alt="Reset !" width=15 &lt;br /&gt;                  src="files/submit.gif" value=login border=0 name=ok&gt; &lt;br /&gt;                &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/CENTER&gt;&lt;/FORM&gt;&lt;/BODY&gt;&lt;/HTML&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Thu, 20 Sep 2007 07:01:29 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4559</guid>
      <author>bouffon69 (Sylvain Le Courtois)</author>
    </item>
    <item>
      <title>Excel : Make a query on a Oracle database and return the result (useful for sheet formulas)</title>
      <link>http://snippets.dzone.com/posts/show/4518</link>
      <description>// This should be pasted in a module of the workbook&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Function ORAQUERY(strHost As String, strDatabase As String, strSQL As String, strUser As String, strPassword As String)&lt;br /&gt;  Dim strConOracle, oConOracle, oRsOracle&lt;br /&gt;  Dim StrResult As String&lt;br /&gt;  &lt;br /&gt;  StrResult = ""&lt;br /&gt;  &lt;br /&gt;  strConOracle = "Driver={Microsoft ODBC for Oracle}; " &amp; _&lt;br /&gt;         "CONNECTSTRING=(DESCRIPTION=" &amp; _&lt;br /&gt;         "(ADDRESS=(PROTOCOL=TCP)" &amp; _&lt;br /&gt;         "(HOST=" &amp; strHost &amp; ")(PORT=1521))" &amp; _&lt;br /&gt;         "(CONNECT_DATA=(SERVICE_NAME=" &amp; strDatabase &amp; "))); uid=" &amp; strUser &amp; " ;pwd=" &amp; strPassword &amp; ";"&lt;br /&gt;  Set oConOracle = CreateObject("ADODB.Connection")&lt;br /&gt;  Set oRsOracle = CreateObject("ADODB.Recordset")&lt;br /&gt;  oConOracle.Open strConOracle&lt;br /&gt;  Set oRsOracle = oConOracle.Execute(strSQL)&lt;br /&gt;  Do While Not oRsOracle.EOF&lt;br /&gt;      If StrResult &lt;&gt; "" Then&lt;br /&gt;        StrResult = StrResult &amp; Chr(10) &amp; oRsOracle.Fields(0).Value&lt;br /&gt;      Else&lt;br /&gt;        StrResult = oRsOracle.Fields(0).Value&lt;br /&gt;      End If&lt;br /&gt;    oRsOracle.MoveNext&lt;br /&gt;  Loop&lt;br /&gt;  oConOracle.Close&lt;br /&gt;  Set oRsOracle = Nothing&lt;br /&gt;  Set oConOracle = Nothing&lt;br /&gt;  ORAQUERY = StrResult&lt;br /&gt;End Function&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Mon, 10 Sep 2007 15:26:22 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4518</guid>
      <author>bouffon69 (Sylvain Le Courtois)</author>
    </item>
    <item>
      <title>Simple output of date in perl</title>
      <link>http://snippets.dzone.com/posts/show/4506</link>
      <description>// Simple output of current date in perl&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;  my @day_name = ("Sun.","Mon.","Tue.","Wed.","Thu.","Fri.","Sat.");&lt;br /&gt;  my ($sec,$min,$hour,$mday,$mon,$year,$wday); &lt;br /&gt;  ($sec,$min,$hour,$mday,$mon,$year,$wday,undef,undef)=localtime(time()); $year+=1900;$mon++;&lt;br /&gt;  $report_date=sprintf("%s %04d.%02d.%02d %02d:%02d",$day_name[$wday],$year,$mon,$mday,$hour,$min);&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 07 Sep 2007 07:55:52 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4506</guid>
      <author>bouffon69 (Sylvain Le Courtois)</author>
    </item>
    <item>
      <title>CMD text file rotation 60 generations</title>
      <link>http://snippets.dzone.com/posts/show/4504</link>
      <description>// Simple CMD text file rotation 60 generations&lt;br /&gt;&lt;code&gt;&lt;br /&gt;@echo off&lt;br /&gt;&lt;br /&gt;if not exist %1.txt goto :EOF&lt;br /&gt;if exist %1_62.txt del %1_62.txt&lt;br /&gt;&lt;br /&gt;if exist %1_60.txt ren %1_60.txt %1_61.txt&lt;br /&gt;if exist %1_59.txt ren %1_59.txt %1_60.txt&lt;br /&gt;if exist %1_58.txt ren %1_58.txt %1_59.txt&lt;br /&gt;if exist %1_57.txt ren %1_57.txt %1_58.txt&lt;br /&gt;if exist %1_56.txt ren %1_56.txt %1_57.txt&lt;br /&gt;if exist %1_55.txt ren %1_55.txt %1_56.txt&lt;br /&gt;if exist %1_54.txt ren %1_54.txt %1_55.txt&lt;br /&gt;if exist %1_53.txt ren %1_53.txt %1_54.txt&lt;br /&gt;if exist %1_52.txt ren %1_52.txt %1_53.txt&lt;br /&gt;if exist %1_51.txt ren %1_51.txt %1_52.txt&lt;br /&gt;if exist %1_50.txt ren %1_50.txt %1_51.txt&lt;br /&gt;if exist %1_49.txt ren %1_49.txt %1_50.txt&lt;br /&gt;if exist %1_48.txt ren %1_48.txt %1_49.txt&lt;br /&gt;if exist %1_47.txt ren %1_47.txt %1_48.txt&lt;br /&gt;if exist %1_46.txt ren %1_46.txt %1_47.txt&lt;br /&gt;if exist %1_45.txt ren %1_45.txt %1_46.txt&lt;br /&gt;if exist %1_44.txt ren %1_44.txt %1_45.txt&lt;br /&gt;if exist %1_43.txt ren %1_43.txt %1_44.txt&lt;br /&gt;if exist %1_42.txt ren %1_42.txt %1_43.txt&lt;br /&gt;if exist %1_41.txt ren %1_41.txt %1_42.txt&lt;br /&gt;if exist %1_40.txt ren %1_40.txt %1_41.txt&lt;br /&gt;if exist %1_39.txt ren %1_39.txt %1_40.txt&lt;br /&gt;if exist %1_38.txt ren %1_38.txt %1_39.txt&lt;br /&gt;if exist %1_37.txt ren %1_37.txt %1_38.txt&lt;br /&gt;if exist %1_36.txt ren %1_36.txt %1_37.txt&lt;br /&gt;if exist %1_35.txt ren %1_35.txt %1_36.txt&lt;br /&gt;if exist %1_34.txt ren %1_34.txt %1_35.txt&lt;br /&gt;if exist %1_33.txt ren %1_33.txt %1_34.txt&lt;br /&gt;if exist %1_32.txt ren %1_32.txt %1_33.txt&lt;br /&gt;if exist %1_31.txt ren %1_31.txt %1_32.txt&lt;br /&gt;if exist %1_30.txt ren %1_30.txt %1_31.txt&lt;br /&gt;if exist %1_29.txt ren %1_29.txt %1_30.txt&lt;br /&gt;if exist %1_28.txt ren %1_28.txt %1_29.txt&lt;br /&gt;if exist %1_27.txt ren %1_27.txt %1_28.txt&lt;br /&gt;if exist %1_26.txt ren %1_26.txt %1_27.txt&lt;br /&gt;if exist %1_25.txt ren %1_25.txt %1_26.txt&lt;br /&gt;if exist %1_24.txt ren %1_24.txt %1_25.txt&lt;br /&gt;if exist %1_23.txt ren %1_23.txt %1_24.txt&lt;br /&gt;if exist %1_22.txt ren %1_22.txt %1_23.txt&lt;br /&gt;if exist %1_21.txt ren %1_21.txt %1_22.txt&lt;br /&gt;if exist %1_20.txt ren %1_20.txt %1_21.txt&lt;br /&gt;if exist %1_19.txt ren %1_19.txt %1_20.txt&lt;br /&gt;if exist %1_18.txt ren %1_18.txt %1_19.txt&lt;br /&gt;if exist %1_17.txt ren %1_17.txt %1_18.txt&lt;br /&gt;if exist %1_16.txt ren %1_16.txt %1_17.txt&lt;br /&gt;if exist %1_15.txt ren %1_15.txt %1_16.txt&lt;br /&gt;if exist %1_14.txt ren %1_14.txt %1_15.txt&lt;br /&gt;if exist %1_13.txt ren %1_13.txt %1_14.txt&lt;br /&gt;if exist %1_12.txt ren %1_12.txt %1_13.txt&lt;br /&gt;if exist %1_11.txt ren %1_11.txt %1_12.txt&lt;br /&gt;if exist %1_10.txt ren %1_10.txt %1_11.txt&lt;br /&gt;if exist %1_09.txt ren %1_09.txt %1_10.txt&lt;br /&gt;if exist %1_08.txt ren %1_08.txt %1_09.txt&lt;br /&gt;if exist %1_07.txt ren %1_07.txt %1_08.txt&lt;br /&gt;if exist %1_06.txt ren %1_06.txt %1_07.txt&lt;br /&gt;if exist %1_05.txt ren %1_05.txt %1_06.txt&lt;br /&gt;if exist %1_04.txt ren %1_04.txt %1_05.txt&lt;br /&gt;if exist %1_03.txt ren %1_03.txt %1_04.txt&lt;br /&gt;if exist %1_02.txt ren %1_02.txt %1_03.txt&lt;br /&gt;if exist %1_01.txt ren %1_01.txt %1_02.txt&lt;br /&gt;&lt;br /&gt;copy %1.txt %1_01.txt&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 07 Sep 2007 07:50:22 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4504</guid>
      <author>bouffon69 (Sylvain Le Courtois)</author>
    </item>
    <item>
      <title>VBA procedure to pen an Excel workbook and refresh all datas in the QueryTables and PivotTable objects</title>
      <link>http://snippets.dzone.com/posts/show/4503</link>
      <description>// description of your code here&lt;br /&gt;// Can also use the Workbook Open event ( Private Sub Workbook_Open() )&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Sub Auto_Open()&lt;br /&gt;Application.DisplayAlerts = False&lt;br /&gt;    ChDir "T:\EXPLOIT\TSMENV\EXCEL\politiques"&lt;br /&gt;    Workbooks.Open Filename:="t:\EXPLOIT\TSMENV\EXCEL\politiques\politiques.xls", _&lt;br /&gt;        UpdateLinks:=3&lt;br /&gt;    For i = 1 To ActiveWorkbook.PivotCaches.Count&lt;br /&gt;        ActiveWorkbook.PivotCaches(i).RefreshOnFileOpen = False&lt;br /&gt;    Next&lt;br /&gt;    For i = 1 To ActiveWorkbook.Sheets.Count&lt;br /&gt;        For j = 1 To ActiveWorkbook.Sheets(i).QueryTables.Count&lt;br /&gt;            ActiveWorkbook.Sheets(i).QueryTables(j).RefreshOnFileOpen = False&lt;br /&gt;        Next&lt;br /&gt;    Next&lt;br /&gt;    ActiveWorkbook.RefreshAll&lt;br /&gt;    ActiveWorkbook.RefreshAll&lt;br /&gt;    ActiveWorkbook.RefreshAll&lt;br /&gt;    ActiveWorkbook.Save&lt;br /&gt;    ActiveWindow.Close&lt;br /&gt;    Application.Quit&lt;br /&gt;End Sub&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 07 Sep 2007 07:44:29 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4503</guid>
      <author>bouffon69 (Sylvain Le Courtois)</author>
    </item>
  </channel>
</rss>
