Link to home
Start Free TrialLog in
Avatar of JOE-BULLITT
JOE-BULLITT

asked on

Adding Exchange 2003 to existing domain vs. New SBS2003 environment?

I need advice please.

I intend to add an Exchange server to my W2k AD network.

I currently manage a Windows 2000 AD domain with about 20 users.  I want to add Exchange 2003 to my environment and am torn between a couple of options.

What do you think would be a more beneficial path, a new SBS2003 environment and migration of my "old" domain, or simply adding Server2003/Exchange2003 to the existing domain?  I am interested in beneficial, not simplicity.

I am finding that SBS2003 would be a cheaper solution than it would be to add another 2003 server and also Exchange 2003.  As well, SBS 2003 has ISA and some other features, which I could probably find use with.

Of course, it would be a hassle to migrate my existing domain to the new SBS2003 domain, and go through demoting and promoting my “old” servers into it.  But is it worth it?

Does anyone have an opinion based on experience with this?

Thanks very much!

- Joe
SOLUTION
Avatar of Lee W, MVP
Lee W, MVP
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
P. S.  Regarding the comment about "real products":  These are the real products.  Just make sure that you use the wizards when doing anything because there are multiple things happening at the same time.  If you do decide to go the SBS route, check out my install advice at:  https://www.experts-exchange.com/questions/21031607/Small-Business-Server-2003-Setup-Questions.html

Jeff @
TechSoEasy
Yes, I'm well versed in enterprise environments.  And when I moved into a small business with SBS I found the limitations a bit too restrictive for how I like to do things.  If you've been working with the full versions, then you too might have issues.  

SBS can be a good thing where price is an issue.  Where it isn't I would go with the full versions.

And I know these are the "real products" - maybe a poor choice of words.  But that's another thing - I HATE using the Wizards but if you don't you could have problems - that's just poor design if you ask me.
Avatar of harleyjd
harleyjd

I take offense at the way jeff dismisses my tech skills and assumes bias while at the same time being completely dismissive of the need for enterprise products in small environments.

I can't speak for leew, but I hope he agrees with me here, but we both supported the SBS concept, but we both prefer to work in the unrestricted (I use that term deliberately) versions of the product. We both presented a more rounded view of SBS than jeff did, we offered both support and discouragement for good reasons.

I work equally with both SBS and full products, and I have a very good understanding of the limitations of SBS, and they are limitations.

I like the ability to mess with the Exchange server, without impacting the rest of the network, same goes for ISA and SQL. I don't like wizards, and I see leew doesn't either.

I don't want to get into a flame war, but Joe deserves as much info as he can handle.
I'm sorry if you all feel that way... no intention to flame.  But honestly... people that have a ton of experience with enterprise servers generally don't understand the SBS concept.  You both comment about hating wizards, yet you don't take into account that because all of these roles are in the same box, sometimes doing things manually requires many more steps and there are too many possibilities to miss something.

