Wednesday, December 24, 2008

GroupBoard Workspace 2007

So if you've dealt with this one it seems that there are two scenarios.

(1) It works with no problems.
(2) It doesn't seem to work no matter what you do.

You can imagine that I'm not writing about scenario (1). I've opened this post because I need to collect information about GroupBoard Workspace 2007 in one place so I'll be adding to this post as I find out more...

The error I get this morning when I try to create a new site with GroupBoard Workspace as the template is:

Feature '636287a7-7f62-4a6e-9fcc-081f4672cbf8' is not installed in this farm, and can not be added to this scope.

Nice. So what I've found thus far is to retract the solution and attempt to redeploy. When I attempt to retractsolution I get the error:

A deployment or retraction is already under way for the solution "gbw.wsp", and only one deployment or retraction at a time is supported.

So now I figure I'll run an iisreset and go from there...

Wednesday, October 22, 2008

Windows Mobile 6 Ringtones

Quick Tip here. If you want to add your own music file as a Ring tone on your Windows Mobile 6 phone, connect the phone to your computer and browse to "My Windows Mobile-Based Device -> Application Data -> Sounds" and drop it in there. After that, on your device go to "Start -> Settings -> Sounds & Notifications -> Notifications" and select the "Ring tone:" that you just copied to your device from the drop-down list.

Wednesday, October 15, 2008

Managed Default Folders in Exchange 2007

Question:
How do I automatically purge items older than 30 days in the Inbox, Sent Items, and Deleted Items folders in Exchange 2007?

Answer:
There are actually four steps to set this up. They can all be done from PowerShell, which is awesome, but they can also be done through the Exchange Management Console. I'll cover both methods.

Step 1 - New Managed Content Settings
In Exchange Management Console, select Microsoft Exchange -> Organization Configuration -> Mailbox -> Managed Default Folders. From here, select each folder you wish to create Managed Content Settings (read: retention/journaling policies) and click "New Managed Content Settings..." from the Actions menu on the right.

Step 2 - New Managed Folder Mailbox Policy
Now skip over to the Managed Folder Mailbox Policies tab. Click "New Managed Folder Mailbox Policy" and Add the folders you want to group together. This grouping is important because you can only apply one "Policy" to a given user.

In practice this means if I want my retention settings for Inbox and Sent Items that I set up in Step 1 to apply to USER1, I need to add both of those folders to one Policy. If I want the retention settings for Sent Items and Deleted Items to apply to USER2 and USER3, I need to add both of those folders to another Policy.

Step 3 - Messaging Records Management - Recipient Configuration
Still on Exchange Management Console, drill down to Microsoft Exchange -> Recipient Configuration -> Mailbox and double-click on a user. Go to the Mailbox Settings tab on the user Properties window and double click on "Messaging Records Managment". Here you need to select a Managed folder mailbox policy (you created this in Step 2) for this user.

Here's where I reccomend using PowerShell if you have more than a few users to assign this policy to. PowerShell script example coming tomorrow.

Step 4 - Messaging Records Management - Server Configuration
Finally, drill down to Microsoft Exchange -> Server Configuration -> Mailbox and double-click on a Mailbox Server. Go to the Messaging Records Management tab and create a Custom Schedule when to apply the Policy.

Think of this as a scheduled task with a "Stop the task if it runs for X hour(s) X minute(s)." The only difference is that this scheduled task picks up where it left off when it stopped. So, if I schedule it to run at 12AM for one hour each night and it doesn't finish processing through all the mailboxes it is assigned to, it will continue at 12AM on Monday.

One final note, you should do this during light usage hours because this can be intensive on your Exchange Servers and Outlook (think synchronization, especially on the initail run).

That's pretty much it. For more details and PowerShell commands from Microsoft, take a look here (remember it's technet so Internet Exporer or IE emulation will give you a "better" view):
http://technet.microsoft.com/en-us/library/bb123548(EXCHG.80).aspx

Good luck!

Tuesday, October 14, 2008

CubeTree

We're about to do an internal soft launch of CubeTree at my office. I'm excited but busy. More to come on the MPS fun from last week and more to come about CubeTree shortly.

Monday, October 6, 2008

And then there was MPS...

So, eight months later...

