You can always tell when an Enterprise person comes into SBSland.  The first thing they want to know “Do you have to use the wizards in Small Business Server?”  Well.  No.  If you really want to to do it manually… you could… but why in the world would you?


So I “could“ manually set up the firewall settings, and I “could“ setup the Exchange domain name, and I “could“ set up the SMTP virtual server settings and I could do the necessary settings for socket pooling and I could ……. but why?  When all I have to do is utilize the wizards inside of SBS?


Les [poet of the SBS group tonight] gave a great analogy…


It’s like being offered a ride to the place you want to go, but not knowing
what that place is or how to get there, saying “Oh no, I’ll wander around
and hope I find it instead.”

Accepting that ride requires you trust the driver. We’re giving the driver a
good recommendation, you can trust him/her/it.

Take the ride. Learn the route in the process, and then should you decide to
instead take the walk sometime, you’ll be able to do it.


If you are an Enterprise kind of person just picking up the Small Business Server platform, leave your Enterprise learning at the door.  Welcome.  You are in SBS Land now.  We do things with a little bit of trust and pixie dust around here.  Oh and a whole lot of scripts and wizards too  ๐Ÿ™‚

 

12 Responses to Gee Mom? Do I have to use the wizards?

  1. Adam says:

    I see tha analogy but it’s not quite right..

    We know what the place is AND how to get there, we just don’t want the ride.

    Personally, I’d be quite happy to use the ride (wizard) because if for any reason it doesnt work I know how to fix it manually ๐Ÿ™‚

  2. Sig Weber says:

    Well, I cannot 100 per cent agree with your statement:

    <quote>If you really want to to do it manually… you could…</quote>

    I am coming from the Enterprise world and I made the mistake to change the TCP/IP address on the NIC properties of SBS 2003 as I usually do on a real Windows Server 2003. However, not knowning where else the SBS NIC wizard puts the IP address settings it broke many things which led me into a reinstall (thanks to a virtual machine for testing no problem).

    At my second attempt I figured out that the IP address is scatered around at many places (IIS for example and also companyweb).

    Since there is *NO* documentation what those Wizards actually do behind the scenes you are *REQUIRED* to use them. Otherwise the risk that you break SBS 2003 is very high.

    Once you know that it’s ok to use the Wizards. However, my wish is that Microsoft would implement some kind of logging so that we could look up what each Wizard does behind the scenes.

    Otherwise it always leaves a bad taste for those guys coming from a strong Enterprise environment who know most of the products included in SBS 2003 from the ground up better than any Wizard can do.

    I still remember how the Windows 2000 DNS Wizard – not the SBS 2000 DNS Wizard – messed up the default DNS settings back in February 2000 when I installed my first production Windows 2000 Server. Since this day my reluctance for Wizards has not changed and will not until Microsoft tells me what each Wizard exactly does.

    Just my $.02US

  3. Adam says:

    Ah.. I remember with great fondness the issues suffered by many at the hands of the 2000 Server DNS wizard ๐Ÿ˜‰

  4. Susan says:

    You guys realize that there are log files for those wizards all over the place?

  5. Les Connor says:

    No, I think the destination is often generally unknown, and so is the route. So many times, we see people stop short of a proper implementation, and then head off running setup.exe from a variety of locations. This is understandable, because outside of the SBS experience, that is the way it’s done – that’s what we were trained on, that is what we know.

    Those that think they know the destination, and the route – are either experienced with SBS and *do* in fact know these things (and trust the wizards); most all others are in for a dose of frustration and a potentially humbling experience.

    I don’t like the term wizard, the name itself is part of the problem, I have a general distrust of anything ‘wizard’, that is a common sentiment that I believe most hold. In the case of the SBS wizards, they should be given a better name like XXX Configuration Tool.

    The biggest problem is the lack of publicly available *detailed* documentation is a problem that has been communicated to MS on more than one occassion. This could/should be resource kit or Technet type material. So far, TTBOMK the kind of detail requried only exists in internal manuals – but it does exist. We need to work on getting this stuff made available to a wider audience.

    The Configuration Tools (a.ka. wizards) are a marvelous piece of engineering and software development, anyone who gets to understand the inner workings will agree. But this in fact may be part of the hesitation on MSs’ part to make the details more widely available. After all, the ‘wizards’ are essentially what makes SBS what it is – they are the glue that binds the matrix. A desire to protect this collateral is understandable in some ways.

    So be careful when you say you don’t want the wizards, because without them, you haven’t really got SBS.

    Les.

  6. Les Connor says:

    One last thing.

    The wizards were developed with lots of input from all kinds of folks, including Enterprise folks. Putting all these server apps on one box obviously wasn’t a wizard driven process to start with.

    What we see today in SBS is the product of many many tedious manual configurations painstakingly recorded and scripted. At every new generation, more tedium is replaced by scripts, and more functionality is added.

    If you find yourself repeating configuration or monitoring tasks, then SBS dev wants to know about it – that would be a candidate for a new wizard, or an incorporation into an existing one.

    What we see in SBS is a direct result of what we have asked for. SBS delivers us from tedium.

    Les.

  7. Fred Andreone says:

    The wizards do work properly most of the time. If you select a PPPOE connection watch out.

    A good description of exactly what is configured is available by searching

    Small Business Server Help and Information for "Default Settings"

    Fred

  8. Les Connor says:

    >> If you select a PPPOE connection watch out.

    That would be a DDT. Use two nics and let a soho router handle the pppoe and your life will be good.

    Les.

  9. JC HARRIS says:

    Personally, coming from a distinctly NON techie background, having the wizards (Configuration Tools) allowed me, from SBS2K on, to learn what to do and how to do it. Just upgrading to SBS2K3 went smoothly until my newly hired assistant (a true techie) tried to mess with settings without knowing SBS and fried the whole thing. This made us go through an entire reinstall and ALMOST lost everyones email and files in the process (luckily I had made backups the day before going out of town). He has learned his lesson and how valuable these Config Tools are.

  10. Okay… a late comment, but this post keeps coming up in my Google searches when I need to prove a point to a non-believer. I thought I’d share what I have been telling others…

    "It’s okay if you don’t use the wizards in SBS, just make sure that you verify that the following 506 lines of instruction/modifications that the EICW generates (for instance). Oh, if you need to change just one small thing? Verify the lines again."

    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.

  11. David says:

    I am wondering how to get those wizards to work in an enterprise environment. That would be awesome