Tuesday, May 23, 2006
Exchange 2003 move 
A client needed to move Exchange 2k3 on windows 2k over to a new hardware box.
KB article 822945 was pretty helpful with the general plan, but there were a few caveats:
- I'm sure you'd like the management tools, so when installing exchange on the new box, be sure to select 'em :)
- Don't use compressed file systems - exchange apparently isn't happy with those
- If you had a compressed file system, and the restore acts like it finished, it really didn't. There were those 'couple extra steps that it does to get the dataabse back to the "Hey, I'm ready to run" state.
- If you run the restore again, you have to delete the log files from the first (failed) attempt, 'cause then the mounting won't happen again, and hence another failed restore.
So, after all that -- it restored properly
(yeah, I probably could have skipped the last two restores if I knew what ntbackup did to finalize the restore process). I then moved the database (priv.edb and priv.stm) to the software RAID5 drive, and left the logs on the software RAID1 drive.
Me thinks it's gonna be as good as it gets with what he's got…

Friday, February 17, 2006
w00h00 x 2! 
So, it's been a little while I guess… So, in this episode of
Mike Jolly's web log, I'll be letting you know two things.
- I'm married now.
- I have an SSL connection to my linux/apache front end for owa.

Friday, December 16, 2005
home directory script 
This is a script I just wrote for the statesville branch of coldwell banker. It parses an OU of active directory (and sub ou's) and for each username, creates a profile and home directory; then sets permissions accordingly on each.
'
' create-and-set-perms.vbs
'
' Mike Jolly
' jolly@jollyt.com
'
' Requires:
' xcacls
' (
http://www.microsoft.com/windows2000/techinfo/reskit/tools/
' existing/xcacls-o.asp)
'
' I really suggest you running this from cscript and not wscript
'
' if you want to run it with wscript, you should change the value
' of the constant 'DisplayAccountName'
On Error Resume NextConst ADS_SCOPE_SUBTREE = 2
Const DisplayAccountName = 1
ProfileDir = "C:dataprofiles"
HomeDir = "C:datahome-dirs"LdapDir = "LDAP://OU=Statesville Users, dc=ad, dc=statesville, dc=clt, " _
& "dc=cbcarolinas, dc=com"Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnectionobjCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREEobjCommand.CommandText = _
"SELECT samAccountName FROM '" & LdapDir & "' WHERE objectCategory='user'"
Set objRecordSet = objCommand.Execute' Set objSetACL = CreateObject("SETACL.SetACLCtrl.1")
Set fso = CreateObject ("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")wbjRecordSet.MoveFirstDo Until objRecordSet.EOF
strUser = objRecordSet.Fields("samAccountName").Value If DisplayAccountName Then
wscript.Echo("Working with account: " & strUser)
End If LocalProfileFolder = ProfileDir & "" & strUser
LocalHomeFolder = HomeDir & "" & strUser
If Not fso.FolderExists(LocalProfileFolder) Then
Set newfolder = fso.CreateFolder(LocalProfileFolder)
End If
If Not fso.FolderExists(LocalHomeFolder) Then
Set newfolder = fso.CreateFolder(LocalHomeFolder)
End If return = WshShell.Run("xcacls " & LocalProfileFolder & " /T /G " & strUser _
& ":C administrators:f SYSTEM:F /Y", 7, false)
return = WshShell.Run("xcacls " & LocalHomeFolder & " /T /G " & strUser _
& ":C administrators:f SYSTEM:F /Y", 7, false)' With objSetACL
' .SetObject(LocalProfileFolder, SE_FILE_OBJECT)
' .SetAction(ACTN_ADDACE)
' .SetRecursion(RECURSE_NO)
' .SetObjectFlags (INHPARNOCHANGE,INHPARNOCHANGE,False,False)
' .AddACE(strUser, False, "Change", 0, True, SET_ACCESS, ACL_DACL)
' .AddACE("Domain Admins", False, "Full", 0, True, SET_ACCESS, ACL_DACL)
' .Run
' End With objRecordSet.MoveNext
Loop
' Cleanup
' Set objSetACL = Nothing
Set fso = Nothing
Set objRecordSet = Nothing
Set objCommand.ActiveConnection = Nothing
Set objCommand = Nothing
Set objConnection = Nothing

Monday, November 07, 2005
Darky's spam solution 
Darky uses
Tagged Message Delivery Agent (TMDA) to prevent spam. Part of the system that I
really like is their
challenge/response which is similar to what Earthlink(t)'s been usingfor spam blocking.
If someone sends you a message, and hasn't been allowed previously, they get sent a 'challenge' bounce that points them to a web page where they say, "No really, I'm a real person. here's my little personalized message begging you to accept mail from me, and here's me typing the contents of the squiggly-channel-esque box of random alpha-numeric characters that you want me to type."
Maybe I'll start using that one day… For now, it's me just making a note of which software it is :)