I've had an exciting eight months. I have successfully made the transition from education to the private sector and things move at a pretty fast pace here. It's fairly obvious that I haven't had any time to blog for a long time. Now I'm hoping that I'll have at least a moment here and there to blog so this seems as good a time as any to start again. Having said all that...

I'm taking a class for the next four days on MPS, that is the Microsoft Provisioning System leveraged by Microsoft's Hosted Messaging and Collaboration product. Never heard of it? That's not surprising. If you're interested at all, as far as I can tell there are only a handful of people that actively use this product and we all post on this relatively dead message board:

http://forums.asp.net/default.aspx?ForumGroupID=29

Specifically, I troll around the Microsoft Solution for Hosted Exchange board there. Anyway, useful bits of information and my general insights soon to come...

Wednesday, January 30, 2008

My own RBL

Today I was trying to figure out how to block spammers' IPs from using my smtp servers. Regardless of your point of view on IP blocking I figure this was an interesting exercise so I'm posting what I found and how I went about finding it.

Exchange 2007 has this functionality where it can check an RBL (I'm not going to spell it out because people can't agree on what it means) before sending a message. The idea is that Exchange knows where the email is coming from (the IP that connected to Exchange's SMTP server) and can basically pass that by a list before accepting the message to see if the IP looks like a "known spammer". This gets all-kinds-of-fun because people who run mail servers for a living have all had an experience where one of their servers is flagged as a "known spammer" and they have to jump through hoops to get their server's IP off someone's list. The lists usually update frequently (if you're not reported to a list within 24 hours your IP usually drops off the list) so a lot of people (and a lot of people's anti-spam programs/boxes) rely on these to cut down on spam.

I thought, as someone who is rather against this practice having had servers I have run be listed on an RBL before, I would rather only block the IPs *I* choose to block and for the amount of time *I* choose to block them. I figured I would search for a program (Microsoft usually supplies me with these type of things) that would set up a list for me that my mail servers could query and I would call it a day. I was surprised when I found vague links to Microsoft Antigen, Exchange itself and Microsoft Forefront. Antigen, as far as I can tell has been absorbed into Forefront in its current iteration and neither Exchange nor Forefront are what I would call "easy" to setup and configure correctly, at least not as easy as I was imagining this project. So I googled my problem and found a nifty little linux app named rbldns. I would've just slapped that on a linux test box but none were handy so I read about it instead. Turns out this program is just a lightweight DNS server...interesting.

So after much thought and a few more specific google searches I figured out what an RBL list really is! What is an RBL list really? It's a DNS server, but it's a very specifically formatted DNS zone that gets you what you want. Here's the meat and potatoes to get you going:

There's an address for the DNS server of the RBL list, that's just the DNS name of your, well, DNS server.

There's a DNS suffix. This is the zone you create your RBL records in. So if my domain were josh.com, hosting www.josh.com, etc. I would create a zone on my DNS server and call it "rbl.josh.com", this is the DNS suffix.

You may see where I'm going with this by now. Your email server queries your RBL server (read: DNS) before accepting a message to see whether the IP connecting to your mail server is there. If it is, the mail server says, sorry, with an error message that's normally configurable but should basically say, "you're a known spammer, if you disagree, contact me here".

Here's the trick. Say I know that 10.20.0.5 is a known spammer and I want to put them on my "RBL", I put it in quotes here because it's more just a "BL" that I manually update, but that's neither here nor there. I go to my dns server to my "rbl.josh.com" zone from before and create the A record (forward lookup) "5.0.20.10.rbl.josh.com" and point it at "127.0.0.1". This is because when a mail server queries an RBL list for an IP, it queries for the IP octets in reverse order followed by the DNS suffix. If it finds that in the RBL list pointing to 127.0.0.1 (or really anything non-routable in theory), then it drops messages from that sender. If it doesn't, it allows the sender to continue the session with the smtp server and send their message on its merry way.

Anyway, this probably isn't so exciting for most folks but I found it interesting and if you need to block specific IPs, this is a really cheap way to do it. It's also really efficient if you have multiple servers that all should have the same block list and you don't trust the big RBL names. If you need me to clarify anything please post a response and I'll do my best to get back to you. I hope this helps those of you in the situation I was in. Oh yeah, one more thing, if you want to block, say the whole class C in the above example, just create the record for "*.0.20.10.rbl.josh.com" and point it to "127.0.0.1". Good luck and happy list-keeping!