Use the Kana Solutions DynDNS Updater version 3.1.0. Edit the Dyndns.ini file, and, in the Options section, add the option
UseLanIP=1
This forces it to use your local IP.
When a client computer connects to a Microsoft Windows 2000-based computer or a Microsoft Windows Server 2003-based computer by using an alias name, the client may receive the following error message:
A duplicate name exists on the network.
Although, you're able to access the computer by FQDN or IP address, you're unable to access it by using DNS alias.
This problem can occur when you try to connect to the server by using a CNAME alias that is created in the DNS zone. For example, this problem may occur with a command similar to the following sample command
net view \\alias.domain name.com
where alias is a CNAME record that is created for the server in the domain name.com zone. The server is not "listening" on the alias, and therefore is not accepting connections to that name.
Here's how to fix this on Windows Server 2003
To resolve this problem in Windows Server 2003, follow these steps:
- Create the CNAME record for the file server on the appropriate DNS server, if the CNAME record is not already present.
- Apply the following registry change to the file server. To do so, follow these steps:
- Start Registry Editor (Regedt32.exe).
- Locate and click the following key in the registry:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters - On the Edit menu, click Add Value, and then add the following registry value:
Value name: DisableStrictNameChecking
Data type: REG_DWORD
Radix: Decimal
Value: 1 - Quit Registry Editor.
- Restart your computer.
You may also have to set the SPN (Service Principal Name) for the Alias Name.
For example, you may have to enter a command that resembles the following commands:
setspn -a host/aliasname targetserver
setspn -a host/aliasname.contoso.com targetserver
I have read several complaints in this forum lately about port forwarding not working properly, and just to clarify, port forwarding is from WAN to LAN which still works fine, most users are having problems with loopback (LAN to WAN to LAN or LAN to LAN). The way dd-wrt implements it currently will not work for most setups, to fix it, you can go to the webgui in dd-wrt under Administration > Commands and enter in this code, once the code is entered, click "Save Firewall" and restart the router.
iptables -t nat -I POSTROUTING -o br0 -s 192.168.1.0/24 -d 192.168.1.0/24 -j MASQUERADE
Of course if you use a different subnet than 192.168.1.1 you'll have to adjust the code to work for what subnet you use. Also, another great code, which i hope will soon be implemented into dd-wrt is..
insmod ipt_mark insmod xt_mark iptables -t mangle -A PREROUTING -i ! `get_wanface` -d `nvram get wan_ipaddr` -j MARK --set-mark 0xd001 iptables -t nat -A POSTROUTING -m mark --mark 0xd001 -j MASQUERADE
Which can also be saved in Administration > Commands enter the code then click "save firewall"
This code adds loopback for ALL interfaces regardless of how many different subnets you use.
Automating Database maintenance in SQL 2005 Express Edition Part I
Author Jasper Smith Hits 26214
Create Date 31-07-2004 Last Updated 28-07-2008
Versions SQL2005
Overview
In this series of articles, I'll demonstrate a couple of different approaches to writing a maintenance utility that mimics some of the behavior of the sqlmaint utility that is included with SQL Server 2000. SQL Server 2005 Express Edition does not include such a utility, so these articles will show how we can easily create one ourselves using either TSQL or SMO (SQL Management Objects - the successor to SQL-DMO). Rather than dive into the code, these articles will demonstrate how to use these utilities for backing up and maintaining your databases and how to schedule these tasks using the Scheduled Tasks facility in Windows XP and Windows 2003. In this article we will concentrate on the TSQL version of the utility which is in the form of a stored procedure - expressmaint. To download a command line version built using SMO go to Automating Database maintenance in SQL 2005 Express Edition Part II. To vew articles on performing maintenance operations using SMO including sample code see the Related Articles section at the bottom of the page
Expressmaint Stored Procedure
To view the full code for the expressmaint stored procedure click here
The expressmaint stored procedure supports the following operations
Full Database Backup
Differential Database Backup
Log Backup
Housekeeping of backup files
Database Integrity Checks
Database Index Rebuilds
Database index Reorganization
Report Creation
Parameter Required Default Description
@database Y NONE The target database for the maintenance operation. Valid values are a single database name, ALL_USER which will process all user databases and ALL_SYSTEM which will process all system databases
@optype Y NONE The type of maintenance operation to be performed. Valid values are
DB - Full Database Backup
DIFF - Differential Database Backup
LOG - Log Backup
CHECKDB - Database Integrity Check
REINDEX - Rebuild all indexes
REORG - Reorganize all indexes
@backupwith N NULL Specify additional backup options as documented in BOL for the BACKUP WITH command
@backupfldr N NULL The base folder to write the backups to. Sub folders will be created for each database
@verify N 1 Indicates whether to verify the backup file.
Valid values are 1 and 0 with 1 = TRUE and 0 = FALSE
@verifywith N NULL Specify additional verify options as documented in BOL for the VERIFY WITH command
@dbretainunit N NULL The unit of measure for the @dbretainval parameter. Valid values are minutes, hours, days, weeks, months and copies. The combination of these two parameters determines how long or how many copies of old backup files are kept
@dbretainval N 1 The time period or number of copies of old backups to keep
@report N 1 Indicates whether to produce a report of the maintenance carried out.
Valid values are 1 and 0 with 1 = TRUE and 0 = FALSE
@reportfldr N NULL The folder where maintenance reports are written to if @report = 1
@rptretainunit N NULL The unit of measure for the @rptretainval parameter. Valid values are minutes, hours, days, weeks, months and copies. The combination of these two parameters determines how long or how many copies of old reports are kept
@rptretainval N 1 The time period or number of copies of old reports to keep
@checkattrib N 0 Indicates whether to check the archive bit on a backup file before deleting it. This is a safety check to prevent deletion of files that have not been backed up onto tape.
Valid values are 1 and 0 with 1 = TRUE and 0 = FALSE
@delfirst N 0 Indicates whether to delete old backups prior to doing the current backup. This is not advisable but can be useful if disk space is limited.
Valid values are 1 and 0 with 1 = TRUE and 0 = FALSE
@debug N 0 Indicates whether print out debug information such as the commands generated and the contents of the temporary tables used in the procedure.
Valid values are 1 and 0 with 1 = TRUE and 0 = FALSE
Examples
To load the stored procedure into SQL Express using the sqlcmd utility simply download the code from here and save it as c:\expressmaint.sql. Open a command prompt and run the following command (assuming a named instance called SQLExpress)
sqlcmd -S .\SQLExpress -i c:\expressmaint.sql
1) Full Database Backup of all user databases to c:\backups, verify the backups and report to c:\reports keeping backups for 1 day and reports for 1 week
exec expressmaint
@database = 'ALL_USER',
@optype = 'DB',
@backupfldr = 'c:\backups',
@reportfldr = 'c:\reports',
@verify = 1,
@dbretainunit = 'days',
@dbretainval = 1,
@rptretainunit = 'weeks',
@rptretainval = 1,
@report = 1
2) Full Database Backup of all system databases to c:\backups, verify the backups and report to c:\reports keeping backups for 1 week and reports for 1 week
exec expressmaint
@database = 'ALL_SYSTEM',
@optype = 'DB',
@backupfldr = 'c:\backups',
@reportfldr = 'c:\reports',
@verify = 1,
@dbretainunit = 'weeks',
@dbretainval = 1,
@rptretainunit = 'weeks',
@rptretainval = 1,
@report = 1
3) Log Backup of all user databases to c:\backups, don't verify the backups and report to c:\reports keeping backups for 1 day and reports for 1 day
exec expressmaint
@database = 'ALL_USER',
@optype = 'LOG',
@backupfldr = 'c:\backups',
@reportfldr = 'c:\reports',
@verify = 0,
@dbretainunit = 'days',
@dbretainval = 1,
@rptretainunit = 'days',
@rptretainval = 1,
@report = 1
4) Check the integrity of the AdventureWorks database and report to c:\reports keeping reports for 1 week
exec expressmaint
@database = 'AdventureWorks',
@optype = 'CHECKDB',
@reportfldr = 'c:\reports',
@rptretainunit = 'weeks',
@rptretainval = 1,
@report = 1
5) Rebuild all indexes in the AdventureWorks database and report to c:\reports keeping reports for 1 day
exec expressmaint
@database = 'AdventureWorks',
@optype = 'REINDEX',
@reportfldr = 'c:\reports',
@rptretainunit = 'days',
@rptretainval = 1,
@report = 1
Automating backups using sqlcmd
Since SQL Server 2005 Express Edition does not include SQL Agent, we need to rely on the Windows Task Scheduler to run our maintenance tasks. If you are not familiar with how to set up a scheduled task, it's worth reviewing the Microsoft Knowledge Base article below
How to Schedule Tasks in Windows XP
The simplest way to pass our parameters to sqlcmd is to simply save the call to the stored procedure in a file. For example, we could copy the code from the Full Database Backup of all user databases example above (Example 1) and save it to c:\backup scripts\userfullbackup.sql. The walk through below assumes you have a named instance called SQLExpress.
Double-click Add Scheduled Task to start the Scheduled Task Wizard, and then click Next in the first dialog box
Click Browse, browse to SQLCMD.exe (by default it can be found in C:\Program Files\Microsoft SQL Server\90\Tools\binn), and then click Open.
Type a name for the task e.g DAILY FULL BACKUP and then choose Daily from the scheduling options
Click Next, specify the information about the time to run the task e.g. 00:00, and then click Next
Type the name and password of the account that will execute this task. Make sure that you choose an account that is a syadmin for your instance
Click Next, select the checkbox to Open the Advanced Properties for this task and then click Finish
In the Run text box append the following to the contents : -S .\SQLExpress -i"c:\backup scripts\userfullbackup.sql" (You must leave a space after the existing contents)
Click OK. If prompted, supply the password for the account again
An alternative to the penultimate step above is to remove the entire contents of the Run text box and simply supply the following
sqlcmd -S.\SQLExpress -i"c:\backup scripts\userfullbackup.sql"
Another alternative rather than maintaining an individual script for each task is to parameterize the script and take advantage of the ability to pass parameters to sqlcmd from the command line. If we take the same example script we used in the task above (c:\backup scripts\userfullbackup.sql), we could add parameters to it as shown below
exec expressmaint
@database = '$(DB)',
@optype = 'DB',
@backupfldr = '$(BACKUPFOLDER)',
@reportfldr = 'c:\reports',
@verify = 1,
@dbretainunit = '$(DBRETAINUNIT)',
@dbretainval = '$(DBRETAINVAL)',
@rptretainunit = 'copies',
@rptretainval = 2,
@report = 1
This allows us to pass in the database, backup folder and backup retention parameters from the command line. To simulate the same parameters as example 1, we would supply the following command to the task (note that this entire command should all be on one line)
sqlcmd -S .\SQLExpress -i"c:\backup scripts\userfullbackup.sql" -v DB="ALL_USER"
-v BACKUPFOLDER="c:\backups" -v DBRETAINUNIT="days" -v DBRETAINVAL="1"
As this demonstrates, sqlcmd is a lot more flexible than osql/isql and there are numerous options available for scheduling our maintenance tasks. In Part II of this article, I'll be demonstrating how we can build an expressmaint.exe command line utility using SMO to provide the same functionality. In the meantime, to supply feedback on this article and the code or to report bugs/issues email This email address is being protected from spambots. You need JavaScript enabled to view it.
Back in September of last year I wrote up an article on how to get osTicket to authenticate with Active Directory. That article was based on version 1.6 RC5. It actually worked very well for my company. Users could simply login to the staff panel with their domain\username credentials.
Well, we started getting weird database errors recently, so I thought it might be good to move away from the RC5 version, and move to the final release. Well, if you read the comments at the bottom of my previous article you will know that my customizations didn’t carry over to the final release. That is ok though, because I found an even better and easier way to get osTicket to authenticate with AD. I got it working in about 2 minutes in Ubuntu Server 10.04.
First you will need one little perquisite package, php5-ldap. Just run the following:
>sudo apt-get install php5-ldap
Next you will want to manually create a user with a username that matches active directory. For instance is your AD username is jsmith create a user in osTicket called jsmith and give it a temporary password of 123456 (Doesn't matter because osTicket will look to AD right?)
Once that is installed, edit include/class.staff.php:
>sudo nano include/class.staff.php
Replace the following code:
/*compares user password*/
function check_passwd($password){
return (strlen($this->passwd) && strcmp($this->passwd, MD5($password))==0)?(TRUE):(FALSE);
}
With:
/*compares user password*/
function check_passwd($password){
// Change made for LDAP Auth based on -> http://osticket.com/forums/showthread.php?t=3312
// Change this line to the FQDN of your domain controller
$ds=ldap_connect('mydc.mydomain.local') or die("Couldn't connect to AD!");
// Change this line to the name of your Active Directory domain
if ($ds) {
$domain="mydomain";
$ldapbind = ldap_bind($ds);
if (!@ldap_bind( $ds, $domain."\\".$this->username, $password) ) {
// Auth failed! lets try at osTicket database
return (strlen($this->passwd) && strcmp($this->passwd, MD5($password))==0)?(TRUE):(FALSE);
// return(FALSE);
}
else{
// Auth succeeded!
return(TRUE);
}
// End Changes
}
}
After you do that change the items in red to match your environment then restart Apache:
>sudo /etc/init.d/apache2 restart
Bam! You now have Microsoft Active Directory authentication, and you don’t have to specify a domain name at login either!
If you are looking for additional functionality, check out the osTicket Forums, there are a lot of cool customizations I am sure you will find useful!
You need to add a modem manually. After adding in the serial port to the virtual machine, you then add the modem into windows just as if you attached an old-fashioned serial port modem, the kind that's not plug-and-play.
For instance on my host machine, I have 2 serial ports, COM1 & COM2, and one winmodem set as COM3. I add a serial port to the virual machine, COM1. I configure the virual COM1 to point to the host's COM3. Then I add a modem to the virual machine. Since it's not a plug-and-play modem, it's detected as "unknown modem." I then manually change that to Standard 33600. If you know your modem is Flex, v90 or x2, then you can choose one of those. Otherwise Standard 33600 will always work for any winmodem. Done! The virtual machine now has a modem on COM1.
BTW, VMWare "takes over" the serial port, and thus the modem, while it's connected. So if you want to use the modem from the host, either disconenct the serial port the from VM menu or shut down the virtual machine.
or
Use an external modem that plugs into the serial port on your host.
All you have to do is type "cmd" in the Search Box included in the Vista Start menu. Next, press Ctrl + Shift + Enter to open a command prompt window with elevated privileges. Now enter bcdedit /set loadoptions DDISABLE_INTEGRITY_CHECKS in order to disable Driver Signing and reboot.
After installing Windows XP Home Edition or Windows XP Professional Edition onto a computer, officially it’s impossible for user to convert, or upgrade from Windows XP Home to Pro edition, or downgrade from Windows XP Professional to Home edition without reformatting and reinstalling the operating system from clean and fresh state.
A lot of people always associate conversion of Windows XP edition to illegitimate or privacy reason, but sometimes, there may be legitimate and genuine reason for change, such as customer, who all the while using Windows XP Home Edition (HE) finally buy a genuine license product key for Professional edition to replace the illegal pirated version installed, or user receives additional license as gift, but don’t want to go through clean install Windows XP again, or want to keep using the computer with all data intact without interruption.
Here’s a trick to convert and turn Windows XP Home Edition to Windows XP Pro Edition, from within the operating system without going through installation again. Ok, let’s be frank. The hack doesn’t actually install and add in all the features from Windows XP Professional that Windows XP Home lacks of, such as Remote Desktop Server (see guide to install Remote Desktop on XP Home) and Group Policy Editor (GPedit) utility tools, which has been removed on Windows XP Home edition. Some functions which turned off and disabled via integrated switches which read from registry flag whether it’s Home or Professional edition, such as EFS, RAID support and ability to join domain, may or may not work after migration. Basically, the trick only work to let Windows XP recognizes itself as Professional edition.
To convert and upgrade Windows XP Home to Windows XP Professional, follow procedure below.
Open Registry Editor (regedit).
Navigate to HKEY_LOCAL_MACHINE/SYSTEM/ControlSet00X/Control/ProductOptions, where ControlSet00X is the one with the highest number.
Delete the ProductSuite registry key.
Then, create a new DWORD value and named it as Brand.
Set the “Brand” value data as 0.
Reboot the system.
On boot up after the BIOS screen, press F8 to display Windows XP Startup Menu.
Choose Last Known Good Configuration (LNG) and hit Enter.
Windows XP will start up as usual. After logging into the desktop, check the system properties to verify that it’s now Windows XP Professional.
You are prompted to activate Windows XP or Windows Server 2003 every time that you start the computer
View products that this article applies to.
Article ID : 312295
Last Review : September 30, 2007
Revision : 5.10
This article was previously published under Q312295
On This Page
SUMMARY
Symptoms of the problem
Cause of the problem
Steps to resolve the problem
Method 1: Guided Help to remove the script that interferes with Windows activation
Requirements to install and to use this Guided Help
Method 2: Manually remove the script that interferes with Windows activation
Before you start
Step 1: Start the computer in safe mode
Step 2: Start Registry Editor
Step 3: Remove the RESETS registry subkey
Step 4: Modify the registry to deactivate Windows
Step 5: Rename the corrupted Windows activation file
Step 6: Determine the CD or DVD drive letter
Step 7: Replace the corrupted Windows activation file
Step 8: Remove the files that are associated with the script
Step 9: Reactivate Windows
MORE INFORMATION
SUMMARY
This article contains information to help you resolve a Windows product activation problem. You may be prompted to activate Windows every time that you start the computer. You experience this problem even if you have already activated Windows. This article describes how to remove a script that may interfere with Windows activation. To do this, you must start the computer in safe mode, modify the Windows registry, and then restore the Windows product activation file. Then, you can reactivate Windows. After you follow these steps, you are no longer prompted to activate Windows when you start the computer.
This article is intended for a beginning to intermediate computer user.
You may find it easier to follow the steps if you print this article first.
Back to the top
Symptoms of the problem
Every time that you start the computer, you receive a message that prompts you to activate Microsoft Windows XP or Microsoft Windows Server 2003. You experience this issue even if you have already successfully activated Windows.
Back to the top
Cause of the problem
This problem occurs because a script that interferes with Windows activation is running on the computer.
Back to the top
Steps to resolve the problem
Remove the script that interferes with Windows activation. Then, reactivate Windows. To do this, use one of the following methods.
Method 1: Guided Help to remove the script that interferes with Windows activation
Guided Help is available to remove the script that interferes with Windows activation. Guided Help can automatically perform the steps for you.
The actions that this Guided Help performs cannot be undone after Guided Help is finished.
For more information about Guided Help, click the following article number to view the article in the Microsoft Knowledge Base:
915092 (http://support.microsoft.com/kb/915092/) Description of Guided Help for Microsoft Knowledge Base articles
Requirements to install and to use this Guided Help
• You must be logged on to Windows by using a computer administrator account to install and to use this Guided Help.
• You must be running Windows Server 2003, Windows XP Home Edition, Windows XP Professional, Windows XP Media Center Edition, or Windows XP Tablet PC Edition to install and to use this Guided Help.
You must first download Guided Help. To start, click the following link:
Download Guided Help
(http://support.microsoft.com/kb/312295/)
Method 2: Manually remove the script that interferes with Windows activation
Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756 (http://support.microsoft.com/kb/322756/) How to back up and restore the registry in Windows
Before you start
To complete these steps, you must have the following: • The Windows XP CD. Or, access to a folder that contains the files from the i386 folder on the Windows XP CD.
• An account that has administrator rights and permissions.
Step 1: Start the computer in safe mode
1. Start the computer.
2. After the computer runs the Power On Self Test (POST), press F8 repeatedly to open the Windows Advanced Options menu.
3. On the Windows Advanced Options menu, use the arrow keys to select Safe Mode, and then press ENTER.
4. Use the arrow keys to select the Windows operating system that you want to start, and then press ENTER.
5. When the computer is running in safe mode, log on by using an account that has administrator rights and permissions. Then, click Yes in the message that states that Windows is running in safe mode.
Step 2: Start Registry Editor
Click Start, click Run, type regedit, and then click OK.
Step 3: Remove the RESETS registry subkey
1. In Registry Editor, expand My Computer, and then expand HKEY_LOCAL_MACHINE.
2. Expand SOFTWARE, and then expand Microsoft.
3. Expand Windows NT, and then expand CurrentVersion.
4. Expand Winlogon, and then expand Notify.
5. Under Notify, right-click RESETS, and then click Delete.
6. Click Yes to confirm the removal of the RESETS subkey.
Note Do not exit Registry Editor. You must use Registry Editor in "Step 4: Modify the registry to deactivate Windows."
Step 4: Modify the registry to deactivate Windows
1. In Registry Editor, expand My Computer, and then expand HKEY_LOCAL_MACHINE.
2. Expand SOFTWARE, and then expand Microsoft.
3. Expand Windows NT, and then expand CurrentVersion.
4. Under CurrentVersion, click WPAEvents.
5. In the right pane (topic area) of Registry Editor, right-click OOBETimer, and then click Modify.
6. Click to put the pointer in the Value data box. Then, modify any character that appears in the Value data box.
7. Click OK.
Note This step deactivates Windows.
8. Exit Registry Editor.
Step 5: Rename the corrupted Windows activation file
1. Click Start, click Run, type cmd, and then click OK.
2. At the command prompt, type the following command, and then press ENTER:
ren %windir%\system32\WPA.dbl wpa.old
This command renames the WPA.dbl file to WPA.old.
Step 6: Determine the CD or DVD drive letter
1. Insert the Windows CD.
2. Click Start, and then click My Computer.
3. Note the CD drive letter or the DVD drive letter that appears under Drives with Removable Storage. You have to use this drive letter in the next step.
Step 7: Replace the corrupted Windows activation file
1. Click Start, click Run, type cmd, and then click OK.
2. At the command prompt, type the following command, and then press ENTER:
expand drive :\i386\wpa.db_ %windir%\system32\wpa.dbl
In this command, replace drive with the letter of the drive that contains the Windows CD.
For example, if the Windows CD is located in drive D, the command appears as follows:
expand d:\i386\wpa.db_ %windir%\system32\wpa.dbl
This command extracts a copy of the Wpa.dbl file from the Windows CD. Then, it puts this file in the System32 folder of the Windows installation.
3. Examine the output that appears at the command prompt. If the command runs successfully, information that resembles the following appears: Microsoft (R) File Expansion Utility Version 5.1.2600.0 Copyright (C) Microsoft Corp 1990-1999. All rights reserved. Expanding d:\i386\wpa.db_ to c:\windows\system32\wpa.dbl. d:\i386\wpa.db_: 2222 bytes expanded to 2126 bytes, -5% increase.
4. Type exit, and then press ENTER to exit the command prompt.
Step 8: Remove the files that are associated with the script
1. Click Start, and then click Search.
2. Under What do you want to search for, click All files and folders.
3. In the All or part of the file name box, type the following, and then click Search:
reset5.exe; reset5.dll; reset5.dat; reset5.dt*; srvany.exe
This action performs a search for all the following files: • Reset5.exe
• Reset5.dll
• Reset5.dat
• Reset5.dt*
• Srvany.exe
Note If you use a different search tool such as Windows Desktop Search, use this tool to search for each of these individual files.
4. In the results pane of the Search Results dialog box, right-click each file, and then click Delete.
5. Click Yes to confirm the removal of the file.
6. When you have finished removing these files, exit the Search Results dialog box.
7. Restart the computer and let Windows restart in normal mode.
Step 9: Reactivate Windows
1. Click Start, point to All Programs, point to Accessories, point to System Tools, and then click Activate Windows.
2. If the Windows Product Activation Wizard prompts you to activate Windows, follow the instructions in the wizard to activate Windows.
3. Restart the computer, and then repeat step 1 of "Step 9: Reactivate Windows" to start the Windows Product Activation Wizard again. You take this step to verify that the wizard does not prompt you to activate Windows again.
4. If the Windows Product Activation Wizard displays a "Windows is already activated" message, click OK to exit the wizard.
this is a decidedly tech post so for everyone looking for pictures of the kids, i urge you, in the words of cosmo kramer: “look away!”
we recently installed the Intelligent Message Filter that Microsoft provides with Exchange 2003. for the most part it works very well, but the one problem i’ve run into fairly consistently is the fact that there is no email whitelist, only IP based whitelists. so after a few requests from various corner office-type executives to hunt through the mounds and mounds of filtered email to find the grocery list that was emailed to them and lost, i embarked on a quest to find or write a whitelist.
a quick aside, i’ve found the IMFcompanion by PQR Services to be the best tool for finding lost emails and managing all the spam. and the price is right.
a quick search led me down most of the path and i just had to fill in some of the specific pieces i wanted. here is the original post i found over at msexchange.org, with all credit to the original poster.
basically what we are going to do is add the whitelist emails to the sender filter and move those emails via a batch script to the PickUp folder for delivery, thus circumventing the IMF because the sender filter works before the mail gets parsed by the IMF.
obviously, be careful if you are working in a production environment; but here’s how i did it:
in Exchange System Manager navigate to Global Setting -> Message Delivery and select Properties
click the Sender Filtering Box
click add and enter the email you want to whitelist
check the Archive filtered messages and Accept message without notifying sender of filtering
click Apply, a warning box will appear, click ok and the ok again on the properties box.
at this point all the emails now listed in the sender filter will go into the Filter directory, which by default is in: C:\Program Files\Exchsrvr\Mailroot\vsi 1\Filter\ but your path my vary. now we have to move the files from the Filter directory to the PickUp directory so that the end user will actually get the mail. here is the batch script I use to effect that outcome (all on a single line):
move “C:\Program Files\Exchsrvr\Mailroot\vsi 1\Filter\*.tmp” “C:\Program Files\Exchsrvr\Mailroot\vsi 1\PickUp”
after that just setup a scheduled task to run the batch file how ever often you want it to run (i went with every ten minutes) and your whitelist is in place.
caveats: if you are already using the sender filter for other types of filtering this obviously will not work.