Wednesday, November 02, 2005
Church Recording Software 
I talked to Kent Margraves yesterday and was reminded about a piece of software he mentioned to me a year 'er so ago. It's called
EZTracker.
Note: their use of relative paths didn't work out...Now to write some scripts to:
- burn the wav files to CD
- make a single mp3 from the outputted wav files

Friday, October 28, 2005
I need to learn how to make cool software 
I want a routing software (like Streets and Trips) that will that a number of destinations (and times at those destinations) and have it plan my day....
I wonder if I could do it with Destinator3 if I bought the SDK......

Wednesday, August 17, 2005
Slipstreaming Service Packs 
I've used another tool before to slipstream a service pack into XP, but I didn't remember it saying it supported 2003 server, and I couldn't find it anyway...
I did however find nLite.

From
their site:
Have you ever wanted to remove some Windows components like Media Player, Internet Explorer, Outlook Express, MSN Explorer, Messenger...How about not even to install them with Windows ?nLite is a GUI for permanent Windows component removal by your choice. After removal there is an option to make bootable image ready for burning on cd or testing in virtual machines. With nLite you will be able to have Windows installation which on install doesn't include, or even contain on cd, unwanted components.nLite Features
- Service Pack Integration
- Component Removal
- Unattended Setup
- Driver Integration *
- Hotfixes Integration **
- Tweaks
- Patches ***
- Bootable ISO creation
Using a simple menu, I was able to tell it to slipstream in 2003 SP1, and burn a bootable ISO.
WOOHOO! 
Wednesday, August 03, 2005
Exchange ActiveSync 
So, my boss gave me his Samsung i700 yesterday, so today I'm fiddling with getting Exchange ActiveSync to work so that I can check my mail remotely without doing a POP3 or IMAP setup.
Now, the funny thing is that Exchange ActiveSync works over IIS. So, I'm thinking stuff might not work right due to my apache proxypass setup, but - after adding the new directories which were added to IIS when I enabled ActiveSync - life almost worked ;)
DocumentRoot /home/www/gg/mail
# Redirect / http://mail.gogod.org/exchange
ProxyPass /exchange http://mail.gogod.org/exchange
ProxyPass /exchweb http://mail.gogod.org/exchweb
ProxyPass /Exchweb http://mail.gogod.org/Exchweb
ProxyPass /public http://mail.gogod.org/public
ProxyPass /Microsoft-Server-ActiveSync http://mail.gogod.org/Microsoft-Server-ActiveSync
ProxyPass /OMA http://mail.gogod.org/OMA
ProxyPassReverse /exchange http://mail.gogod.org/exchange
ProxyPassReverse /exchweb http://mail.gogod.org/exchweb
ProxyPassReverse /Exchweb http://mail.gogod.org/Exchweb
ProxyPassReverse /public http://mail.gogod.org/public
ProxyPassReverse /Microsoft-Server-ActiveSync http://mail.gogod.org/Microsoft-Server-ActiveSync
ProxyPassReverse /OMA http://mail.gogod.org/OMA things to note from above:
- In DocumentRoot I have index.html which redirects you to /exchange
- local DNS resolves mail.gogod.org to an internal IP
My first error was an
HTTP_500 error. Turns out that I matched the causes from
this MSKB article, having a different primary SMTP address than the default recipient policy. A quick registry entry
(SMTPProxy} fixed that error.
Next came an HTTP_400 error. Really, I have no idea what fixed that one. In the midst of it, I did the deletion of the http://<ExchangeURL>/exchange/<Username>/NON_IPM_SUBTREE/Microsoft-Server-ActiveSync XML file, and … well, it sorta started working. I had to change a couple more things to say,
no really, I want you to just dial like normal when you're connecting to 'work' so that it wouldn't complain about not being able to connect, but so far, so good!

Tuesday, July 05, 2005
502 responses 
I guess I should pay better attention to my logwatch reports. When there's a whole bunch of 502 errors in httpd logs, it generally means that my linode had been rebooted and snipsnap not restarted....
whoops.
That's probably played a roll in my rank dropping from number 1 in yahoo… BOO!

Wednesday, June 01, 2005
Pack Rat Folders… 
I wonder if there's a corelation between people who fold being pack rats and on the flip side - if there's a correlation between crunchers throwing stuff out...
It's a matter of wastefullness, isn't it?