The limitations of SBS are only because of all of the servers being in the same box (as well as DECIDED marketing issues for MS).  For a company with 20 PC's the idea is to provide a rather STANDARDIZED configuration which will work in MOST situations.  Obviously it won't work in all... I have one client, for instance that has 6 remote users, and wanted Terminal Services in Application Mode on the SBS (which can't be done due to it being a DC and Exchange Server).  So, instead of adding another server, we accomplished the task by adding Virtual Server 2005 and Server 2003 in a virtual environment.  It's working like a charm!  There are tons of creative ways to do things...  but most importantly, by keeping within the philosophy of SBS, (ie, using the wizards) maintenance and upkeep are kept to a minimum so you can focus on the things that really make you money (the core business).  That is, unless of course you are the full-time IT guy and you know that doing it the SBS way may put you out of a job.

Just as an FYI, this is a log from one of the wizards (Internet and Email Connection Wizard) to show you how much it does:

11/20/2004 4:32 PM
C:\Program Files\Microsoft Windows Small Business Server\Networking\ICW\wizemail.dll, version 5.2.2651.0
calling CEmailCommit::ValidatePropertyBag ().
calling pdispPPPBag->QueryInterface (IPropertyPagePropertyBag, 0x6f558).
Call to pdispPPPBag->QueryInterface () returned ok.
calling ReadInt4 (0x26a6a8, DB5E5E45-3598-4F1D-8FF7-0ED35B9EB6A4).
Call to ReadInt4 () returned ok.
The out param of ReadInt4() is 1.
calling CValidatePropertyUtil.ValidatePropertyInteger ().
Call to CValidatePropertyUtil.ValidatePropertyInteger () returned ok.
calling ReadBool (0x26a6a8, F71526DD-9C19-4fe9-B7DB-FD4360909275).
Call to ReadBool () returned ok.
The out param of ReadBool() is 1.
calling CValidatePropertyUtil.ValidatePropertyBool ().
Call to CValidatePropertyUtil.ValidatePropertyBool () returned ok.
calling ReadBool (0x26a6a8, DB5E5E46-3598-4F1D-8FF7-0ED35B9EB6A4).
Call to ReadBool () returned ok.
The out param of ReadBool() is 0.
calling CValidatePropertyUtil.ValidatePropertyBool ().
Call to CValidatePropertyUtil.ValidatePropertyBool () returned ok.
calling ReadBool (0x26a6a8, 1DB7A50F-98F8-452f-868B-1AAC56585DD0).
Call to ReadBool () returned ok.
The out param of ReadBool() is 1.
calling CValidatePropertyUtil.ValidatePropertyBool ().
Call to CValidatePropertyUtil.ValidatePropertyBool () returned ok.
calling ReadInt4 (0x26a6a8, C9D8697B-0D4C-4767-8F1F-4CE415098774).
Call to ReadInt4 () returned ok.
The out param of ReadInt4() is 0x2.
calling CValidatePropertyUtil.ValidatePropertyLong ().
Call to CValidatePropertyUtil.ValidatePropertyLong () returned ok.
calling ReadString (0x26a6a8, 01637C90-B142-41C4-8520-6B2E0F891BE7).
Call to ReadString () returned ok.
The out param of ReadString() is samplesbs.com.
calling ReadBool (0x26a6a8, 1DB7A50F-98F8-452f-868B-1AAC56585DD0).
Call to ReadBool () returned ok.
The out param of ReadBool() is 1.
calling ReadInt4 (0x26a6a8, C9D8697B-0D4C-4767-8F1F-4CE415098774).
Call to ReadInt4 () returned ok.
The out param of ReadInt4() is 0x2.
calling CValidatePropertyUtil.ValidatePropertyHostName ().
Call to CValidatePropertyUtil.ValidatePropertyHostName () returned ok.
calling AttachCommiter.Validate(pPPPBag) (0x26a6a8, 01637C90-B142-41C4-8520-6B2E0F891BE7).
calling CAttachCommiter::Validate (0x26a6a8).
calling CAttachCommiter::Validate:ReadVariant (0x0).
calling CAttachCommiter::Validate:m_spDoc.CoCreateInstance (0x0).
calling CAttachCommiter::Validate:m_spDoc->loadXML (0x0).
Call to CAttachCommiter::Validate () returned ok.
Call to CEMailCommit::ValidatePropertyBag () returned ok.
calling CNetCommit::Commit (2533032).
calling CNetCommit::ValidatePropertyBag ().
Call to Querying for the property bag () returned ok.
Property bag is not dirty, skipping validation
calling CNetCommit::Common ().
calling CNetCommit::GetLanNicInfo ().
LAN NIC Guid: {9AFD6B93-C39D-4047-B23E-5DB8BA353659}
Call to Converting LAN NIC Guid () returned ok.
Call to Getting IP address for the LAN NIC () returned ok.
Call to Reading in the LAN NIC info () returned ok.
Call to Fixing the TCP/IP NIC Binding order () returned ok.
Dhcp server is installed and not disabled
Call to Set DHCP Server to start up automatically () returned ok.
DNS server is installed and not disabled
Call to Changing startup type for DNS () returned ok.
Call to Clearing DNS server entries on the LAN NIC () returned ok.
Call to Setting DNS server IP for the LAN NIC () returned ok.
Call to Resetting DNS recursion timeout () returned ok.
Call to Resetting client dns query timouts in config.dat () returned ok.
Call to DsGetDcName for local domain name () returned ok.
Call to Disabling RRAS routing () returned ok.
calling CNetCommit::DoRouter ().
Call to Clearing the default gateway on the LAN NIC () returned ok.
Call to Setting default gateway on the LAN NIC () returned ok.
Call to Setting DNS forwarders () returned ok.
Call to Preparing DNS for DNS listener reset () returned ok.
Call to Resetting DNS listeners () returned ok.
URL to the router is http://192.168.10.1
Call to Adding routers IP address to the intranet zone () returned ok.
Call to CNetCommit::DoRouter () returned ok.
Call to Configuring for router connection () returned ok.
calling ConfigureIE ().
calling SetInternetOptions ((null), (null), (null)).
calling InternetSetOptionA (NULL, INTERNET_OPTION_PER_CONNECTION_OPTION).
Call to InternetSetOptionA () returned ok.
Call to SetInternetOptions () returned ok.
calling InternetSetOption_AutodialConnection ().
Call to InternetSetOption_AutodialConnection () returned ok.
calling InternetSetOption_AutodialMode (4).
Call to InternetSetOption_AutodialMode () returned ok.
calling InternetSetOption_DisableAutodial (0).
Call to InternetSetOption_DisableAutodial () returned ok.
Call to ConfigureIE () returned ok.
Call to Configuring IE for router connection () returned ok.
Call to Notifying client setup for Default gateway as the router () returned ok.
calling RegisterMSBOExchangeBP (0).
Error 0x1 returned from call to RegisterMSBOExchangeBP().
Call to Unregistering the smtp sink () returned ok.
Call to GetLocalDomainName () returned ok.
Call to Reading in the local domain name () returned ok.
Local Domain Name is: samplesbs.local
Call to Enabling secure dynamic DNS updates () returned ok.
Call to Disabling RoundRobin for DNS server () returned ok.
Call to GetLocalDomainName () returned ok.
Call to Configuring DHCP options () returned ok.
Call to Disabling the RASUTO service () returned ok.
Call to Configuring w32time parameters for non-fulltime () returned ok.
Call to CNetCommit::Common () returned ok.
Call to CNetCommit::Commit () returned ok.
calling CRFireCommit::CommitEx (0x26a6a8).
calling CRFireCommit::ValidatePropertyBag (0x26a6a8).
Upnp URL is http://192.168.10.1:80/UPnPIPdesc.xml
Call to Initializing Upnp Device () returned ok.
Error 0x1 returned from call to HttpGetDeviceXML().
Error 0x80004005 returned from call to GetServiceConfigURL for WANPPPConnection().
Call to GetServiceConfigURL for WANIPConnection () returned ok.
Router supports WANIPConnection
Service config URL http://192.168.10.1/upnp/control/WANIPConnControl
Call to Reading web publishing selection () returned ok.
Call to Reading OWA publishing selection () returned ok.
Call to Reading RUP publishing selection () returned ok.
Call to Reading Monitoring publishing selection () returned ok.
Call to Reading OMA publishing selection () returned ok.
Call to Reading RPC publishing selection () returned ok.
Call to Reading Companyweb publishing selection () returned ok.
Call to Reading ROOT publishing selection () returned ok.
Web publishing selections:
OWA publishing: 1
RUP publishing: 1
Monitoring publishing: 1
OMA publishing: 1
RPC publishing: 1
Companyweb publishing: 1
ROOT publishing: 0
Call to CRFireCommit::ValidatePropertyBag () returned ok.
DeleteAllPortMappings 0
AddUpnpPortMapping with TCP 25 returned 0
AddUpnpPortMapping with TCP 1723 returned 0
AddUpnpPortMapping with TCP 3389 returned 0
AddUpnpPortMapping with TCP 21 returned 0
AddUpnpPortMapping with TCP 80 returned 0
AddUpnpPortMapping with TCP 443 returned 0
Call to CreateUpnpPortMappings () returned ok.
AddUpnpPortMapping with TCP 4125 returned 0
AddUpnpPortMapping with TCP 444 returned 0
Call to CreateUpnpPortMappings () returned ok.
Call to GetPrivateNICGuid () returned ok.
Call to GetIPAddress for private nic () returned ok.
Call to GetSubnetMask for private nic () returned ok.
RUP is published
Call to Fixing the inheritance for root dir () returned ok.
Call to Unpublishing the default web site () returned ok.
Call to Fixing the inheritance for companyweb dir () returned ok.
Call to Unpublishing companyweb () returned ok.
Call to Publishing /Exchange () returned ok.
Call to Publishing /ExchWeb () returned ok.
Call to Publishing /Public () returned ok.
Call to Publishing /ExAdmin () returned ok.
Call to Publishing RUP () returned ok.
Call to Publishing client help for RUP () returned ok.
Call to Publishing Monitoring () returned ok.
Call to Publishing OMA () returned ok.
Call to Publishing ActiveSync () returned ok.
Call to Publishing RPC () returned ok.
Call to Configuring RPC over HTTP () returned ok.
Call to Publishing Companyweb () returned ok.
Call to Publishing Companyweb _layouts () returned ok.
Call to Publishing Companyweb _vti_bin () returned ok.
Call to Publishing Companyweb _wpresources () returned ok.
Call to Notify RUP for OWA () returned ok.
Call to Notify RUP for Monitoring () returned ok.
Call to Notify RUP for RPC () returned ok.
Call to Notify RUP for Companyweb () returned ok.
Call to Restricting exhchangeoma to local server only () returned ok.
Call to Restricting ConnectComputer to local network only () returned ok.
Call to GetInternetServerName () returned ok.
Call to GetNetbiosDomainName () returned ok.
Call to NotifyProvisioning () returned ok.
Call to Limiting number of connections () returned ok.
Call to Sending RUP intro mail () returned ok.
Call to Saving web publishing selection () returned ok.
calling Set Web Publishing Rules (0x0).
Call to GetPrivateNICGuid () returned ok.
Call to WMIGetIPAddress () returned ok.
Call to IISConfig Set () returned ok.
Call to Setting default logon domain for OMA () returned ok.
Call to Setting Anonymous Access () returned ok.
Call to CRFireCommit::Commit () returned ok.
Calling CCertCommit::CommitEx
Calling CCertCommit::ValidatePropertyBag
Require SSL for OWA: 1
Require SSL for Remote Portal: 1
Require SSL for Monitoring: 0
Require SSL for OMA: 0
Require SSL for CompanyWeb: 0
Require 128 Bit Encryption: 1
Cert selection: -1
CCertCommit::ValidatePropertyBag returned OK
CCertCommit::EnableSSL returned OK
CCertCommit::RequireSSL returned OK
CCertCommit::NotifyRemoteUserPortal returned OK
Reading the Internet Server Name returned OK
Updating provisioning info returned OK
Sending RUP intro mail returned OK
CCertCommit::SaveUserSelections returned OK
CCertCommit::CommitEx returned OK
calling CEmailCommit::Commit (0x26a6c0).
calling CEmailCommit::ValidatePropertyBag ().
calling pdispPPPBag->QueryInterface (IPropertyPagePropertyBag, 0x6f4d4).
Call to pdispPPPBag->QueryInterface () returned ok.
calling ReadInt4 (0x26a6a8, DB5E5E45-3598-4F1D-8FF7-0ED35B9EB6A4).
Call to ReadInt4 () returned ok.
The out param of ReadInt4() is 1.
calling CValidatePropertyUtil.ValidatePropertyInteger ().
Call to CValidatePropertyUtil.ValidatePropertyInteger () returned ok.
calling ReadBool (0x26a6a8, F71526DD-9C19-4fe9-B7DB-FD4360909275).
Call to ReadBool () returned ok.
The out param of ReadBool() is 1.
calling CValidatePropertyUtil.ValidatePropertyBool ().
Call to CValidatePropertyUtil.ValidatePropertyBool () returned ok.
calling ReadBool (0x26a6a8, DB5E5E46-3598-4F1D-8FF7-0ED35B9EB6A4).
Call to ReadBool () returned ok.
The out param of ReadBool() is 0.
calling CValidatePropertyUtil.ValidatePropertyBool ().
Call to CValidatePropertyUtil.ValidatePropertyBool () returned ok.
calling ReadBool (0x26a6a8, 1DB7A50F-98F8-452f-868B-1AAC56585DD0).
Call to ReadBool () returned ok.
The out param of ReadBool() is 1.
calling CValidatePropertyUtil.ValidatePropertyBool ().
Call to CValidatePropertyUtil.ValidatePropertyBool () returned ok.
calling ReadInt4 (0x26a6a8, C9D8697B-0D4C-4767-8F1F-4CE415098774).
Call to ReadInt4 () returned ok.
The out param of ReadInt4() is 0x2.
calling CValidatePropertyUtil.ValidatePropertyLong ().
Call to CValidatePropertyUtil.ValidatePropertyLong () returned ok.
calling ReadString (0x26a6a8, 01637C90-B142-41C4-8520-6B2E0F891BE7).
Call to ReadString () returned ok.
The out param of ReadString() is samplesbs.com.
calling ReadBool (0x26a6a8, 1DB7A50F-98F8-452f-868B-1AAC56585DD0).
Call to ReadBool () returned ok.
The out param of ReadBool() is 1.
calling ReadInt4 (0x26a6a8, C9D8697B-0D4C-4767-8F1F-4CE415098774).
Call to ReadInt4 () returned ok.
The out param of ReadInt4() is 0x2.
calling CValidatePropertyUtil.ValidatePropertyHostName ().
Call to CValidatePropertyUtil.ValidatePropertyHostName () returned ok.
calling AttachCommiter.Validate(pPPPBag) (0x26a6a8, 01637C90-B142-41C4-8520-6B2E0F891BE7).
calling CAttachCommiter::Validate (0x26a6a8).
calling CAttachCommiter::Validate:ReadVariant (0x0).
calling CAttachCommiter::Validate:m_spDoc.CoCreateInstance (0x0).
calling CAttachCommiter::Validate:m_spDoc->loadXML (0x0).
Call to CAttachCommiter::Validate () returned ok.
Call to CEMailCommit::ValidatePropertyBag () returned ok.
calling pdispPPPBag->QueryInterface (IPropertyPagePropertyBag, 0x6f544).
Call to pdispPPPBag->QueryInterface () returned ok.
calling ReadInt4 (0x26a6a8, DB5E5E45-3598-4F1D-8FF7-0ED35B9EB6A4).
Call to ReadInt4 () returned ok.
The out param of ReadInt4() is 1.
calling GetDomainAndControllerNames ().
Call to GetDomainAndControllerNames () returned ok.
calling GetOrganizationName (\\just1.samplesbs.local, DC=samplesbs,DC=local).
Call to GetOrganizationName () returned ok.
calling GetFirstAdministrativeGroup (\\just1.samplesbs.local, DC=samplesbs,DC=local, samplesbs).
Call to GetFirstAdministrativeGroup () returned ok.
calling GetFirstRoutingGroup (\\just1.samplesbs.local, DC=samplesbs,DC=local, samplesbs, first administrative group).
Call to GetFirstRoutingGroup () returned ok.
Call to SetCookieAuthentication () returned ok.
Call to Enabling Wireless admin for OMA () returned ok.
Call to Setting SMTPSVC to start up automatically () returned ok.
calling CAttachCommiter::Commit (0x26a6a8).
calling CAttachCommiter::Commit:ReadVariant(GUID_ATTACH_CONFIG) (0x0).
calling CAttachCommiter::Commit:m_spDoc.CoCreateInstance (0x0).
calling CAttachCommiter::Commit:m_spDoc->loadXML (0x0).
calling CAttachCommiter::Commit:WriteConfigFile (0x0).
calling CAttachCommiter::WriteConfigFile (0x40000003).
calling CAttachCommiter::WriteConfigFile:_GetSBSInstallDir (0x0).
calling CAttachCommiter::WriteConfigFile:m_spDoc->save (0x0).
Call to CAttachCommiter::WriteConfigFile () returned ok.
calling CAttachCommiter::Commit:ShouldEnableSink (0x0).
calling CAttachCommiter::ShouldEnableSink (0x40000003).
calling CAttachCommiter::ShouldEnableSink:m_spDoc->selectSingleNode (0x40000003).
calling CAttachCommiter::ShouldEnableSink:spEnabledNode->get_text (0x40000003).
calling CAttachCommiter::ShouldEnableSink:m_spDoc->selectNodes (0x40000003).
calling CAttachCommiter::ShouldEnableSink:pUnsafeAttachsNodeList->get_length (0x40000003).
Call to CAttachCommiter::ShouldEnableSink () returned ok.
calling CAttachCommiter::Commit:pSink.CoCreateInstance(SecAttsEventSink) (0x0).
calling CAttachCommiter::Commit:pSink->Register (0x0).
Call to CAttachCommiter::Commit () returned ok.
calling EnableSMTPConnector (0x26a6a8, \\just1.samplesbs.local, DC=samplesbs,DC=local, samplesbs).
calling DoRecipientPolicy (0x26a6a8).
calling ReadString (0x26a6a8, 01637C90-B142-41C4-8520-6B2E0F891BE7).
Call to ReadString () returned ok.
The out param of ReadString() is samplesbs.com.
calling FinalValidateHostName (samplesbs.com).
Call to FinalValidateHostName () returned ok.
calling GetDefaultPolicy (0x6f3cc).
Call to GetDefaultPolicy () returned ok.
calling GetPostmasterProxyAddresses ().
Call to GetPostMasterProxyAddresses () returned ok.
calling UpdatePostmasterAddress (0x1eae530, samplesbs.com).
Call to UpdatePostmasterAddress () returned ok.
calling ResetRUS ().
calling spADs->SetInfo() ().
Call to spADs->SetInfo () returned ok.
Ignoring return value from call to spADs->SetInfo().
calling spADs->SetInfo() ().
Call to spADs->SetInfo () returned ok.
Ignoring return value from call to spADs->SetInfo().
Call to ResetRUS () returned ok.
calling SetDefaultPolicy (samplesbs.com).
calling SetDefaultSMTPRecipient (0x1e81058, samplesbs.com).
calling GetDefaultRecipientArray (0x1e81058, 0x6f358).
Call to GetDefaultRecipientArray () returned ok.
calling SafeArrayGetLBound (0x1e82288, 1, 0x6f350).
The out param of SafeArrayGetLBound() is 0.
calling SafeArrayGetUBound (0x1e82288, 1, 0x6f34c).
The out param of SafeArrayGetUBound() is 2.
calling SafeArrayGetElement (0x1e82288, 0, 0x6f308).
The out param of SafeArrayGetElement() is smtp:@samplesbs.local.
calling UpdateRUS (smtp:@samplesbs.local).
Call to UpdateRUS () returned ok.
calling SafeArrayPutElement (0x1e82288, 0, smtp:@samplesbs.local).
Call to SafeArrayPutElement () returned ok.
calling SafeArrayGetElement (0x1e82288, 1, 0x6f308).
The out param of SafeArrayGetElement() is SMTP:@samplesbs.com.
calling UpdateRUS (SMTP:@samplesbs.com).
Call to UpdateRUS () returned ok.
calling SafeArrayPutElement (0x1e82288, 1, SMTP:@samplesbs.com).
Call to SafeArrayPutElement () returned ok.
calling SafeArrayGetElement (0x1e82288, 2, 0x6f308).
The out param of SafeArrayGetElement() is X400:c=US;a= ;p=samplesbs;o=Exchange;.
calling SafeArrayCopy (0x1e82288).
Call to SafeArrayCopy () returned ok.
calling LogSet_gatewayProxy ().
Element: smtp:@samplesbs.local.
Element: SMTP:@samplesbs.com.
Element: X400:c=US;a= ;p=samplesbs;o=Exchange;.
Call to LogSet_gatewayProxy () returned ok.
calling pADs->SetInfo ().
Call to pADs->SetInfo () returned ok.
calling SafeArrayDestroy (0x1e82288).
Ignoring return value from call to SafeArrayDestroy().
Call to SetDefaultSMTPRecipient () returned ok.
Call to SetDefaultPolicy () returned ok.
calling KickRUS ().
calling spADs->SetInfo() ().
Call to spADs->SetInfo () returned ok.
Ignoring return value from call to spADs->SetInfo().
calling spADs->SetInfo() ().
Call to spADs->SetInfo () returned ok.
Ignoring return value from call to spADs->SetInfo().
Call to KickRUS () returned ok.
Call to DoRecipientPolicy () returned ok.
calling DoSmtpRelayIp ().
Call to DoSmtpRelayIp () returned ok.
calling ADsGetObject (LDAP://just1.samplesbs.local/CN=SmallBusiness SMTP connector,CN=Connections,CN=first routing group,CN=Routing Groups,CN=first administrative group,CN=Administrative Groups,CN=samplesbs,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=samplesbs,DC=local, IADs, 0x6f418).
Call to ADsGetObject () returned ok.
calling spADs->SetInfo ().
Call to spADs->SetInfo () returned ok.
calling spADs->SetInfo ().
Call to spADs->SetInfo () returned ok.
calling _RestartService (RESvc, 1).
Call to _RestartService () returned ok.
calling _RestartService (SMTPSvc, 1).
Call to _RestartService () returned ok.
Call to EnableSMTPConnector () returned ok.
Call to Getting NETBIOS domain name () returned ok.
NETBIOS domain name: samplesbs
Call to Enabling NTLM on /public () returned ok.
calling ReadBool (0x26a6a8, DB5E5E46-3598-4F1D-8FF7-0ED35B9EB6A4).
Call to ReadBool () returned ok.
The out param of ReadBool() is 0.
calling CommitPOP3 (0x26a6a8).
calling _StopService (MSPOP3Connector, 1).
Ignoring return value from call to _StopService().
Call to CommitPOP3 () returned ok.
calling _SetRegInt4Value (HKEY_LOCAL_MACHINE, SOFTWARE\Microsoft\SmallBusinessServer\Connectivity\ICW, Last_MailOption_Exchange, 1).
Ignoring return value from call to _SetRegInt4Value().
calling _SetRegInt4Value (HKEY_LOCAL_MACHINE, SOFTWARE\Microsoft\SmallBusinessServer\Connectivity\ICW, Last_DequeueOption_Exchange, 1).
Ignoring return value from call to _SetRegInt4Value().
Call to CEMailCommit::Commit () returned ok.
calling CNetCommit::SaveConfig ().
calling CEmailCommit::ValidatePropertyBag ().
calling pdispPPPBag->QueryInterface (IPropertyPagePropertyBag, 0x6f52c).
Call to pdispPPPBag->QueryInterface () returned ok.
calling ReadInt4 (0x26a6a8, DB5E5E45-3598-4F1D-8FF7-0ED35B9EB6A4).
Call to ReadInt4 () returned ok.
The out param of ReadInt4() is 1.
calling CValidatePropertyUtil.ValidatePropertyInteger ().
Call to CValidatePropertyUtil.ValidatePropertyInteger () returned ok.
calling ReadBool (0x26a6a8, F71526DD-9C19-4fe9-B7DB-FD4360909275).
Call to ReadBool () returned ok.
The out param of ReadBool() is 1.
calling CValidatePropertyUtil.ValidatePropertyBool ().
Call to CValidatePropertyUtil.ValidatePropertyBool () returned ok.
calling ReadBool (0x26a6a8, DB5E5E46-3598-4F1D-8FF7-0ED35B9EB6A4).
Call to ReadBool () returned ok.
The out param of ReadBool() is 0.
calling CValidatePropertyUtil.ValidatePropertyBool ().
Call to CValidatePropertyUtil.ValidatePropertyBool () returned ok.
calling ReadBool (0x26a6a8, 1DB7A50F-98F8-452f-868B-1AAC56585DD0).
Call to ReadBool () returned ok.
The out param of ReadBool() is 1.
calling CValidatePropertyUtil.ValidatePropertyBool ().
Call to CValidatePropertyUtil.ValidatePropertyBool () returned ok.
calling ReadInt4 (0x26a6a8, C9D8697B-0D4C-4767-8F1F-4CE415098774).
Call to ReadInt4 () returned ok.
The out param of ReadInt4() is 0x2.
calling CValidatePropertyUtil.ValidatePropertyLong ().
Call to CValidatePropertyUtil.ValidatePropertyLong () returned ok.
calling ReadString (0x26a6a8, 01637C90-B142-41C4-8520-6B2E0F891BE7).
Call to ReadString () returned ok.
The out param of ReadString() is samplesbs.com.
calling ReadBool (0x26a6a8, 1DB7A50F-98F8-452f-868B-1AAC56585DD0).
Call to ReadBool () returned ok.
The out param of ReadBool() is 1.
calling ReadInt4 (0x26a6a8, C9D8697B-0D4C-4767-8F1F-4CE415098774).
Call to ReadInt4 () returned ok.
The out param of ReadInt4() is 0x2.
calling CValidatePropertyUtil.ValidatePropertyHostName ().
Call to CValidatePropertyUtil.ValidatePropertyHostName () returned ok.
calling AttachCommiter.Validate(pPPPBag) (0x26a6a8, 01637C90-B142-41C4-8520-6B2E0F891BE7).
calling CAttachCommiter::Validate (0x26a6a8).
calling CAttachCommiter::Validate:ReadVariant (0x0).
calling CAttachCommiter::Validate:m_spDoc.CoCreateInstance (0x0).
calling CAttachCommiter::Validate:m_spDoc->loadXML (0x0).
Call to CAttachCommiter::Validate () returned ok.
Call to CEMailCommit::ValidatePropertyBag () returned ok.
calling CScriptUtil::RenameFile (config35.vbs).
Call to CScriptUtil::RenameFile () returned ok.
calling CScriptUtil::OpenFileToRead (temp.icw).
Call to CScriptUtil::OpenFileToRead () returned ok.
The out param of CScriptUtil::OpenFileToRead() is 0x77bebd00.
calling CScriptUtil::CreateFile (config35.vbs).
Call to CScriptUtil::CreateFile () returned ok.
The out param of CScriptUtil::CreateFile() is 0x77bebd40.
calling CopyUntilSection (0x77bebd00, 0x77bebd40).
Call to CScriptUtil::CopyUntilSection () returned ok.
calling WriteEmailSection (0x77bebd40).
Call to WriteEmailSection () returned ok.
calling CScriptUtil::CopyUntilSection (0x77bebd00, 0x77bebd40).
Call to CScriptUtil::CopyUntilSection () returned ok.
calling WriteSetPropertySection (0x77bebd40).
Call to WriteSetPropertySection () returned ok.
calling CScriptUtil::CopyUntilSection (0x77bebd00, 0x77bebd40).
Call to CEMailCommit::SaveConfig () returned ok.
Calling CCertCommit::SaveConfig
Calling CCertCommit::ValidatePropertyBag
Require SSL for OWA: 1
Require SSL for Remote Portal: 1
Require SSL for Monitoring: 0
Require SSL for OMA: 0
Require SSL for CompanyWeb: 0
Require 128 Bit Encryption: 1
Cert selection: -1
CCertCommit::ValidatePropertyBag returned OK
CCertCommit::SaveConfig returned OK
calling CRFireCommit::SaveConfig ().
calling CRFireCommit::ValidatePropertyBag (0x26a6a8).
Upnp URL is http://192.168.10.1:80/UPnPIPdesc.xml
Call to Initializing Upnp Device () returned ok.
Error 0x1 returned from call to HttpGetDeviceXML().
Error 0x80004005 returned from call to GetServiceConfigURL for WANPPPConnection().
Call to GetServiceConfigURL for WANIPConnection () returned ok.
Router supports WANIPConnection
Service config URL http://192.168.10.1/upnp/control/WANIPConnControl
Call to Reading web publishing selection () returned ok.
Call to Reading OWA publishing selection () returned ok.
Call to Reading RUP publishing selection () returned ok.
Call to Reading Monitoring publishing selection () returned ok.
Call to Reading OMA publishing selection () returned ok.
Call to Reading RPC publishing selection () returned ok.
Call to Reading Companyweb publishing selection () returned ok.
Call to Reading ROOT publishing selection () returned ok.
Web publishing selections:
OWA publishing: 1
RUP publishing: 1
Monitoring publishing: 1
OMA publishing: 1
RPC publishing: 1
Companyweb publishing: 1
ROOT publishing: 0
Call to CRFireCommit::ValidatePropertyBag () returned ok.
Call to CRFireCommit::SaveConfig () returned ok.
calling CNetCommit::SaveConfig ().
calling CNetCommit::ValidatePropertyBag ().
Call to Querying for the property bag () returned ok.
Property bag is not dirty, skipping validation
calling oScriptUtil.RenameFile ().
Call to oScriptUtil.RenameFile () returned ok.
calling oScriptUtil.OpenFileToRead ().
Call to oScriptUtil.OpenFileToRead () returned ok.
calling oScriptUtil.CreateFile ().
Call to oScriptUtil.CreateFile () returned ok.
calling oScriptUtil.CopyUntilSection ().
Call to oScriptUtil.CopyUntilSection () returned ok.
calling WriteNetworkSection ().
Call to WriteNetworkSection () returned ok.
calling oScriptUtil.CopyUntilSection ().
Call to oScriptUtil.CopyUntilSection () returned ok.
calling WriteSetPropertySection ().
Call to WriteSetPropertySection () returned ok.
Call to CNetCommit::SaveConfig () returned ok.
calling GetBOConnector ().
Call to GetBOConnector () returned ok.
calling spADs->PutEx (ADS_PROPERTY_CLEAR, msExchSmtpOutboundSecurityPassword).
Call to spADs->PutEx () returned ok.
calling spADs->SetInfo ().
Call to spADs->SetInfo () returned ok.

Sorry if my comments sounded like a flame... it's just that SBS gets me excited!

Jeff @
TechSoEasy
Lastly... the original question asked "Does anyone have an opinion based on experience with this?"

My opinion was based on the 22 SBS 2003 installations I've done over the past 10 months, including 5 migrations (2 from SBS2K and 3 from NT 4.0).  So, I provided exactly that.  

Jeff
And my experience is based on moving from a NON-SBS environment (which his environment is) to an SBS environment.  I didn't like it and don't recommend it - unless cost is an issue.
um, those would be the migrations from NT4.0 that I've done.
Avatar of JOE-BULLITT

ASKER

Thank you all very much for your wise insight and great advice!

I have decided to go ahead and get SBS2003, mainly due to pricing.  It is just I bit too much money to buy Server 2003 and Exchange 2003, plus licensing, when SBS2003 has it all for "one low price".

I know that I am going to have to deal with a domain migration and dcpromo's, but I don't think it should be too daunting.  Plus it will afford me the chance to put together my domain a little differently.

While there certainly are limitations with SBS, I don’t think that they will pose a problem for this organization.

Again, thanks very much to Leew, Harleyjd and TechSoEasy.  You really helped me a lot!

Cheers and I hope you all have a happy holiday season!
- Joe
You're welcome Joe!  Good luck with your project... be sure to check out http://sbslinks.com if you need further SBS info.  It really is a different ideaology.

Jeff @
TechSoEasy
TechSoEasy - since you seem to swear by and presumably know so much about SBS - Might I request you have a look at this question - I've got the same problem - I asked a question on it but no one posted an answer - or comment for that matter.  (Note: the solution I posted does not work for me).

https://www.experts-exchange.com/questions/21210680/SBS2003-POP3-connector-mail-'disappearing'.html

I'll try whatever you suggest to him and post another question (or see if my original one can be "undeleted") and give you points if you solve it...
As a followup to this long ago conversation, I thought y'all might like to see these two new items from Microsoft:  http://snipurl.com/itpro and http://snipurl.com/debunk

Jeff
TechSoEasy