<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4547874311899669660</id><updated>2012-01-06T11:39:27.670-08:00</updated><category term='&quot;batch script&quot; &quot;shell script&quot;'/><category term='SQL'/><category term='security'/><title type='text'>SysAdmin Stuff</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>27</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-6101220365146925697</id><published>2011-03-02T12:55:00.000-08:00</published><updated>2011-03-02T12:55:29.102-08:00</updated><title type='text'>Apache SVN and LDAP group authentication</title><content type='html'>Today I worked on our new SVN server.  I wanted it to do authentication to our AD and to an AD group.  I created the AD group, stuck my users in it, and swapped out the "Require valid-user" with Require ldap-group DN=foo,OU=Bar,DC=Myco,DC=Local.&lt;br /&gt;&lt;br /&gt;It didn't work.  &lt;br /&gt;&lt;br /&gt;So I fired up Wireshark and the ldap DN compareRequest was failing.  wtf?!&lt;br /&gt;&lt;br /&gt;So I fired up my handy-dandy LdapAdmin tool and pointed it at the ldap server and...&lt;br /&gt;&lt;br /&gt;At this point I should mention that my Apache ldap configuration is pointed at the Global Catalog port, not the regular LDAP port.&lt;br /&gt;&lt;br /&gt;... the ldap browser showed  there were NO members in the group.  I verified they were in there via the AD users and computers tool, but not in the Global Catalog server. &lt;br /&gt;&lt;br /&gt;Why you ask?  Because Global and Domain Local group memberships are NOT replicated to the Global catalogs.  The fix is to either a.) connect to the true ldap port in AD or b.) convert the group to a universal group.&lt;br /&gt;&lt;br /&gt;I chose b.&lt;br /&gt;&lt;br /&gt;-ellie&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-6101220365146925697?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/6101220365146925697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=6101220365146925697' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/6101220365146925697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/6101220365146925697'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2011/03/apache-svn-and-ldap-group.html' title='Apache SVN and LDAP group authentication'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-5727461690982354239</id><published>2010-01-27T10:04:00.000-08:00</published><updated>2010-01-27T10:05:27.024-08:00</updated><title type='text'>Krickey, spammers!</title><content type='html'>Sorry about the comment spam on here, I didn't realize moderation was off.  I'll fix that right now.&lt;br /&gt;&lt;br /&gt;-e&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-5727461690982354239?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/5727461690982354239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=5727461690982354239' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/5727461690982354239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/5727461690982354239'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2010/01/krickey-spammers.html' title='Krickey, spammers!'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-3231335444310237868</id><published>2010-01-27T09:58:00.000-08:00</published><updated>2010-01-27T10:03:40.845-08:00</updated><title type='text'>Backticks for windows.  (almost)</title><content type='html'>In Linux, or more specifically in the sh and bash shells, backticks " ` " execute a command and insert the results into a command.  I found a great trick to do almost the same thing over at &lt;a href="http://www.pcreview.co.uk/forums/thread-1468391.php"&gt;PcReview&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This snippet will save the hostname of a PC to an environment variable.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;for /f "delims=" %%A in ('hostname') do set hostname=%%A&lt;br /&gt;echo %hostname%&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;It loops over the output and keeps setting the variable.  Cool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-3231335444310237868?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/3231335444310237868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=3231335444310237868' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/3231335444310237868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/3231335444310237868'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2010/01/backticks-for-windows-almost.html' title='Backticks for windows.  (almost)'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-7026748329074934638</id><published>2010-01-14T13:30:00.001-08:00</published><updated>2010-01-14T13:30:49.750-08:00</updated><title type='text'>Setting IP addresses from the command line</title><content type='html'>netsh interface ip set address name="Local Area Connection" static 192.168.0.100 255.255.255.0 192.168.0.1 1&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-7026748329074934638?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/7026748329074934638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=7026748329074934638' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/7026748329074934638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/7026748329074934638'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2010/01/setting-ip-addresses-from-command-line.html' title='Setting IP addresses from the command line'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-2535075963383242761</id><published>2009-10-19T06:56:00.000-07:00</published><updated>2009-10-19T06:59:44.384-07:00</updated><title type='text'>That's the brakes.</title><content type='html'>Yesterday I put brakes on the Hyundai.  One of the Caliper slider pins was rusted solid. :(  I heated it up with a torch, applied PB blaster, and beat the crap out of it.  The replacement pin and boot was $50. Conveniently I just bought a new hammer that has a longer handle.  The extra leverage helped a lot.  It was supposed to be for teaching Derek blacksmithing, but now I might keep it.&lt;br /&gt;&lt;br /&gt;The garage is pissing me off.  It's time to get that shit cleaned up.&lt;br /&gt;&lt;br /&gt;arg.&lt;br /&gt;&lt;br /&gt;-ellie&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-2535075963383242761?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/2535075963383242761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=2535075963383242761' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/2535075963383242761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/2535075963383242761'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2009/10/thats-brakes.html' title='That&apos;s the brakes.'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-4166815862268956286</id><published>2009-09-16T14:24:00.000-07:00</published><updated>2009-09-16T15:16:04.058-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>SQL Network (Transport) Level Encryption. (TDS)</title><content type='html'>By default, Microsoft SQL connections only encrypt the login credentials.  Everything else can be sniffed right off the wire.  Sql 2008 (and some earlier versions) allow you to do encrypted SQL connections pretty easily.  Here is how.&lt;br /&gt;&lt;br /&gt;You will need:&lt;br /&gt; Sql server (well duh!)&lt;br /&gt; A certificate server or "MakeCert".&lt;br /&gt; On Windows server 2008, "WinHttpCertCfg".&lt;br /&gt;&lt;br /&gt;MakeCert is a tool to "easily" make a self-signed certificates without installing a full Certification Authority.  It is part of the Windows SDK available from &lt;a href="http://go.microsoft.com/fwlink/?linkid=84091"&gt;here&lt;/a&gt;.  I am on XP, but downloaded the Windows Vista version, Ran Setup and DE-selected all of the items except for the SDK.  Total download size was about 18mb.&lt;br /&gt;&lt;br /&gt;Since my SQL Server is Windows 2008, I also needed WinHttpCertCfg.  This tool is needed on Server 2008 to set permissions for the Private Key.  More on that in a second.  That is available &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=c42e27ac-3409-40e9-8667-c748e422833f&amp;displaylang=en"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So, lets get to work.&lt;br /&gt;&lt;br /&gt;First, you need your database server's FQDN.  This is the windows FQDN, not your internet FQDN.  Right-Click "Computer" or "My Computer" and write down the "Full computer name:"  On Server 2008 this is on the "System" pane.  On prior versions of windows this is on the Computer Name tab.&lt;br /&gt;&lt;br /&gt;Next you get to make your certificate.  If you have a domain CA, go request a computer certificate, install it, and skip down to the "Assigning permissions to the service account" step.  If you don't have a CA, we can use MakeCert.&lt;br /&gt;&lt;br /&gt;The command for makecert is:&lt;br /&gt;&lt;strong&gt;C:\Program Files (x86)\Windows Resource Kits\Tools\makecert -r -pe -n "CN=yourhost.yourdomain.com" -b 01/01/2000 -e 01/01/2036 -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 c:\MyCertificate.cer&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The certificate will be saved to c:\MyCertificate.cer.&lt;br /&gt;&lt;br /&gt;Now we import the certificate to the Local Machine's Personal store.&lt;br /&gt;Start -&gt; Run -&gt; MMC.&lt;br /&gt;File -&gt; Add/Remove Snap-in -&gt; Certificates -&gt; Add -&gt; Local Computer -&gt; Next -&gt; Finish -&gt; Ok.&lt;br /&gt;Expand Certificates and Right-Click the "Personal" Store.  Select "Import".&lt;br /&gt;Browse to c:\MyCertificate.cer  -&gt; Next.  There is no password -&gt; Next -&gt; finish.&lt;br /&gt;&lt;br /&gt;Almost Done.  Now we need to give the SQL service account permissions to the private key of the Cert.&lt;br /&gt;Pop open your command prompt and run this command.  You need to substitute the appropriate Server FQDN (yourhost.yourdomain.com) and the SQL Service account. (SqlServiceAccount).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;C:\Program Files (x86)\Windows Resource Kits\Tools\winhttpcertcfg.exe -g -c LOCAL_MACHINE\My -s yourhost.yourdomain.com -a SqlServiceAccount&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Next, Enable the Sql Encryption.&lt;br /&gt;Start -&gt; All Programs -&gt; Microsoft SQL Server 2008 -&gt; Configuration Tools -&gt; Sql Server Configuration Manager.&lt;br /&gt;Expand "Sql Server network Configuration" and Right-click Protocols for MSSQLSERVER.  Select Properties.&lt;br /&gt;On the Certificate tab, Select the yourhost.yourdomain.com certificate.&lt;br /&gt;On the flags tab, Select "Force Encryption=Yes"&lt;br /&gt;Click ok.&lt;br /&gt;Click ok to close the warning message.&lt;br /&gt;&lt;br /&gt;Finally you need to restart the SQL Server service. &lt;br /&gt;&lt;br /&gt;Viola!  Network Encryption is done.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/316898"&gt;MS KB316898&lt;/a&gt; is the reference for this topic.&lt;br /&gt;&lt;br /&gt;For the record, this is a "weak" security measure.  It only does encryption.  It still can be defeated with a man-in-the-middle attack, because SQL doesn't verify the certificates.&lt;br /&gt;&lt;br /&gt;Hth,&lt;br /&gt;Elizabeth Greene&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-4166815862268956286?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/4166815862268956286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=4166815862268956286' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/4166815862268956286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/4166815862268956286'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2009/09/sql-network-transport-level-encryption.html' title='SQL Network (Transport) Level Encryption. (TDS)'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-5028543637511132903</id><published>2009-06-16T06:03:00.000-07:00</published><updated>2009-06-16T06:23:39.649-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='&quot;batch script&quot; &quot;shell script&quot;'/><title type='text'>Datestamps in batch files.  (Unix and Dos)</title><content type='html'>In Linux, naming a file after todays date is pretty easy.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;# Note: These are backticks, not quotes.&lt;br /&gt;# They are on the same key as your tilde ~.&lt;br /&gt;ls &amp;gt; `date %Y-%m-%d.`txt&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;To get the possible formatting options, run the &lt;span style="font-style:italic;"&gt;man date&lt;/span&gt; command.&lt;br /&gt;&lt;br /&gt;In Dos it is pretty easy too, once you know the trick.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;dir &amp;gt; %date:~-4,4%-%date:~-7,2%-%date:~-10,2%.txt&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;An Explanation:&lt;br /&gt;The %date% environment variable contains the current date.  Go ahead, test it.  Pop open a command prompt and run &lt;span style="font-style:italic;"&gt;echo %date%&lt;/span&gt;.  The ":~-4,4" part does the cool thing.  ":~" says "we want a substring".  The "-" says "work from the end of the string backwards.  The "4," says start at the fourth character, and the final "4" says give me four characters.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Cheat sheet!&lt;/span&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt;Date Part&lt;/th&gt;&lt;th&gt;Code&lt;/th&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Day of week (3 letter abbr.)&lt;/td&gt;&lt;td&gt;%date:~0,3%&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Day&lt;/td&gt;&lt;td&gt;%date:~-10,2%&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Month&lt;/td&gt;&lt;td&gt;%date:~-7,2%&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Year (2 digits)&lt;/td&gt;&lt;td&gt;%date:~-2,2%&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Year (4 digits)&lt;/td&gt;&lt;td&gt;%date:~-4,4%&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;HTH,&lt;br /&gt;-Ellie&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-5028543637511132903?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/5028543637511132903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=5028543637511132903' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/5028543637511132903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/5028543637511132903'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2009/06/datestamps-in-batch-files-unix-and-dos.html' title='Datestamps in batch files.  (Unix and Dos)'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-6885656653760359241</id><published>2009-06-02T08:47:00.000-07:00</published><updated>2009-06-02T08:56:13.103-07:00</updated><title type='text'>Goodbye, Adios, Au revoir, Ciao, Sayanora..</title><content type='html'>The company I work for is centralizing all IT operations.  From a business perspective, it makes sense.  The data center and development staff are all in one location, etc.&lt;br /&gt;&lt;br /&gt;Unfortunately I really wasn't up for relocation with the kids being in school, et al.&lt;br /&gt;&lt;br /&gt;So, today I was downsized as part of the IT centralization. :(&lt;br /&gt;&lt;br /&gt;They gave me a nice severance package, and I wish all them the best.  Now I have to find a new gig.  If anyone needs an adept Jane-of-all-trades network engineer, please email me at Elizabeth.a.greene@gmail.com&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Ellie&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-6885656653760359241?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/6885656653760359241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=6885656653760359241' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/6885656653760359241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/6885656653760359241'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2009/06/goodbye-adios-au-revoir-ciao-sayanora.html' title='Goodbye, Adios, Au revoir, Ciao, Sayanora..'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-3573459439647678404</id><published>2009-05-22T13:38:00.000-07:00</published><updated>2009-05-22T14:17:13.784-07:00</updated><title type='text'>Making the AVG batch file into a single-file exe.</title><content type='html'>In my previous post, I made a batch file to automatically install AVG.  Previously I would zip this .bat+.ini+.exe combination and send it to the Users.  In a perfect world, the users open the zip and run the batch file.  In the real world, the users will run the executable instead of the batch file.   Even when it is named NoNotThisFilePlease.exe.  This time I am going to make it user resistant.  I am going to wrap it into a single .exe installer.  &lt;br /&gt;&lt;br /&gt;There are a number of commercial self-extracting installer products out there.  I really like &lt;a href="http://www.gdgsoft.com/pb/register.aspx"&gt;Paquet Builder&lt;/a&gt;.  Unfortunately it is $50.  That is about $40 more than I'm willing to pay.&lt;br /&gt;&lt;br /&gt;To do this for FREE you need the 7-zip installer and "7z Library, SFXs for installers, Plugin for FAR Manager" from the &lt;a href="http://www.7-zip.org/download.html"&gt;7-zip download page&lt;/a&gt;.  Also you may optionally want &lt;a href="http://www.angusj.com/resourcehacker/"&gt;Resource Hacker&lt;/a&gt;.  This lets you change the .EXE icon to something pretty.&lt;br /&gt;&lt;br /&gt;Procedure:&lt;ol&gt;&lt;li&gt;Install 7-zip.&lt;br /&gt;&lt;li&gt;Open the folder with the batch file and files.&lt;br /&gt;&lt;li&gt;Compress the files into archive.7z&lt;ol&gt;&lt;li&gt;Select the require files&lt;br /&gt;&lt;li&gt;right-click, 7-Zip, Add To Archive.&lt;br /&gt;&lt;li&gt;Name the 7-zip file archive.7z.&lt;br /&gt;&lt;li&gt;The avg installer is already well compressed so the best compression method for it is just "store".  It makes decompression fast too.&lt;/ol&gt;&lt;li&gt;Open the 7-zip extras package and copy 7zSD.sfx and config.txt into the same directory as the archive.7z folder.  The config.txt file is in the /installer directory.&lt;br /&gt;&lt;li&gt;Edit config.txt and change it to run your batch file.  Here is my example.&lt;pre&gt;&lt;br /&gt;;!@Install@!UTF-8!&lt;br /&gt;Title="GlobalOptions AVG8 Distributable v1.0"&lt;br /&gt;BeginPrompt="Do you want to install AVG8?"&lt;br /&gt;RunProgram="AVGSetup.Bat"&lt;br /&gt;;!@InstallEnd@!&lt;br /&gt;&lt;/pre&gt;&lt;li&gt;Finally "compile" the self-extracting EXE.  This is actually just concatenating the files together.&lt;ol&gt;&lt;li&gt;Open a command prompt.&lt;br /&gt;&lt;li&gt;Change to the directory with archive.7z, 7zsd.sfx, and config.txt&lt;br /&gt;&lt;li&gt;Run this command.&lt;pre&gt;copy /b 7zSD.sfx + config.txt + archive.7z AvgSetup.exe&lt;/pre&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;br /&gt;That's it.  That command copies the .sfx "stub", the config file, and the archive into a single .EXE file.&lt;br /&gt;&lt;br /&gt;Finally and optionally the .exe needs a pretty icon. :D  For Anti-virus software I am rather fond of this one.  &lt;a href="http://www.iconarchive.com/category/medical/medical-icons-by-klukeart.html"&gt;"Symbol"&lt;/a&gt;.  Note: it is &lt;span style="font-weight:bold;"&gt;not free&lt;/span&gt; for commercial use.&lt;br /&gt;&lt;br /&gt;To change the icon:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Open ResHack.exe.&lt;br /&gt;&lt;li&gt;File-&gt; Open -&gt; open the executable.&lt;br /&gt;&lt;li&gt;Expand the "icon" group and expand Icon 1.&lt;br /&gt;&lt;li&gt;Right-click the icon and select Replace Resource.&lt;br /&gt;&lt;li&gt;Click "Open File with new Icon".&lt;br /&gt;&lt;li&gt;Navigate to your .ico file.&lt;br /&gt;&lt;li&gt;Click Replace.&lt;br /&gt;&lt;li&gt;Save the executable.  &lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;That's it, &lt;br /&gt;&lt;br /&gt;I hope this helps, &lt;br /&gt;&lt;br /&gt;-Ellie&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-3573459439647678404?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/3573459439647678404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=3573459439647678404' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/3573459439647678404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/3573459439647678404'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2009/05/making-avg-batch-file-into-single-file.html' title='Making the AVG batch file into a single-file exe.'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-7300576302064047139</id><published>2009-05-22T13:36:00.000-07:00</published><updated>2009-05-22T13:38:27.787-07:00</updated><title type='text'>One-Click AVG Installer</title><content type='html'>AVG is my current favorite Antivirus product.  It does what I need it and generally stays out of the way.  Unfortunately the version upgrade from 7.5 to 8.0 has no upgrade path for our 160 users that are A.) Remote B.) Not on a domain and C.) not on a VPN.&lt;br /&gt;&lt;br /&gt;Thanks so much Grisoft.  Really, Thanks.&lt;br /&gt;&lt;br /&gt;So anyway I installed the new datacenter software, AVG Admin 8 and got it all setup.  For the users in AD we rolled it out and now we have to figure out how to upgrade all the remote users.&lt;br /&gt;&lt;br /&gt;I went through the AVG wizard to create an installer.  That got me a batch file and a .ini file for the installer.  I edited the batch file and .INI to install it with our preferences.  When finished I ended up with a .bat file that the users can run to install the app.&lt;br /&gt;&lt;br /&gt;AvgSetup.bat&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;@ECHO OFF&lt;br /&gt;echo This application will automatically install AVG 8.0.  &lt;br /&gt;echo Please wait.  This window will automatically close &lt;br /&gt;echo when the installation is complete.&lt;br /&gt;&lt;br /&gt;SET SETUP="%CD%\Setup\avg_ipw_stf_all_85_339a1525.exe"&lt;br /&gt;%SETUP% /SCRIPT_FILE "%CD%\AvgSetup.ini" %1 %2 %3 %4 %5 %6 %7 %8 %9&lt;br /&gt;echo.&lt;br /&gt;echo.&lt;br /&gt;Echo Setup is complete.  If the AVG icon is not visible on your taskbar, then please reboot your PC now.&lt;br /&gt;pause&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;AvgSetup.ini&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;LICNO: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" &lt;br /&gt;RESTART:&lt;br /&gt;KILL_PROCESS_IF_NEEDED:&lt;br /&gt;QUIT_IF_INSTALLED:&lt;br /&gt;NAME: "MyCompany" &lt;br /&gt;COMPANY: "MyCompany" &lt;br /&gt;DCPATH: "avg.example.com:4158" &lt;br /&gt;NOAVGTOOLBAR:&lt;br /&gt;ADD_FEATURE: fea_AVG_HttpScanner&lt;br /&gt;ADD_FEATURE: fea_AVG_SafeSurf&lt;br /&gt;ADD_FEATURE: fea_AVG_SafeSearch&lt;br /&gt;ADD_FEATURE: fea_AVG_Exchange_plugin&lt;br /&gt;ADD_FEATURE: fea_AVG_EMC&lt;br /&gt;ADD_FEATURE: fea_AVG_Office_2000_plugin&lt;br /&gt;ADD_FEATURE: fea_AVG_Cl&lt;br /&gt;NO_WELCOME:&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;That's it.  Now we have a one-click installer for a fully configured AVG application.&lt;br /&gt;&lt;br /&gt;Check out my next post for how to make this a user-resistant install.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-7300576302064047139?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/7300576302064047139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=7300576302064047139' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/7300576302064047139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/7300576302064047139'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2009/05/one-click-avg-installer.html' title='One-Click AVG Installer'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-1078010300159284816</id><published>2009-04-03T10:11:00.000-07:00</published><updated>2009-04-03T10:26:10.109-07:00</updated><title type='text'>Exchange 2007 POP/IMAP between Active Directory sites .. with solution!</title><content type='html'>As a follow up to the previous post, Pop and Imap can work between sites as well.  The referenced paper says they can't, but it is incorrect.&lt;br /&gt;&lt;br /&gt;To enable Imap between a CAS server and Mailbox server in 2 separate AD sites, edit this file&lt;br /&gt;&lt;pre&gt;C:\Program Files\Microsoft\Exchange Server\ClientAccess\PopImap\Microsoft.Exchange.Imap4.exe.config&lt;/pre&gt;&lt;br /&gt;and change this line to &lt;span style="font-weight:bold;"&gt;true&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&amp;lt;add key="AllowCrossSiteSessions" value="false" /&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;POP3 is eerily similar.&lt;br /&gt;&lt;br /&gt;To enable Pop3 between a CAS server and Mailbox server in 2 separate AD sites, edit this file&lt;br /&gt;&lt;pre&gt;C:\Program Files\Microsoft\Exchange Server\ClientAccess\PopIma\Microsoft.Exchange.Pop3.exe.config&lt;/pre&gt;&lt;br /&gt;and change this line to &lt;span style="font-weight:bold;"&gt;true&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&amp;lt;add key="AllowCrossSiteSessions" value="false" /&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note to Microsoft:  A quasi-legible text based configuration file.  Thank you!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-1078010300159284816?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/1078010300159284816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=1078010300159284816' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/1078010300159284816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/1078010300159284816'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2009/04/exchange-2007-popimap-between-active.html' title='Exchange 2007 POP/IMAP between Active Directory sites .. with solution!'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-2122013216285017952</id><published>2009-04-02T15:30:00.000-07:00</published><updated>2009-04-03T10:11:42.314-07:00</updated><title type='text'>Exchange 2007 OWA between Active Directory sites .. with solution!</title><content type='html'>Exchange.&lt;br /&gt;Owa.&lt;br /&gt;2 separate sites.&lt;br /&gt;2 separate internet connections.&lt;br /&gt;Site A has the mailboxes.&lt;br /&gt;Site A's internet connection goes down.&lt;br /&gt;Site B's internet connection is fine, and the ds-3 between the sites is fine.&lt;br /&gt;&lt;br /&gt;I try to connect to OWA in Site B and I get...&lt;br /&gt;&lt;br /&gt;"For best performance, connect to https://SiteA.mydomain.com/owa"&lt;br /&gt;&lt;br /&gt;YOU HAVE GOT TO BE FREAKING KIDDING ME! ARGH!&lt;br /&gt;&lt;br /&gt;Ok.  A google search and check the Exchange Blog comes up with this link.&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/bb310763(printer).aspx"&gt;Understanding Proxying and Redirection&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;According to this paper a couple of things are at work.  First off, Exchange is trying "Redirection" to send me to the OWA host in my active directory site.  You can disable redirection by removing the "External Url" from the OWA service in Exchange manager.&lt;br /&gt;&lt;br /&gt;Click webmail.  Username/password.  Does it work?&lt;br /&gt;&lt;br /&gt;... Nope, same results.&lt;br /&gt;&lt;br /&gt;(Wait for Active directory replication....)&lt;br /&gt;&lt;br /&gt;Testing again.  Click webmail.  Username/password.  Does it work?&lt;br /&gt;&lt;br /&gt;... Nope.  New Results.  A great two line error message that tells the user to tell their Exchange administrator that there is no available OWA server in the same site as the mailbox.  Also, an event is logged in the event viewer.&lt;br /&gt;&lt;br /&gt;(OMG! A descriptive error and an event gets logged?!  Obviously this part of the code was outsourced. ;) )&lt;br /&gt;&lt;br /&gt;Anyway, back to the paper again.  Exchange Owa won't access a mailbox in another AD site.  It just won't do it and there is no convincing it otherwise.  &lt;br /&gt;&lt;br /&gt;The options are:&lt;br /&gt;1.  Setup an ISA server to intelligently load balance Owa access.  (no.)&lt;br /&gt;2.  Move the Servers into the same AD site.  (no.)&lt;br /&gt;3.  Enable "Proxying".  (this sounds promising.)&lt;br /&gt;&lt;br /&gt;OWA Proxying takes the request from SiteB's owa server and relays it internally to SiteA's owa server.  That is great if SiteA's internet connection goes down, but does jack-diddly-squat for our availability if SiteA's OWA server goes kaput.&lt;br /&gt;&lt;br /&gt;Some redundancy is better than none, right?  Let's configure proxying.&lt;br /&gt;&lt;br /&gt;Here are the Gotchas.&lt;br /&gt;1.  Redirection has to be disabled.  (Remove those ExternalURL's)&lt;br /&gt;2.  Communication is via https.  (This is okay, I put the internal names on our UCC ssl cert.)&lt;br /&gt;3.  Authentication for the OWA sites has to be set to Windows integrated.&lt;br /&gt;&lt;br /&gt;WTH?!  The users just got used to pretty forms based authentication.  You go to all the trouble of building a proxy subsystem and you can't relay the credentials?!  Another show stopper.  Grr.  &lt;br /&gt;&lt;br /&gt;So my options are to setup 2 more owa servers with integrated authentication.  Get 2 more names on our ssl cert, and set it up.  That's great and all, but exchange licenses don't grow on trees.&lt;br /&gt;&lt;br /&gt;Solution!&lt;br /&gt;I played with it for a while and came up with this solution.  It is functional, but not really elegant in my opinion.&lt;br /&gt;&lt;br /&gt;In both sites, I opened IIS and created a new website called OwaProxy.  I set the site to use the same ssl certificate as the "real" OWA sites, but bind to port 444 instead of 443.  In the powershell console, I created a new \owa directory with Integrated Authentication. &lt;br /&gt;&lt;br /&gt;(here is the command)&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;New-OwaVirtualDirectory -Name "OwaProxy" -ExternalAuthenticationMethods WindowsIntegrated -ExternalUrl $null -Internalurl https://sitea.mydomain.local:444/owa -Owaversion exchange2007 -websitename "OwaProxy"  &lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;After the OWA Websites/virtual directories are created in both sites, there are two more gotchas.  First, it still didn't work until I opened the Exchange Management console and changed the authentication type from forms to WindowsIntegrated.  This is a bug, Imho, as we explicitly set the authenticationmethod to integrated in powershell.  It gets configured properly in IIS too, but here you have to change it with the GUI.&lt;br /&gt;&lt;br /&gt;The second gotcha is an easy one.  Any of this cross-site stuff is dependent on Active Directory, so you have to wait for (or force) ad replication before your changes take effect.&lt;br /&gt;&lt;br /&gt;That solved it.  I could now access my 1GB SiteA mailbox from SiteA or SiteB.  We have a 45mbps ds-3 between sites, and there was a 2-3 second pause after logging in to SiteB's owa server.  I can live with that.&lt;br /&gt;&lt;br /&gt;Please leave a comment if this helps.&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Ellie&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-2122013216285017952?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/2122013216285017952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=2122013216285017952' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/2122013216285017952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/2122013216285017952'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2009/04/exchange-2007-owa-between-active.html' title='Exchange 2007 OWA between Active Directory sites .. with solution!'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-9057508683586948415</id><published>2009-03-30T08:37:00.000-07:00</published><updated>2009-05-20T12:37:38.129-07:00</updated><title type='text'>csvde to excel  Human readable LastLogon or LastLogonTimestamp</title><content type='html'>I was given the task of making a human legible report of Users, OUs, and Last Login Times.  Easy enough right?  I logged in to one of the servers as an admin and ran&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;F:\&gt;csvde -r "(objectClass=user)" -f output.csv &lt;br /&gt;-l cn,givenName,sn,n,ou,lastLogon&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;* note.. all that is on one line.  I wrapped it because blogger was cutting it off.&lt;br /&gt;&lt;br /&gt;That worked great, but excel choked on the dates.  It turns out this is because the dates are not "normal" timestamp dates.  "Normal" timestamps are based on the number of seconds since midnight on 1/1/1970.  The timestamps in Active Directory in UTC format, a 64 bit number based on the number of nanosecond since 1/1/1601 divided by 100!  For even more complexity, Excel's dates are based on the number of days since 1/1/1900.  Arrgh.&lt;br /&gt;&lt;br /&gt;As theoretical knowledge goes, that is all fine and good.. but how do we use it in excel?&lt;br /&gt;&lt;br /&gt;The formula to convert from Active Directory LastLogon or LastLogonTimestamp is:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;=IF(C2&gt;0,C2/(8.64*10^11) - 109205,"")&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Explanation:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; C2 is the cell that contains the Timestamp.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The If() statement hides the value if the user has not logged in.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;(8.64*10^11) is the number of nanoseconds in a day divided by 100.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;109205 is the number of days, including leap days, between 1601 and 1900. (Remember, 1900 is when excel dates "start")&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;That's it.  Paste in your formula and format it as a date, or date/time.  The times returned are in GMT.  All of the other solutions I saw in my google searches pointed to a vbScript solution.  Please leave a comment if this helps you.&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Ellie&lt;br /&gt;&lt;br /&gt;P.s. If you want it in Central US time (GMT-6), subtract 0.25 (That is 6 hours divided by 24 hours in a day).  For Eastern time (GMT-5), subtract 0.208333333 .. (5/24).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-9057508683586948415?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/9057508683586948415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=9057508683586948415' title='33 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/9057508683586948415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/9057508683586948415'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2009/03/csvde-to-excel-human-readable-lastlogon.html' title='csvde to excel  Human readable LastLogon or LastLogonTimestamp'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>33</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-7719324186712852521</id><published>2009-03-17T11:32:00.000-07:00</published><updated>2009-03-17T11:36:13.318-07:00</updated><title type='text'>Rpc over http and UCC SSL gotchas</title><content type='html'>Here is a quick note for those using UCC certificates for RPC over Http.  The name of your rpc/http server has to be the common name of your ssl certificate, an alternative name will not work.  Between this bug, the IPv6 bug, and the complete lack of any logging facilities, I am starting to get the feeling that this service was written by an intern. (and not a good one)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-7719324186712852521?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/7719324186712852521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=7719324186712852521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/7719324186712852521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/7719324186712852521'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2009/03/rpc-over-http-and-ucc-ssl-gotchas.html' title='Rpc over http and UCC SSL gotchas'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-8354367431868203243</id><published>2009-03-11T09:31:00.000-07:00</published><updated>2009-03-11T09:51:07.709-07:00</updated><title type='text'>SOLVED: Blackberry Internet Service (BIS duplicate messages from Exchange</title><content type='html'>A number of my users have been reporting duplicate messages on their Blackberry handhelds when we reconfigured them to use our shiny new Exchange 2007 Servers.  After some digging, a message was being re-delivered to the handheld every time the message was A.) Marked Read, B.) Replied to, C.) Found in a search.  This occurs only with Blackberry Internet Service (BIS) users connecting to the Exchange server with IMAP.&lt;br /&gt;&lt;br /&gt;As it turns out, Exchange is changing the IMAP message ID every time one of the above actions occurs*.  This causes RIM to see the message as new and re-transmit it to the handheld.&lt;br /&gt;&lt;br /&gt;The options to fix it are..&lt;br /&gt;&lt;br /&gt;Switch BIS to POP3 instead of IMAP.  But then deleted items sync won't work.&lt;br /&gt;Switch to Blackberry Enterprise Server. $5k in software fees, more depending on your user count.&lt;br /&gt;Switch BIS to OWA..&lt;br /&gt;&lt;br /&gt;That last option is the most promising.  Unfortunately, with Exchange 2007 and forms based OWA authentication (the default), the normal url https://example.com/exchange doesn't work.  Neither does https://example.com/owa.&lt;br /&gt;&lt;br /&gt;What does work... the magic bullet for BIS+OWA on Exchange 2007 is..&lt;br /&gt;http://example.com/exchange/you@example.com&lt;br /&gt;&lt;br /&gt;I have not found this tidbit on any forums or documentation, and I really hope it helps someone.&lt;br /&gt;&lt;br /&gt;Good Luck,&lt;br /&gt;Ellie&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* Constructive criticism for Microsoft.  &lt;rant&gt; You stupid cod-flogging idiots.  Why in the name of potato would you do such a thing?!  Did you even _look_ at the RFC?  This is what IMAP flags are designed to do.  Please, please fix this, print the RFC and use it to flagellate the committee that designed this AND the committee that approved it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-8354367431868203243?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/8354367431868203243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=8354367431868203243' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/8354367431868203243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/8354367431868203243'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2009/03/solved-blackberry-internet-service-bis.html' title='SOLVED: Blackberry Internet Service (BIS duplicate messages from Exchange'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-3203471287848272581</id><published>2009-03-06T13:08:00.000-08:00</published><updated>2009-03-06T13:14:48.580-08:00</updated><title type='text'>Upgrating old Ubuntu Lts server's ssh</title><content type='html'>A minor Ubuntu annoyance today..  I have an old Ubuntu LTS server that tripped a nessus scan because the openssh version was too old.&lt;br /&gt;&lt;br /&gt;I did an apt-get upgrade, but the ssh packages wouldn't upgrade, failing with this error...&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;root@bna-fw1:~# apt-get upgrade&lt;br /&gt;Reading package lists... Done&lt;br /&gt;Building dependency tree... Done&lt;br /&gt;The following packages have been kept back:&lt;br /&gt;  linux-image-server openssh-client openssh-server&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I checked in the /etc/apt directories looking for some reason why it was held back to no avail..  Then I checked dpkg -l openssh-server but the package wasn't marked as held either.  Then I gave up and googled it.  As it turns out, upgrading ssh requires you to install the oops-sorry-we-made-ssh-unsecure-won't-happen-again package openssh-blacklist package and apt-get "upgrade" can't install a new package.  This seems like an open manhole waiting to swallow any sysadmin that blindly trusts apt-get upgrade for updates..&lt;br /&gt;&lt;br /&gt;The command to fix it and upgrade openssh-server/client is...&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;apt-get install openssh-blacklist&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-ellie&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-3203471287848272581?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/3203471287848272581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=3203471287848272581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/3203471287848272581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/3203471287848272581'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2009/03/upgrating-old-ubuntu-lts-servers-ssh.html' title='Upgrating old Ubuntu Lts server&apos;s ssh'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-6989671033812306873</id><published>2009-01-13T10:28:00.000-08:00</published><updated>2009-03-17T11:32:49.581-07:00</updated><title type='text'>Updated: Exchange 2007 Splitting OWA and Autodiscover onto two different websites.</title><content type='html'>This post explains how I split Exchange Web services and Autodiscover into two separate websites so that I could use two separate SSL certificates ($30) instead of a $300 UCC certificate.&lt;br /&gt;&lt;br /&gt;We have a wildcard certificate (*.foo.com) for our primary domain.  Since we have a metric crapton of servers it saves us loads of money.  &lt;br /&gt;&lt;br /&gt;The exact minutiae of getting Outlook Anywhere working will be another post.  Suffice it to say that A.) It has a showstopper IPV4/IPV6 bug out-of-the-box and B.) Wildcard certificates do not work with Outlook Anywhere. &lt;br /&gt;&lt;br /&gt;Happy to have that particular learning experience behind me and $15 later we had a GoDaddy certificate for newmail.foo.com.  Yeah!&lt;br /&gt;&lt;br /&gt;Now that was working it's time to setup the Autodiscover service.  I set a SRV record for autodiscover to point to newmail.foo.com, but the users were getting a pop-up asking for permission to connect to it.  I am an anti-popup person.  So I setup autodiscover.foo.com in DNS to point to the OWA webserver.  Did it work? &lt;br /&gt;&lt;br /&gt;No.  &lt;br /&gt;&lt;br /&gt;Why?&lt;br /&gt;&lt;br /&gt;Another SSL problem with the certificate names.  "autodiscover.foo.com" != "newmail.foo.com"&lt;br /&gt;&lt;br /&gt;ARGH!&lt;br /&gt;&lt;br /&gt;The Microsoft solution is to use a certificate with multiple "Subject Alternative Names", also known as a Unified Communications Certificate.  They cost about $300.  Personally I don't like spending that for a certificate.  That's why we got a WILDCARD certificate you asshats!&lt;br /&gt;&lt;br /&gt;After a healthy dose of expletives, I set out to move the autodiscover "application" to a separate website using our existing wildcard certificate.&lt;br /&gt;&lt;br /&gt;Here is the part where that "doing it the hard way" feeling comes in.  I couldn't find any commands or options to setup the /Autodiscover application under the new website.&lt;br /&gt;&lt;br /&gt;After about 10 minutes of trying to figure out how to copy the settings over, I ...&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Set another IP for the new site.&lt;br /&gt;&lt;li&gt;Popped a hole in Mr. Firewall for http and https.&lt;br /&gt;&lt;li&gt;Opened IIS.&lt;br /&gt;&lt;li&gt;Created the new site.&lt;br /&gt;&lt;li&gt;Edited the bindings to use the right ssl certificate.&lt;br /&gt;&lt;li&gt;&lt;del&gt;Stopped IIS.&lt;/del&gt;&lt;br /&gt;&lt;li&gt;&lt;del&gt;Opened c:\windows\system32\inetsrv\config\applicationhost.cfg in notepad.&lt;/del&gt;&lt;br /&gt;&lt;li&gt;&lt;del&gt;Copied &amp;lt;sites&amp;gt;&amp;lt;Application Path&amp;gt; information from the default site to the autodiscover site.&lt;/del&gt; &lt;font color="RED"&gt;See update note below.&lt;/font&gt;&lt;br /&gt;&lt;li&gt;&lt;del&gt;Copied the &amp;lt;locations&amp;gt; information from the default site to the autodiscover site.&lt;/del&gt;&lt;br /&gt;&lt;li&gt;Whispered a prayer of penance to the IT gods.&lt;br /&gt;&lt;li&gt;Started IIS.&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="RED"&gt; Update 2009-03-17: I WAS doing it the hard way!  There is a powershell command to create a new autodiscover virtual directory.  It is &lt;span style="font-style:italic;"&gt;new-autodiscovervirtualdirectory&lt;/span&gt;.&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;And wow, It worked!  Was I ever surprised?!&lt;br /&gt;&lt;br /&gt;Ttfn,&lt;br /&gt;-ellie&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-6989671033812306873?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/6989671033812306873/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=6989671033812306873' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/6989671033812306873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/6989671033812306873'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2009/01/exchange-2007-splitting-owa-and.html' title='Updated: Exchange 2007 Splitting OWA and Autodiscover onto two different websites.'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-1064172578733471741</id><published>2009-01-08T13:54:00.000-08:00</published><updated>2009-01-08T14:10:41.481-08:00</updated><title type='text'>Exchange SCR and ESE function Error</title><content type='html'>I'm running into some errors setting up SCR between our sites.  I'll edit this post with the solution when I get it sorted out.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[PS] C:\Exchange&gt;update-StorageGroupCopy -Identity Orl-exg1\Sg1 -standbymachine&lt;br /&gt;lor-exg1&lt;br /&gt;WARNING: Replication for storage group 'ORL-EXG1\SG1' is still suspended. If&lt;br /&gt;needed, you can use the Resume-StorageGroupCopy cmdlet in the Exchange&lt;br /&gt;Management Shell to resume replication.&lt;br /&gt;Update-StorageGroupCopy : Seeding failed : Database seeding error: Error return&lt;br /&gt;ed from an ESE function call (0xc7ff1004), error code (0x0).&lt;br /&gt;At line:1 char:24&lt;br /&gt;+ update-StorageGroupCopy  &lt;&lt;&lt;&lt; -Identity Orl-exg1\Sg1 -standbymachine lor-exg1&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;It looks like it is something with the Windows firewall.  Turning it off makes it work.  Feature.  Now to figure out what application needs to be permitted through the fw.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-1064172578733471741?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/1064172578733471741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=1064172578733471741' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/1064172578733471741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/1064172578733471741'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2009/01/exchange-scr-and-ese-function-error.html' title='Exchange SCR and ESE function Error'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-9140384483351253908</id><published>2009-01-06T07:05:00.000-08:00</published><updated>2009-01-06T07:24:47.382-08:00</updated><title type='text'>PPTP Vpn through a Linux IpTables/Netfilter firewall</title><content type='html'>I spent some time configuring a pptp vpn for one of our offices yesterday, but it kept failing to connect during testing.  Each failure generated these errors in the firewall (the one I was Vpn-ing too) log.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;pptpd[9078]: GRE: Bad checksum from pppd.&lt;br /&gt;pptpd[9078]: CTRL: Received PPTP Control Message (type: 15)&lt;br /&gt;pptpd[9078]: CTRL: Got a SET LINK INFO packet with standard ACCMs&lt;br /&gt;pptpd[9078]: GRE: read(fd=7,buffer=80505a0,len=8260)&lt;br /&gt; from network failed: status = -1 error = Protocol not available&lt;br /&gt;pptpd[9078]: CTRL: GRE read or PTY write failed (gre,pty)=(7,6)&lt;br /&gt;&lt;/pre&gt;As my comp.sci instructor would say, "Bad Times".&lt;br /&gt;&lt;br /&gt;The vpn connection worked from a direct-internet-connected host, so logically the VPN setup was probably right.  Here in the office I am behind a Linux IpTables firewall, and I deduced that it was probably the issue.  Nothing was set to block the GRE protocol though, so I was a little puzzled.&lt;br /&gt;&lt;br /&gt;I found &lt;a href="http://tldp.org/HOWTO/VPN-Masquerade-HOWTO-3.html"&gt;this TLDP post&lt;/a&gt; (Do not bother reading it...) on how to make pptp work through iptables.  Ah-ha! It was the firewall.  Then I realized that documentation was &lt;span style="font-weight: bold;"&gt;ancient&lt;/span&gt;.  By Ancient I mean it refers to the 2.0 and "new" 2.2 kernel.  The current Linux kernel is &gt; 2.6!  eep!  It was probably translated from some obscure dead language it is so old.&lt;br /&gt;&lt;br /&gt;Anyway, the solution is much simpler...  Iptables has a module that allows pptp to pass through NAT.  My tale of woe happily resolved with this command.&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;modprobe ip_nat_pptp&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;One more useful tidbit.  You can see a list of available IpTables modules with this command..&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;locate netfilter | grep .ko&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Good Luck,&lt;br /&gt;-Ellie&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-9140384483351253908?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/9140384483351253908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=9140384483351253908' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/9140384483351253908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/9140384483351253908'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2009/01/pptp-vpn-through-linux.html' title='PPTP Vpn through a Linux IpTables/Netfilter firewall'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-1635050639579864397</id><published>2008-12-31T16:17:00.000-08:00</published><updated>2008-12-31T16:34:22.904-08:00</updated><title type='text'>Installing Exchange 2007 on a single Server 2008 in an existing Windows 2003 domain</title><content type='html'>We are working on an Exchange migration.&lt;br /&gt;&lt;br /&gt;By we, I mean I.  :(&lt;br /&gt;&lt;br /&gt;The scenario is everything on one server, with replication to our remote DR site.  The users are 95% remote-via-internet users using RPC over HTTP.  We are consolidating from a hegemony of SBS servers, Postfix, and outsourced providers.&lt;br /&gt;&lt;br /&gt;Lessons learned in training.&lt;br /&gt;Prerequisites are Powershell and IIS.&lt;br /&gt;There are no send connectors by default.&lt;br /&gt;Run setup /prepareAD&lt;br /&gt;Requires x64 architecture.&lt;br /&gt;&lt;br /&gt;Lessons learned by doing.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;"Actual" Prerequisites...&lt;/span&gt;&lt;br /&gt;Roles .. IIS Defaults PLUS&lt;br /&gt; - IIS Metabase compatibility&lt;br /&gt; - IIs 6 Management Console&lt;br /&gt; - IIS 7 Dynamic Content Compression&lt;br /&gt; - IIS 7 Basic Authentication&lt;br /&gt; - IIS 7 Windows Authentication&lt;br /&gt; - IIS 7 Digest Authentication&lt;br /&gt;Features..&lt;br /&gt; PowerShell&lt;br /&gt; Active Directory Management Tools&lt;br /&gt; RPC/HTTP Proxy&lt;br /&gt;&lt;br /&gt;Setup /preparead doesn't actually work.  Just run setup.&lt;br /&gt;Right-click on setup and select Run as Administrator &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;"Things that would have been relevant to me yesterday."&lt;/span&gt;&lt;br /&gt;A wildcard certificate (*.foo.com) will &lt;span style="font-weight: bold;"&gt;NOT&lt;/span&gt; work for Outlook Anywhere.&lt;br /&gt;A multi-host "UCC" certificate is $200-$300.&lt;br /&gt;&lt;br /&gt;The MS Exchange System Attendant is not set to Auto-start.&lt;br /&gt;...RPC/HTTP requires the system attendant.&lt;br /&gt;&lt;br /&gt;RPC/HTTP only listens on the IPV6 interface by default.&lt;br /&gt;...Comment out the [:::] localhost line in the hosts file to fix it.&lt;br /&gt;... ... Unchecking the IPV6 protocol box does NOT fix it.&lt;br /&gt;&lt;br /&gt;Autodiscover is good!&lt;br /&gt;... Autodiscover.foo.com should be one of the names on your UCC certificate&lt;br /&gt;&lt;br /&gt;Exmerge is no more!&lt;br /&gt;... and export-mailbox only works on the 32 bit version of the exchange tools, ergo it must be installed on a different box.&lt;br /&gt;&lt;br /&gt;http://www.testexchangeconnectivity.com &lt;br /&gt;... Web-based tests for exchange connectivity.  Beta by Microsoft&lt;br /&gt;... ... Use the back button and you get an ugly exception error.&lt;br /&gt;... ... ... Dark green on blue captcha is a bitch for color-blind people.&lt;br /&gt;&lt;br /&gt;I now have one mailbox up.  Happy happy.   :D&lt;br /&gt;&lt;br /&gt;Only 650 to go.  :(&lt;br /&gt;&lt;br /&gt;-ellie&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-1635050639579864397?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/1635050639579864397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=1635050639579864397' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/1635050639579864397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/1635050639579864397'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2008/12/installing-exchange-2007-on-single.html' title='Installing Exchange 2007 on a single Server 2008 in an existing Windows 2003 domain'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-8045356951399651351</id><published>2008-11-20T09:37:00.000-08:00</published><updated>2008-11-20T09:40:29.793-08:00</updated><title type='text'>Removing drives from a dead Windows Cluster</title><content type='html'>For reasons too painful to explain, one of my Windows SQL clusters failed.  Badly.  I was able to remove the system from the cluster and take over the drives in the SCSI enclosure with this command.&lt;br /&gt;&lt;br /&gt;"cluster node &lt;servername&gt; /forcecleanup"&lt;br /&gt;&lt;br /&gt;I spool the backups to a local disk before shipping them to another server, and that command got the backups where I could copy them off before rebuilding the cluster.  Woot....&lt;br /&gt;&lt;br /&gt;-ellie&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-8045356951399651351?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/8045356951399651351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=8045356951399651351' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/8045356951399651351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/8045356951399651351'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2008/11/removing-drives-from-dead-windows.html' title='Removing drives from a dead Windows Cluster'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-4074854792896834669</id><published>2008-11-19T12:59:00.000-08:00</published><updated>2008-11-19T13:16:57.859-08:00</updated><title type='text'>ActivePerl - The specified CGI application misbehaved by not returning a complete set of HTTP headers.</title><content type='html'>Today a friend called with a problem.  He move this ASP/Perl website to a new server and now it didn't work.&lt;br /&gt;&lt;br /&gt;&lt;digression&gt; Yes, that's right.. Perl AND Asp.  Any theories about the emotional stability of the designer should be thought quietly to oneself.  lol..  &lt;/digression&gt;&lt;br /&gt;&lt;br /&gt;Loading the process.pl page gave this friendly error message.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Premature end of script headers:&lt;br /&gt;Internal Server Error: 500 internal server error&lt;br /&gt;The specified CGI application misbehaved by not returning a complete set of HTTP headers. &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;My first thought was the app was throwing some error message back, causing IIS to choke.  The problem was that it didn't give us a useful (actionable) error message.&lt;br /&gt;&lt;br /&gt;Looking at the program's code, it was writing out to a text file and didn't have permissions to write.  We fixed that, but it still failed with the same error.&lt;br /&gt;&lt;br /&gt;I looked in the (9,000 line) include.pl file trying to see which modules it was loading.   That probably would have worked except the code caused me to briefly lose consciousness.   I hate it when that happens.&lt;br /&gt;&lt;br /&gt;Google saved me.  One of the modules in CGI:: has the ability to return fatal errors to the browser.  Here is the magic return-a-useful error incantation.&lt;br /&gt;&lt;pre&gt;use CGI::Carp qw(fatalsToBrowser);&lt;/pre&gt;&lt;br /&gt;As it turns out, the application wanted the Mail::Sendmail module.  We installed it and viola, the site worked.  Time for a diet coke.  Life is good.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-4074854792896834669?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/4074854792896834669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=4074854792896834669' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/4074854792896834669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/4074854792896834669'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2008/11/activeperl-specified-cgi-application.html' title='ActivePerl - The specified CGI application misbehaved by not returning a complete set of HTTP headers.'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-6555679591413137070</id><published>2008-10-03T15:24:00.001-07:00</published><updated>2008-10-03T15:26:15.786-07:00</updated><title type='text'>Great Plains Integration Manager SP4 Bug</title><content type='html'>It looks like a bug creeped into the SQL optimized SOP Integration with Integration Manager service pack 4.  After the service pack is applied all the line items on our SOP invoices have a 0 (zero) fulfilled quantity.&lt;br /&gt;&lt;br /&gt;Argh, Another ticket.&lt;br /&gt;&lt;br /&gt;-ellie&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-6555679591413137070?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/6555679591413137070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=6555679591413137070' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/6555679591413137070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/6555679591413137070'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2008/10/great-plains-integration-manager-sp4.html' title='Great Plains Integration Manager SP4 Bug'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-6189022550326939099</id><published>2008-09-22T19:28:00.000-07:00</published><updated>2008-09-22T20:07:21.390-07:00</updated><title type='text'>SQL Injection?  No, I don't like needles, thanks.</title><content type='html'>Okay, so I like to read a lot.  Like.. a lot.  So I was reading &lt;a href="http://www.blogger.com/www.ngssoftware.com/papers/advanced_sql_injection.pdf"&gt;Advanced SQL Injection In SQL Server Applications&lt;/a&gt; about a week after I read &lt;a href="http://www.amazon.com/Google-Hacks-Industrial-Strength-Tips-Tools/dp/0596004478"&gt;Google Hacks&lt;/a&gt;.  The little lightbulb went off.  Could it really be that easy?  Could it?&lt;br /&gt;&lt;br /&gt;In less time than it took to write this post, google (inurl:select inurl:where inurl:from) gave me 460&lt;span style="font-weight: bold;"&gt; pages&lt;/span&gt; of results.   About 20% or so look vulnerable to injection attack.  A slightly modified query gives 496 matches for unprotected, non-passworded, wide open hey-look-it-is-Christmas phpMyAdmin sites.&lt;br /&gt;&lt;br /&gt;O&lt;br /&gt;M&lt;br /&gt;G&lt;br /&gt;&lt;br /&gt;I had to get that out of my system.  I'm better now.&lt;br /&gt;&lt;br /&gt;-Ellie&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-6189022550326939099?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/6189022550326939099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=6189022550326939099' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/6189022550326939099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/6189022550326939099'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2008/09/sql-injection-no-i-dont-like-needles.html' title='SQL Injection?  No, I don&apos;t like needles, thanks.'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-3402213623920337317</id><published>2008-08-20T16:34:00.000-07:00</published><updated>2008-08-20T16:51:20.704-07:00</updated><title type='text'>Funambol</title><content type='html'>A little more than a year ago, I wrote about ScheduleWorld, a free and open source place to sync Contacts and Calendars with a wireless device.  The technology worked, but the setup was painful.&lt;br /&gt;&lt;br /&gt;Fast forward to today.  Another open source company, Funambol, has stepped up to the plate, pointed to center field, and driven the ball out of the park.  I was able to setup a FREE account on &lt;a href="http://my.funambol.com/"&gt;my.funambol.com&lt;/a&gt; and sync my Sprint PocketPC in under 10 minutes.  If all you wanted to do was backup your contacts and calendar, you'd be done.  ...And it will push-sync your email too!  That's right.. all the parts of a blackberry enterprise server that you use, compatible with a multitude of handsets, for free.  And it you don't trust Funambol with your data, they'll give you the server software.  For free.&lt;br /&gt;&lt;br /&gt;But wait, there is more.&lt;br /&gt;&lt;br /&gt;A "normal" user would pop in the Outlook plugin, enter the funambol username and password and be done. &lt;br /&gt;&lt;br /&gt;As a "not-normal" linux person, I used SyncEvolution (free, open source, not made by funambol).  It wasn't terribly difficult, but the config files would likely scare off any novice users.  It let me push my contacts/calendar from Evolution.  &lt;a href="http://chinnathambi.com/2008/07/22/blackberry-sync-with-evolution-on-linux-using-funambol-step-by-step-instructions/"&gt;These&lt;/a&gt; instructions were really helpful, with one correction and one addendum.  The "stable" and "main" in the apt repository line are lowercase and case sensitive.  Also, step 6 didn't apply to me as I used the default calendar, note, and address book names.&lt;br /&gt;&lt;br /&gt;But wait, there is more.&lt;br /&gt;&lt;br /&gt;I flipped the phone's funambol client to scheduleworld, pulled those contacts down, flipped it back to funambol, and uploaded them.&lt;br /&gt;&lt;br /&gt;The moment of truth..&lt;br /&gt;&lt;br /&gt;It worked.&lt;br /&gt;&lt;br /&gt;I now have all my contacts from my original blackberry, the treo, evolution, Outlook on my old Pc, all on my phone! &lt;br /&gt;&lt;br /&gt;Thank you Funambol.  the portal site is awesome...  It is fast, responsive, pretty, and feature rich.  The outlook, windows mobile, and blackberry plugin clients work great.&lt;br /&gt;&lt;br /&gt;Thank you Funambol, and thank you open source.&lt;br /&gt;&lt;br /&gt;-ellie&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-3402213623920337317?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/3402213623920337317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=3402213623920337317' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/3402213623920337317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/3402213623920337317'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2008/08/funambol.html' title='Funambol'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-280806666393340763</id><published>2008-07-16T20:01:00.000-07:00</published><updated>2008-07-16T20:15:29.321-07:00</updated><title type='text'>Exposing the Dealer Text box on Pokerstars.</title><content type='html'>There are several threads floating around various forums from people trying to build poker bots with varying degrees of success.  Inevitably they get stuck trying to get input from the poker software.  The dealer boxes have all of the information in an easily regular-expression-ed pattern, but the control won't give up the text.  Some have turned to OCR, and that works ok, but there has to be a better way.  &lt;br /&gt;&lt;br /&gt;Pokerstars is my particular favorite, so they get to be the guinea pig.  I wrote the Support department, and they said they didn't have any APIs.  They also pointed me quite firmly to the the Terms of Service which specifically permits data collection and specifically forbids the use of auto-playing bots.&lt;br /&gt;&lt;br /&gt;So now, on to the puzzle.&lt;br /&gt;&lt;br /&gt;First, the easy approach.  Fire up WinSpy++ or &lt;a href="http://www.windows-spy.com"&gt;Winspector&lt;/a&gt; and browse around the Pokerstars window.  The Textbox of interest has a funny class name, AFX:4200:something.  That's about it.  When we watch the messages in and out of the window there are just a bunch of WM_PAINT messages.  The application doesn't leak a lot of information on this approach.&lt;br /&gt;&lt;br /&gt;Interesting.  All that window does is WM_PAINT, redrawing the window.  That means it has to be a graphical window, a bitmap of text, that just _looks_ like a control.  Very Very sneaky Mr. Stars, very sneaky.&lt;br /&gt;&lt;br /&gt;Time for another Tool, PEView.  PeView decodes the PE format of the binary, and reveals the libraries and Functions the application is importing.  Scanning the list, it looks like pretty standard stuff.  GDI32.dll, the kernel, User32... some others.  Looking through the list, we only care about functions with "text" in the name.  These are in the DLLs GDI32 and User32.&lt;br /&gt;&lt;br /&gt;Now if only there was a way to override and trap every call to those libraries and dig around for our text.  Following the aforementioned example, we'd want that to be a free tool, and available within the first page of Google results. ;)  Enter &lt;a href="http://jacquelin.potier.free.fr/winapioverride32/"&gt;WinAPIOverride&lt;/a&gt;  Running the inspector we attach to Pokerstars and monitor the calls for GDI, the graphics library.  In there we can see the application creating Display components, bitmaps, and generating those paint messages, but no Dealer Text.  Reloading and monitoring the User functions is much more interesting.  Ah-ha! There they are big as day.  The Pokerstars dealer messages are all created using the DrawText function.  Minimized, maximized, they are all there.&lt;br /&gt;&lt;br /&gt;So that is how Pokerstars does it, they create a bitmap of what the textbox looks like off screen, and then show the bitmap.  To get it out, all you have to do is write an API hook  for the USER32 dll and IPC those messages over to your application.  For a simple hook, Take a look at this CodeProject article on &lt;a href="http://www.codeproject.com/KB/system/hooksys.aspx"&gt;dead simple API&lt;/a&gt; hooking.    Looking at the source, you would only have to change about 7 lines (6 for the functions and 1 to make it hook Pokerstars.exe) in it to expose all of the Pokerstars text where any application can reach it.  Magic.  ;)  &lt;br /&gt;&lt;br /&gt;I need a copy of Visual Studio to I finish this, but the hard part is done.  :(&lt;br /&gt;&lt;br /&gt;Thanks for a fun Puzzle.&lt;br /&gt;&lt;br /&gt;Elizabeth Greene&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-280806666393340763?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/280806666393340763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=280806666393340763' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/280806666393340763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/280806666393340763'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2008/07/exposing-dealer-text-box-on-pokerstars.html' title='Exposing the Dealer Text box on Pokerstars.'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4547874311899669660.post-2020347828272246074</id><published>2008-07-15T08:46:00.000-07:00</published><updated>2008-07-15T09:16:15.034-07:00</updated><title type='text'>Installing DPPI EZ-GP Smartlist Accelerator on a Terminal Server</title><content type='html'>Data Presentation Products (DPPI) makes this great product called &lt;a href="http://www.blogger.com/www.datapresentation.com/products/EZ-GP.cfm"&gt;EZ-GP Smartlist Accelerator&lt;/a&gt; for Microsoft Dynamics Great Plains.  It makes exporting Smartlists from GP an order of magnitude faster, and it intelligently formats them for printing too.  Unfortunately, it doesn't work out of the box on a terminal server.  Here is how to make it work.&lt;br /&gt;&lt;br /&gt;Note: The software requires GP to load a chunk file, so everyone does have to close the GP application briefly.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Login to the terminal server as a server admin&lt;/li&gt;&lt;li&gt;Run &lt;span style="font-family: courier new;"&gt;change user /install&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Run the installer&lt;/li&gt;&lt;li&gt;Open GP&lt;/li&gt;&lt;li&gt;Answer "Yes" to the "Would you like to include new Code?" prompt.&lt;/li&gt;&lt;li&gt;Run a Smartlist&lt;/li&gt;&lt;li&gt;Export the Smartlist to verify Ez-GP is working.&lt;/li&gt;&lt;li&gt;Register EZ-GP.  &lt;span style="font-size:85%;"&gt;* (Skip this if you are using the Free Trial, Obviously. )&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Close Excel and GP.&lt;/li&gt;&lt;li&gt;Move the x:\documents and settings\yourname\DPPI folder to x:\Program Files\DPPI&lt;/li&gt;&lt;li&gt;Give the users permissions to the x:\Program Files\DPPI folder.&lt;/li&gt;&lt;li&gt;Open Regedit &lt;/li&gt;&lt;li&gt;Navigate to Hkey_Local_Machine\Software\DPPI\TabFileParse&lt;/li&gt;&lt;li&gt;Update the InstallFolder to x:\Program Files\DPPI\Xcelerator&lt;/li&gt;&lt;li&gt;Update the WorkDirectory to F:\Program Files\DPPI\Xcelerator\Work&lt;/li&gt;&lt;li&gt;Run &lt;span style="font-family: courier new;"&gt;change user /execute&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;All done, test it as an unpriviledged user.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;For the permissions, full control of the directory works.  That could be tightened up, but determining the minimum permissions required is beyond the scope of this post.&lt;br /&gt;&lt;br /&gt;Good Luck, and please comment if this article helped you.&lt;br /&gt;&lt;br /&gt;-Elizabeth Greene&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4547874311899669660-2020347828272246074?l=myserverstuff.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myserverstuff.blogspot.com/feeds/2020347828272246074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4547874311899669660&amp;postID=2020347828272246074' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/2020347828272246074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4547874311899669660/posts/default/2020347828272246074'/><link rel='alternate' type='text/html' href='http://myserverstuff.blogspot.com/2008/07/installing-dppi-ez-gp-smartlist.html' title='Installing DPPI EZ-GP Smartlist Accelerator on a Terminal Server'/><author><name>Elizabeth Greene</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
