<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>News and articles about Virtualization, Cloud Computing and Active Directory</title><link>http://msmvps.com/blogs/josuevidal/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Microsoft Office 365 for IT Professionals Jump Start</title><link>http://msmvps.com/blogs/josuevidal/archive/2011/05/24/microsoft-office-365-for-it-professionals-jump-start.aspx</link><pubDate>Tue, 24 May 2011 17:25:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1793722</guid><dc:creator>Josue Vidal </dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/josuevidal/rsscomments.aspx?PostID=1793722</wfw:commentRss><comments>http://msmvps.com/blogs/josuevidal/archive/2011/05/24/microsoft-office-365-for-it-professionals-jump-start.aspx#comments</comments><description>&lt;p&gt;Hello, &lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;If you has interesting in Office 365, this is good oportunity to improve the skill.&lt;br /&gt;Microsoft Office 365 for IT Professionals Jump Start&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.eventbuilder.com/microsoft/event_desc.asp?p_event=x8f7i41r" title="https://www.eventbuilder.com/microsoft/event_desc.asp?p_event=x8f7i41r"&gt;&lt;span style="color:#0072bc;"&gt;https://www.eventbuilder.com/microsoft/event_desc.asp?p_event=x8f7i41r&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;&lt;strong&gt;Day One &amp;mdash; &amp;ldquo;Office 365 Platform&amp;rdquo; May 24, 2011 | 10am-4pm PDT | Live online training&lt;/strong&gt;&lt;br /&gt;&amp;bull; Microsoft Office 365 Overview for IT Pros&lt;br /&gt;&amp;bull; Deploying Clients for Office 365&lt;br /&gt;&amp;bull; Administration &amp;amp; Automation using PowerShell&lt;br /&gt;&amp;bull; Identity and Access Solutions&lt;br /&gt;&amp;bull; Directory Synchronization &lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&lt;br /&gt;&lt;strong&gt;Day Two &amp;mdash; &amp;ldquo;Exchange Online&amp;rdquo; May 25, 2011 | 10am-4pm PDT | Live online training&lt;/strong&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&amp;bull; Exchange Online Overview for IT Pros &lt;br /&gt;&amp;bull; Exchange Online Administration &lt;br /&gt;&amp;bull; Staged Exchange Online Migration &lt;br /&gt;&amp;bull; Hybrid Options with Exchange Server &amp;amp; Exchange Online &lt;br /&gt;&amp;bull; Exchange Online Archiving &amp;amp; Compliance &lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&lt;br /&gt;&lt;strong&gt;Day Three &amp;mdash; &amp;ldquo;Lync &amp;amp; SharePoint Online&amp;rdquo; May 26, 2011 | 10am-4pm PDT | Live online training&lt;/strong&gt; &lt;/div&gt;
&lt;div&gt;&amp;bull; Lync Online Overview &amp;amp; Configuration for IT Pros &lt;br /&gt;&amp;bull; SharePoint Online Overview &lt;br /&gt;&amp;bull; SharePoint Online Administration &lt;br /&gt;&amp;bull; SharePoint Online Extensibility &amp;amp; Customization &lt;br /&gt;&amp;bull; Office 365 Deployment Overview &lt;br /&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;Josu&amp;eacute; Vidal&lt;br /&gt;twitter.com/josuevidall&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1793722" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/josuevidal/archive/tags/Office+365/default.aspx">Office 365</category><category domain="http://msmvps.com/blogs/josuevidal/archive/tags/Cloud/default.aspx">Cloud</category></item><item><title>Report - Last Logon User from Active Directory</title><link>http://msmvps.com/blogs/josuevidal/archive/2010/06/01/report-last-logon-user-from-active-directory.aspx</link><pubDate>Tue, 01 Jun 2010 19:18:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1771144</guid><dc:creator>Josue Vidal </dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/josuevidal/rsscomments.aspx?PostID=1771144</wfw:commentRss><comments>http://msmvps.com/blogs/josuevidal/archive/2010/06/01/report-last-logon-user-from-active-directory.aspx#comments</comments><description>&lt;p&gt;&lt;span class="long_text" id="result_box"&gt;&lt;span&gt;Hello Guys,&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="BACKGROUND-COLOR:#fff;"&gt;The objective of keeping the base clean Active Directory, follow the script to generate a report of the last logon of users from Active Directory, so it is possible to identify and delete the user who log on the network to more than 1 year.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Save the following script as *. VBS and use the complete script execution will generate a *. csv file.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="long_text"&gt;&lt;span&gt;___________________________&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="long_text"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/p&gt;
&lt;p&gt;Option Explicit &lt;/p&gt;
&lt;p&gt;Dim strDomain, strOU &lt;/p&gt;
&lt;p&gt;strDomain = &amp;quot;Contoso.corp&amp;quot; &lt;/p&gt;
&lt;p&gt;strOU = &amp;quot;DC=contoso,DC=corp&amp;quot; &lt;/p&gt;
&lt;p&gt;strDomain = InputBox(&amp;quot;Enter the FQDN of the domain to be searched.&amp;quot; &amp;amp; chr(13)&amp;amp; chr(13) &amp;amp; &amp;quot;Exemplo: &amp;quot; &amp;amp; chr(13) &amp;amp; &amp;quot;contoso.corp&amp;quot;, &amp;quot;Domain to be searched&amp;quot;, strDomain) &lt;/p&gt;
&lt;p&gt;If strDomain = &amp;quot;&amp;quot; Then wscript.quit &lt;/p&gt;
&lt;p&gt;strOU = InputBox(&amp;quot;Enter the LDAP path of the container to be searched.&amp;quot; &amp;amp; chr(13) &amp;amp; chr(13)&amp;amp; &amp;quot;Exemplos: &amp;quot; &amp;amp; chr(13) &amp;amp; &amp;quot;DC=contoso,DC=corp&amp;quot; &amp;amp; chr(13) &amp;amp; &amp;quot;DC=contoso,DC=corp&amp;quot;, &amp;quot;LDAP path to be searched&amp;quot;, strOU) &lt;/p&gt;
&lt;p&gt;If strOU = &amp;quot;&amp;quot; Then wscript.quit &lt;/p&gt;
&lt;p&gt;Const ForAppending = 8 &lt;/p&gt;
&lt;p&gt;Dim k &lt;br /&gt;Dim sDCs()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;Dynamic array to hold the path for all DCs &lt;br /&gt;Dim BiasKey&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;Active Time Bias from Registry&lt;br /&gt;Dim Bias&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;Time Bias&lt;br /&gt;Dim strAdsPath&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;Machine account DN&lt;br /&gt;Dim dtmDate&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;Date output string&lt;br /&gt;Dim objDate&lt;br /&gt;Dim sDate&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;Local machine current date&lt;br /&gt;Dim lngDate&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;LastLogon date&lt;br /&gt;Dim strTime&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;Local machine current time&lt;br /&gt;Dim strLDate&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;Local machine current date and time&lt;br /&gt;Dim objList&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;Dictionary object to track latest LastLogon for each computer&lt;br /&gt;Dim objRoot&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;RootDSE object&lt;br /&gt;Dim strConfig&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;Configuration Naming Context&lt;br /&gt;Dim objDC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;Domain Controller&lt;br /&gt;Dim strDNSDomain&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;Default nameing context&lt;br /&gt;Dim strComputer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;Computer object Name&lt;br /&gt;Dim objConnection&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;ADO conection&lt;br /&gt;Dim objCommand&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;ADO command:&lt;br /&gt;Dim objRecordSet&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;Object to hold attributes from AD&lt;br /&gt;Dim oWshShell&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;Windows shell script &lt;br /&gt;Dim objFSO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;File System object&lt;br /&gt;Dim objFile&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;File object used to open text file for output&lt;br /&gt;Dim objLastLogon&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;Last Logon Long Integer attribute&lt;br /&gt;Dim strFilePath&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;Path to current directory&lt;br /&gt;Dim d&lt;br /&gt;Dim lngHigh&lt;br /&gt;Dim lngLow&lt;br /&gt;Dim objdisplayName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;File DisplayName&amp;#39; &lt;/p&gt;
&lt;p&gt;Set oWshShell = CreateObject(&amp;quot;Wscript.Shell&amp;quot;)&lt;br /&gt;Set objFSO = CreateObject(&amp;quot;Scripting.FileSystemObject&amp;quot;)&lt;br /&gt;strFilePath = objFSO.GetAbsolutePathName(&amp;quot;.&amp;quot;) &lt;/p&gt;
&lt;p&gt;sDate = Date&lt;br /&gt;strTime = Now&lt;br /&gt;StrLDate = DatePart(&amp;quot;m&amp;quot;,sDate) &amp;amp; &amp;quot;.&amp;quot; &amp;amp; DatePart(&amp;quot;d&amp;quot;,sDate) &amp;amp; &amp;quot;.&amp;quot; &amp;amp; Hour(strTime) &amp;amp; &amp;quot;.&amp;quot; &amp;amp; Minute(strTime)&lt;br /&gt;Set objFile = objFSO.OpenTextFile (strFilePath &amp;amp; &amp;quot;\report.&amp;quot; &amp;amp; strLDate &amp;amp; &amp;quot;.csv&amp;quot;,ForAppending,True) &lt;/p&gt;
&lt;p&gt;&amp;#39;Use a dictionary object to track latest LastLogon for each computer. &lt;/p&gt;
&lt;p&gt;Set objList = CreateObject(&amp;quot;Scripting.Dictionary&amp;quot;)&lt;br /&gt;objList.CompareMode = vbTextCompare &lt;/p&gt;
&lt;p&gt;&amp;#39;Obtain local Time Zone bias from machine registry. &lt;/p&gt;
&lt;p&gt;BiasKey = oWshShell.RegRead(&amp;quot;HKLM\System\CurrentControlSet\Control\TimeZoneInformation\ActiveTimeBias&amp;quot;)&lt;br /&gt;If UCase(TypeName(BiasKey)) = &amp;quot;LONG&amp;quot; Then&lt;br /&gt;&amp;nbsp; Bias = BiasKey&lt;br /&gt;&amp;nbsp; ElseIf UCase(TypeName(BiasKey)) = &amp;quot;VARIANT()&amp;quot; Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bias = 0&lt;br /&gt;&amp;nbsp; For k = 0 To UBound(BiasKey)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bias = Bias + (BiasKey(k) * 256^k)&lt;br /&gt;&amp;nbsp; Next&lt;br /&gt;End If &lt;/p&gt;
&lt;p&gt;&amp;#39;Determine configuration context and DNS domain from RootDSE object. &lt;/p&gt;
&lt;p&gt;Set objRoot = GetObject(&amp;quot;LDAP://RootDSE&amp;quot;)&lt;br /&gt;strConfig = objRoot.Get(&amp;quot;ConfigurationNamingContext&amp;quot;)&lt;br /&gt;strDNSDomain = objRoot.Get(&amp;quot;DefaultNamingContext&amp;quot;) &lt;/p&gt;
&lt;p&gt;&amp;#39;wscript.echo strDNSDomain &lt;/p&gt;
&lt;p&gt;&amp;#39;Use ADO to search Active Directory for ObjectClass nTDSDSA.&lt;br /&gt;&amp;#39;This will identify all Domain Controllers. &lt;/p&gt;
&lt;p&gt;Set objCommand = CreateObject(&amp;quot;ADODB.Command&amp;quot;)&lt;br /&gt;Set objConnection = CreateObject(&amp;quot;ADODB.Connection&amp;quot;)&lt;br /&gt;objConnection.Provider = &amp;quot;ADsDSOObject&amp;quot;&lt;br /&gt;objConnection.Open = &amp;quot;Active Directory Provider&amp;quot;&lt;br /&gt;objCommand.ActiveConnection = objConnection &lt;/p&gt;
&lt;p&gt;objCommand.CommandText = &amp;quot;&amp;lt;LDAP://&amp;quot; &amp;amp; strConfig &amp;amp; &amp;quot;&amp;gt;;(ObjectClass=nTDSDSA);AdsPath;subtree&amp;quot;&lt;br /&gt;objCommand.Properties(&amp;quot;Page Size&amp;quot;) = 100&lt;br /&gt;objCommand.Properties(&amp;quot;Timeout&amp;quot;) = 30&lt;br /&gt;objCommand.Properties(&amp;quot;Searchscope&amp;quot;) = 2&lt;br /&gt;objCommand.Properties(&amp;quot;Cache Results&amp;quot;) = False &lt;/p&gt;
&lt;p&gt;Set objRecordSet = objCommand.Execute &lt;/p&gt;
&lt;p&gt;&amp;#39;Enumerate parent objects of class nTDSDSA. Save Domain Controller&lt;br /&gt;&amp;#39;AdsPaths in dynamic array sDCs.&lt;br /&gt;Dim iTest1, iTest2 &lt;/p&gt;
&lt;p&gt;k = 0&lt;br /&gt;Do Until objRecordSet.EOF&lt;br /&gt;&amp;nbsp; Set objDC = GetObject(GetObject(objRecordSet.Fields(&amp;quot;AdsPath&amp;quot;)).Parent)&lt;br /&gt;&amp;nbsp; &amp;#39;wscript.echo objDC.DNSHostName&lt;br /&gt;&amp;nbsp; iTest1 = Instr(objDC.DNSHostName, strDomain )&lt;br /&gt;&amp;nbsp; if iTest1 &amp;gt; 0 then iTest2 = InStr(Left(objDC.DNSHostName,iTest1-2),&amp;quot;.&amp;quot;)&lt;br /&gt;&amp;nbsp; &amp;#39;wscript.echo objDC.DNSHostName&lt;br /&gt;&amp;nbsp; &amp;#39;if iTest1 &amp;gt; 0 then wscript.echo &amp;quot;iTest1 = &amp;quot; &amp;amp; iTest1 &amp;amp; &amp;quot;[&amp;quot; &amp;amp; Left(objDC.DNSHostName,iTest1-2) &amp;amp; &amp;quot;]&amp;quot;&lt;br /&gt;&amp;nbsp; &amp;#39;wscript.echo &amp;quot;iTest2 = &amp;quot; &amp;amp; iTest2&lt;br /&gt;&amp;nbsp; If iTest1 &amp;gt; 0 And iTest2 = 0 Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ReDim Preserve sDCs(k)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sDCs(k) = objDC.DNSHostName&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;wscript.echo objDC.DNSHostName&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; k = k + 1&lt;br /&gt;&amp;nbsp; end if&lt;br /&gt;&amp;nbsp; objRecordSet.MoveNext&lt;br /&gt;Loop&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;#39;wscript.echo &lt;/p&gt;
&lt;p&gt;&amp;#39;Retrieve LastLogon attribute for each computer on each Domain Controller.&lt;br /&gt;For k = 0 To Ubound(sDCs)&lt;br /&gt;&amp;nbsp; &amp;#39;wscript.echo &amp;quot;Checking domain controller &amp;quot; &amp;amp; sDCs(k) &amp;amp; &amp;quot;. DC &amp;quot; &amp;amp; k &amp;amp; &amp;quot; of &amp;quot; &amp;amp; Ubound(sDCs) &lt;/p&gt;
&lt;p&gt;&amp;nbsp; objCommand.CommandText = &amp;quot;&amp;lt;LDAP://&amp;quot; &amp;amp; sDCs(k) &amp;amp; &amp;quot;/&amp;quot; &amp;amp; strOU &amp;amp; &amp;quot;&amp;gt;;(ObjectCategory=user);Name,codepage,lastLogon,distinguishedName;subtree&amp;quot;&lt;br /&gt;&amp;nbsp; &amp;#39;wscript.echo &amp;quot;&amp;lt;LDAP://&amp;quot; &amp;amp; sDCs(k) &amp;amp; &amp;quot;/&amp;quot; &amp;amp; strOU &amp;amp; &amp;quot;&amp;gt;;(ObjectCategory=user);Name,displayname,lastLogon,distinguishedName;subtree&amp;quot; &lt;/p&gt;
&lt;p&gt;&amp;nbsp; On Error Resume Next&lt;br /&gt;&amp;nbsp; Set objRecordSet = objCommand.Execute&lt;br /&gt;&amp;nbsp; If Err.Number &amp;lt;&amp;gt; 0 Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; wscript.echo &amp;quot;Domain Controller not available: &amp;quot; &amp;amp; sDCs(k),2,&amp;quot;Notice&amp;quot;,48&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Err.Clear&lt;br /&gt;&amp;nbsp; Else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Do Until objRecordSet.EOF&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;wscript.echo &amp;quot;Estoy aqui&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;strAdsPath = objRecordSet.Fields(&amp;quot;Name&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strAdsPath = objRecordSet.Fields(&amp;quot;distinguishedName&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objdisplayName = ObjRecordSet.Fields(&amp;quot;displayName&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lngDate = objRecordSet.Fields(&amp;quot;LastLogon&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Not IsNull(lngDate) Then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set objDate = lngDate&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lngHigh = objDate.HighPart &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lngLow = objDate.LowPart &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If lngLow &amp;lt; 0 Then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lngHigh = lngHigh + 1 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (lngHigh = 0) And (lngLow = 0 ) Then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dtmDate = #1/1/1601# &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : dtmDate = #1/1/1601# + (((lngHigh * (2 ^ 32)) + lngLow)/600000000 - Bias)/1440&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dtmDate = #1/1/1601#&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If objList.Exists(strAdsPath) Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (dtmDate &amp;gt; objList(strAdsPath)) Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objList(strAdsPath) = dtmDate&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objList.Add strAdsPath, dtmDate&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objRecordSet.MoveNext&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Loop&lt;br /&gt;&amp;nbsp; End If&lt;br /&gt;Next &lt;/p&gt;
&lt;p&gt;&amp;#39;Output latest LastLogon date for each computer. &lt;/p&gt;
&lt;p&gt;&amp;#39;On Error Resume Next&lt;br /&gt;objFile.WriteLine &amp;quot;Nome;NomeCompleto;Descri&amp;ccedil;&amp;atilde;o;&amp;Uacute;ltima Autentica&amp;ccedil;&amp;atilde;o;OU&amp;quot;&lt;br /&gt;For Each strComputer In objList&lt;br /&gt;&amp;nbsp; Call VBOut(strComputer,objList(strComputer))&lt;br /&gt;Next&lt;br /&gt;On Error Goto 0 &lt;/p&gt;
&lt;p&gt;&amp;#39;objFile.WriteBlankLines (3)&lt;br /&gt;objFile.Close &lt;/p&gt;
&lt;p&gt;wscript.echo &amp;quot;Output file &amp;quot; &amp;amp; strFilePath &amp;amp; &amp;quot;\report.&amp;quot; &amp;amp; strLDate &amp;amp; &amp;quot;.csv created.&amp;quot;&lt;br /&gt;wscript.echo &amp;quot;Script processing complete.&amp;quot; &lt;/p&gt;
&lt;p&gt;&amp;#39;Clean up. &lt;/p&gt;
&lt;p&gt;Set objRoot = Nothing&lt;br /&gt;Set objConnection = Nothing&lt;br /&gt;Set objCommand = Nothing&lt;br /&gt;Set objRecordSet = Nothing&lt;br /&gt;Set objDC = Nothing&lt;br /&gt;Set lngDate = Nothing&lt;br /&gt;Set objList = Nothing&lt;br /&gt;Set oWshShell = Nothing &lt;/p&gt;
&lt;p&gt;Function VBOut(strPC,strTime)&lt;br /&gt;&amp;nbsp; Dim strComputerName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;Formatted computer name output string&lt;br /&gt;&amp;nbsp; Dim strOU&lt;br /&gt;&amp;nbsp; strComputerName = mid(strPC, 4,Instr(strPC,&amp;quot;,&amp;quot;)-4)&lt;br /&gt;&amp;nbsp; strOU = right(strPC, len(strPC)-len(&amp;quot;CN=&amp;quot; &amp;amp; strComputerName)-1)&lt;br /&gt;&amp;nbsp; objFile.WriteLine strComputerName &amp;amp; &amp;quot;;&amp;quot; &amp;amp; GetADInfo(strPC) &amp;amp; &amp;quot;;&amp;quot; &amp;amp; strTime &amp;amp; &amp;quot;;&amp;quot; &amp;amp; strOU &lt;br /&gt;End Function &lt;/p&gt;
&lt;p&gt;Function GetADInfo (sMachineName)&amp;nbsp; &lt;br /&gt;&amp;nbsp; Dim objComputer, sSO, sSP&lt;br /&gt;&amp;nbsp; &amp;#39;wscript.echo &amp;quot;LDAP://&amp;quot; &amp;amp; sMachineName&lt;br /&gt;&amp;nbsp; Set objComputer = GetObject (&amp;quot;LDAP://&amp;quot; &amp;amp; sMachineName) &lt;br /&gt;&amp;nbsp; sSO = objComputer.displayName&amp;nbsp; &lt;br /&gt;&amp;nbsp; sSP = objComputer.description&lt;br /&gt;&amp;nbsp; GetADInfo = sSO &amp;amp; &amp;quot;;&amp;quot; &amp;amp; sSP &lt;br /&gt;&amp;nbsp; Set objComputer = Nothing&amp;nbsp; &lt;br /&gt;End Function&lt;/p&gt;
&lt;p&gt;______________________________________________________________________________________________________&lt;/p&gt;
&lt;p&gt;Thanks, &lt;/p&gt;
&lt;p&gt;Josu&amp;eacute; Vidal &lt;br /&gt;Microsoft MVP - Active Directory&lt;br /&gt;MCSA | MCSE | MCT&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1771144" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/josuevidal/archive/tags/Scripts/default.aspx">Scripts</category></item><item><title>Primeiro Post  </title><link>http://msmvps.com/blogs/josuevidal/archive/2010/03/27/primeiro-post.aspx</link><pubDate>Sat, 27 Mar 2010 19:17:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1762469</guid><dc:creator>Josue Vidal </dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/josuevidal/rsscomments.aspx?PostID=1762469</wfw:commentRss><comments>http://msmvps.com/blogs/josuevidal/archive/2010/03/27/primeiro-post.aspx#comments</comments><description>&amp;Eacute; com uma encantada alegria que escrevo o Primeiro Post. Este blog tem como objetivo apresentar, responder e divulgar, solu&amp;ccedil;&amp;otilde;es Microsoft com o foco em Active Directory. Chega de conversa..chegou a hora!!! Josu&amp;eacute; Vidal Microsoft...(&lt;a href="http://msmvps.com/blogs/josuevidal/archive/2010/03/27/primeiro-post.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1762469" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/josuevidal/archive/tags/Comunidade/default.aspx">Comunidade</category></item></channel></rss>