« October 2004 | Main | February 2005 »
January 31, 2005
Hey, Scripting Guy!
If you're not reading the "Hey, Scripting Guy!" Q&A at Microsoft's site, you're missing out. See the archives for some great background material on scripting, including answers to questions like "How can I enumerate all the objects in an AD OU?" and "How can I delete all files older than a certain date?" (hint: this latter one is highly useful for cleaning up your badmail directory!) Highly recommended!
Posted by Paul at 09:54 AM | Comments (0)
January 19, 2005
Programmatically getting white space size
Here's a very cool trick: Glen Scales wrote a script that finds all of your mailbox and public folder stores, then queries their servers' event logs to find event ID 1221s indicating how much white space is available. This is a slick solution to the vexing problem of monitoring how much white space is lurking in your databases.
Posted by Paul at 02:54 PM | Comments (0)
Tech review begins
After a (too-long) hiatus, we're back to rattling pots and pans in the kitchen. All but three of the chapters have been through the initial editing cycle: we wrote them, sent them to Robbie Allen for editing, and incorporated his comments and feedback. We're waiting on his feedback for two chapters, and I'm working to finish the remaining chapter. In the meantime, the first chunk of chapters have gone out to our ace staff of technical reviewers, so we're actually getting closer to printing time!
Posted by Paul at 10:39 AM | Comments (0)
Inter-organization DL migration script
Rui J.M. Silva posted a cool script on his blog for migrating distribution list objects between Exchange organizations. The script is meant to be run against an Exchange 5.5 directory, from which it extracts the DLs with ldifde. It then extracts the 5.5 directory with csvde, matches the display and account names, and outputs a file that can imported using ldifde. The last step actually imports the DLs as universal distribution groups. If you want the DLs to be populated, you must already be using the ADC so that user accounts are synchronized, but the script is still a nice bit of work.
Posted by Paul at 10:37 AM | Comments (0)
January 06, 2005
Setting public folder permissions programmatically
For Chapter 9 of the cookbook, I needed a way to set public folder permissions from a script. The best answer I've found so far is Eric Legault's script, but it was too long and complex to include in the book. Rather than copy the script here, let me just refer you to it: Accessing Public Folder Permissions Programmatically.
Posted by Paul at 01:56 PM | Comments (1)
January 03, 2005
The growth of SMTP capabilities in Exchange
Chapter 7, "Routing, Transport, and SMTP," got sent off to our editor (hi, Robbie!) last night. This chapter was a departure for me because it was one I wrote myself beginning to end, instead of taking a few recipes here and there. I'd volunteered to write this chapter because it is, at heart, about SMTP, and with my years of administering UNIX mail systems, I have a fairly good handle on SMTP; my clearest handle on Exchange is coming from the SMTP side and working inward.
As I was researching several of the recipes for this chapter, I became aware that there was a lack of what was (to me) painfully obvious documentation on Exchange. One of the things that I needed to know was what SMTP and Extended SMTP (ESMTP) keywords and verbs the various versions of Exchange supported. I could find bits and pieces of this information all over the place, but nobody seemed to have a nice side-by-side comparison chart.
The obvious answer to that was to compile one. Since I didn't end up using it in any of the recipes directly (although it may yet end up somewhere in the book), I figured I'd share what I compiled. Please, feel free to let me know if you find errors or omissions; I have no ego invested in this.
Without further ado...
| ESMTP keyword or verb | 5.5 | 2000 | 2003 | Notes |
| 8BITMIME | X | X | Permits 8-bit message bodies | |
| ATRN | X | X | Authenticated TURN; requires SMTP AUTH | |
| AUTH GSSAPI | X | X | Kerberos authentication | |
| AUTH LOGIN | X | X | X | Basic authentication |
| AUTH NTLM | X | X | NTLM (IWA) authentication | |
| BINARYMIME | X | X | Requires CHUNKING; permits unencoded 8-bit data transfer | |
| CHUNKING | X | X | Streamed-mode data transfer | |
| DSN | X | X | X | Delivery Status Notification |
| ENHANCEDSTATUSCODES | X | X | ESMTP enhanced status codes | |
| ETRN | X | X | X | Extended TURN; requires DNS MX entries |
| PIPELINING | X | X | Performance enhancement | |
| SIZE | X | X | X | Maximum message size advertisement |
| STARTTLS | X | X | X | Draft TLS spec; start SSL for rest of session |
| TLS | X | X | X | Final TLS spec; start SSL for rest of session |
| TURN | X | X | Server delivers mail queued up for client | |
| VRFY | X | X | Verify recipients | |
| XEXCH50 | X | X | X | Exchange specific extended message properties |
| X-EXPS GSSAPI | X | X | Exchange org-specific authentication using Kerberos | |
| X-EXPS LOGIN | X | X | Exchange org-specific authentication using basic authentication | |
| X-EXPS NTLM | X | X | Exchange org-specific authentication using NTLM | |
| X-LINK2STATE | X | X | Cross-routing group link status updates |
Posted by Devin Ganger at 02:24 PM | Comments (0)