Grounding.co.za

Technology information for IT specialists
Welcome to Grounding.co.za Sign in | Join | Help
in Search

Tech Talk with Brett Maytom

January 2008 - Posts

  • How product version numbers work

    We have all seen version numbers in products, intuitively we understand that the bigger the number the newer the product.  However what  do all the parts of the number actually mean?  This post explains how version numbers work and what each part means.

    A typical version number is broken into four parts, separated by a period.  The number thus looks like:

    Major.Minor.Revision.Build

    Major

    The major version number indicates the products launch release.  The first version of a product is typically version 1.  This number however increases every time a new big release is made.  Typically a product team will increase the Major version when there are many changes in the application, these changes could be due to a change in underlying technology, architectures and framework.  Alternatively the product has changed and has many new features requiring the users to purchase an upgrade.

    When the major version changes the minor, revision and build are reset to 0.

    Minor

    The minor version indicates the addition of new features and enhancements to the product, however the changes are too few to warrant a complete change in version.  These enhancements may include nice to have features, features that were too late to be included in the major release.   Small enhancements to solve user navigation and interaction with the system.  This typically give the value-added benefits to users.

    Should there be many new changes that effectively change the products positioning, a major version increase should be considered.

    When the minor version changes, the revision and build are set to 0.

    Revision

    Revisions are bug fixes or commonly known as service packs, hot fixes.  Changes to processes and new features are not part of revisions and thus it is solely there to fix errors and bugs.   As bugs are fixed they are cumulated into a service pack and then released with a change in revision.

    When the revision changes, the build number is reset to 0.

    Build

    Each and every time the programmer or automated build process, recompiles the product the build number is increased.  Many larger development shops have automated build processes that run one or a few times daily.  Each time the build process is run, the build number is increased.

    Examples

    The following examples walk you through a typical version history of a product

    • V1.0.0.0 - This typically indicates that the code project was just created and never compiled.
    • V1.0.0.4565 - The developers have been working on the project and have built (compiled) the application 4565 times.
    • V1.0.1.0 -  The V1.0.0.x build has just gone into production and the developers are starting to work on bugs, i.e. Service Pack 1
    • V1.0.1.545 -  The developers have compiled and fixed bugs, the current build is 545.
    • V1.0.2.0 -  The V1.0.1 service pack has gone into production and the development team have started working on Service Pack 2.
    • V1.1.0.0 -  Additional features have been requested by the users, however this does not warrant a complete change or rewrite in the application.  V1.1 is started and developers start building until release.
    • V1.3.2.789 - This indicates the Version 1.2  Service Pack 2 and build 789.
    • V2.0.0.0 -  The underlying technologies, development tools or complete overhaul of business processes are required.  This results in a change in the major version number, to version two.
  • Resolving a DCOM Error 10016 (Local Activation) on SharePoint

    I have tried to figure out exactly when the DCOM Error occurs when installing SharePoint and have found it to be when installing an new machine with SharePoint on it.  However interestingly it does not occur when applying other applications like office, visual studio (on a development box or Virtual Machine).

    I have also come across this error some times when activating features that require special access to resources (such as web.config).

    Error in the browser

    Your browser will show an "Unknown Error", which is exceptionally descriptive.  The good part with this particular error is that it appears in the event log.  (I have had some that are logged no where).

    image 

    Error in Event Viewer

    Event Type:    Error
    Event Source:    DCOM
    Event Category:    None
    Event ID:    10016
    Date:        2008/01/08
    Time:        07:07:52 AM
    User:        SERVERNAME\Service_OSS_DB
    Computer:    SERVERNAME
    Description:
    The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID
    {61738644-F196-11D0-9953-00C04FD919C1}
    to the user SERVERNAME\Service_OSS_DB SID (S-1-5-21-2086464777-213479546-628798872-1016).  This security permission can be modified using the Component Services administrative tool.

    Solving the error

    Now when SharePoint is installed, and the Configuration site created, the service account for the database is not given rights to launch the DCOM component {61738644-F196-11D0-9953-00C04FD919C1}, to save you a lot of pain in searching the registry under CLSID it is the IIS WAMREG Admin Service.  You need to run dcomcnfg and give the service account used (user in the Event viewer error) rights to Launch and Activate IIS WAMREG Admin Service.

    1. Click Start, Choose Run.
    2. Type in dcomcnfg and click OK.
    3. Expand Component Services \ Computers \ My Computer \ DCOM Config.
      image
    4. Scroll down and find IIS WAMREG admin Service.
      image
    5. Right click IIS WAMREG admin Service, choose Properties.
    6. Click the Security tab.
      image
    7. In Launch and Activation Permissions,  Click the Edit Button.
      image
    8. Click the Add... button.
    9. Type in the name of the Service Account for your Configuration Service, mine was Service_OSS_DB.
      (You may also want to add your application pool service accounts)
      image
    10. Click Ok.
    11. Give your accounts allow Local Launch and allow Local Activation rights.
      image
    12. Click OK.
    13. Click OK.
    Posted Jan 10 2008, 10:05 PM by Brett with 3 comment(s)
    Filed under: ,
  • Giving Anonymous Access to Users on a SharePoint Site

    Anonymous access basically allows users to access the web site and view content.  You are also able to give anonymous users rights to contribute to lists, complete surveys on the site, with one restriction in libraries such as a document library.  Only authenticated users can add files to a library.

    There are three basic steps in enabling anonymous access in the site

    1. Configure Internet Information Server (IIS) to allow anonymous access
    2. Enable Anonymous access on the Web Application's Authentication Providers.
    3. Give anonymous access permissions on pages, lists and libraries
    4. Apply security on Libraries and Lists

    Step 1- Configure Internet Information Server (IIS) to allow anonymous access

    When you create a web application in SharePoint, it by default sets IIS has set the Directory Security to Integrated Windows Authentication.  You are going to have to Enable Anonymous access.  In IIS anonymous users still need to have permissions and this is done by IIS \ Windows using the user name IUSR_SERVERNAME.  Any file level security needs to be assigned and given to this user account.

    1. Open the Internet Information Services (IIS) Manager console from your Administrative Tools.
    2. Expand your web server tree node.
    3. Expand the Web Sites node
      image
    4. Right click the public web site and choose Properties from the context menu.
    5. Click the Directory Security Tab.
      image
    6. Click the Edit... button.
      image
    7. Check the Enable anonymous access box.
    8. Confirm the User name and password, typically it is IUSR_SERVERNAME (where servername is you machine name).
    9. OPTIONAL. You may want to disable Integrated Windows authentication as not to allow logging on with NTLM (or Kerberos).
    10. Click OK.
    11. Click OK.
    12. The Inheritance overrides box may appear.
      image
    13. Click Select All.
    14. Click OK.
    15. OPTIONAL.  You may want to set NTFS file and directory permissions for the IUSR_SERVERNAME account.

    Step 2 - Enable Anonymous access on the Web Application's Authentication Providers

    1. Open up your SharePoint Central Administration Site
    2. Click the Application Management tab.
    3. Click the Authentication providers link.
      image
    4. Click the zone name to allow anonymous access on, my lab was Default.
      image
    5. Check Enable Anonymous Access.
      image
    6. Click Save.

    Step 3 - Allow anonymous users to access the site.

    This is the part where you may have some problems.  NOTE:  Depending whether you have multiple zones,   you need to make sure you log onto the Site where you want to give anonymous access.  I.E.  should you have two zones (Internet and Private Network) and you want to give anonymous access to the Internet site,  you will have to log onto the Internet Site with and administrative account.

    1. Open your web site where you wish to apply anonymous access.
    2. Log on with an administrator account.
    3. Click Site Actions.
    4. Click Site Settings.
    5. Click the Advanced Permissions link.
      image
    6. Click Settings
    7. Click Anonymous access from the menu.
      image
    8. For Simplicity, choose Entire Web Site
      image
    9. Click OK.

    Step 4 - Apply security on Libraries and Lists

    This is very similar to giving access to a site in Step 3, however you do it on a list

    1. Navigate to  your list / library
    2. In the menu choose List Settings.
    3. Choose Permissions for List / Library.
      image
    4. Click Anonymous actions
    5. Change to what access you want
    6. Click OK.
    Posted Jan 10 2008, 01:17 PM by Brett with 2 comment(s)
    Filed under:
  • Setting up Dual Authentication on Windows SharePoint Services 3.0 (Forms and NTLM)

    A client has just asked me to help them setup a WSS server that will be hosted on the Internet,  they do want to create a membership based portal and I suggested that they use the ASP.NET membership system and I would demonstrate a prototype.  The second objective was that their internal users logging onto the domain will also need to access the same site using their domain accounts, this can be achieved on SharePoint by using zones.  Now I chose a forms based authentication (FBA) mechanism, but you could any other.

    In a production environment, I would opt to install both on to a machine even though it will be primarily Internet\Extranet facing, even if it is using the local directory services.  This gives a backdoor to managing the site should you have problems with the forms authentication mechanism (or other).

    Now I searched the web and found many articles on Forms Authentication for WSS and MOSS, however many of them were incomplete and after several attempts of butchering their solutions, I managed to get it under wraps.  I hope this helps you out.

    Goal
    1. Internet users logon to a membership database using forms based authentication (FBA).
    2. Internal users logon to the domain.*
    3. The SharePoint site is not duplicated for internal and external, thus they share the same site and resources.

    * Note if you do not want to use a domain, you can logon to the local machines directory services.

    image

    Now I will discuss a easy but vital key point.  First, I am going to create a web application for the public facing site, when the web application is created I will use host headers to indicate the site name, this will leave us with a default zone.  Then the internal site will be added by extending the web application, to with a different host header.

    image

    Create a web application, at this point I did a standard NTLM site and did not configure anything else.

    My test configuration network

    The basic software and operating systems

    • Windows Server 2003 R2 Service Pack 2, installed as a member in a test domain
    • SQL Server 2005 Developer Edition
    • Internet Information Server
    • Windows SharePoint Services 3.0 installed as Farm (with one machine)
    • WSS 3.0 SP1

    Service accounts (GROUNDING is the domain)

    • GROUNDING\Service_SQL
    • GROUNDING\Service_OSS_DB
    • GROUNDING\Service_OSS_AppPool

    Summary of the process

    This is quite a lengthy process and very sensitive, so one small error and you will have hours of troubleshooting.  I presume that the basic operating systems and SharePoint has been set up.   
    1. Create the Service Accounts.
    2. Install SQL and SharePoint.
    3. Install ASP.NET SQL Membership and Role databases.
    4. Create a few roles and user accounts.
    5. Setup DNS Name Resolution.
    6. Provision a Web Application for the Public Facing Site.
    7. Provision a Site Collection and Root Site.
    8. Extend the web application for internal users.
    9. Give rights to Service accounts in Membership database.
    10. Test both sites by viewing them.
    11. Configure the public site to use the membership provider.
    12. Configure the Central administration site and internal site to use the membership provider.
    13. Reset IIS
    14. Give Site Collection administrative rights to the admin user.
    15. Test

    Step 1 - Create the Service Accounts

    You will need to create the following service account in your domain

    • Service_SQL.  The account that SQL Server service account will use.
    • Service_OSS_DB.  The account that the SharePoint will use for the configuration database.
    • Service_OSS_AppPool.  The account used for the Application Pool of the site. (I used one account for both zones).

    Step 2 - Install SQL and SharePoint

    Now I am not going to walk you through this, you should be able to do this yourself.   Neil has a blog post on how to install SharePoint.

    1. Install SQL Server. In my test lab, I used the account Service_SQL for the service accounts in SQL server and installed the database engine only. 
    2. Install SharePoint
    3. Create a farm with as single server, I really do not like working with SQL Server Embedded Edition (SSEE).  During the install steps I created the necessary configuration databases and used the service account Service_OSS_DB.
    4. Install any service packs and hot fixes.  Now since SharePoint Service Pack 1 is out, install it.

    Step 3 - Install ASP.NET SQL Membership and Role databases

    In this step I will go through the process of installing the standard ASP.NET SQL Membership database.  Now this is going to be the easiest for now, however in the future you could write your own membership and role providers using the .NET framework and some serious C# code.  Also, this lab is using the SQL provider, however there are other membership providers available for you to use. 

    1. Execute the following program:
      C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe
    2. The ASP.NET SQL Serer Setup Wizard will display
      image
    3. Click the Next> button.
    4. Choose the Configure SQL Server for application services option.
      image 
    5. Click the Next> button.
    6. In the Server textbox, type in the SERVERNAME (name of your SQL server).
    7. Specify the Authentication method to SQL Serer Authentication, change if yours is different.
    8. Type in the name of the database (existing or new) for the membership system.  
      In this example I choose to create to create a database called SharePoint_Membership.
      image
    9. Click the Next> button.
    10. Review the confirmation page and click the Next> button.
      image
    11. The install takes a few seconds to run, the confirmation step is displayed
      image
    12. Click the Finish> button.

    Step 4 -  Create a few roles and user accounts

    There are various ways to do this, and some pretty easy ones if you have Visual Studio installed.  However I am going to do this by running a SQL script.  In this step I am going to create the following.  Now an important lesson is that the membership database you created can be used by many different applications.  Each application can have its own roles, users and members and is uniquely seperated by an "application name". 

    Important.  When using membership you must consistently use the same "application name" when configuring the users, roles, web.config files and any other configuration that membership is involved in.  My application will use an application role called SharePoint_Membership.

    Users

    • Admin
    • TestMember1
    • TestMember2

    Roles

    • Administrators
    • Members

    Role / User

    • Admin -> Administrators, Members
    • TestMember1 -> Members
    • TestMember2 -> Members
    1. Open SQL Server Management Studio and connect to the membership database
    2. Copy the script below, and make any changes you wish

    USE SharePoint_Membership

    GO

    -- -----------------------------------------

    -- Create Roles

    EXECUTE [dbo].[aspnet_Roles_CreateRole]

                'SharePoint_Membership',

                'Administrators'

    EXECUTE [dbo].[aspnet_Roles_CreateRole]

                'SharePoint_Membership',

                'Members'

    -- -----------------------------------------

    -- Create Users

    DECLARE @now datetime

    SET @now= GETDATE()

    EXECUTE [dbo].[aspnet_Membership_CreateUser]

          'SharePoint_Membership'

          ,'Admin'

          ,'Pa$$w0rd'

        ,''

        ,'admin@grounding.co.za'

        ,''

        ,''

        ,1

        ,@now

        ,@now

        ,0

        ,0

        ,null

     

    EXECUTE [dbo].[aspnet_Membership_CreateUser]

          'SharePoint_Membership'

          ,'TestMember1'

          ,'Pa$$w0rd'

        ,''

        ,'testmember1@grounding.co.za'

        ,''

        ,''

        ,1

        ,@now

        ,@now

        ,0

        ,0

        ,null

     

    EXECUTE [dbo].[aspnet_Membership_CreateUser]

          'SharePoint_Membership'

          ,'TestMember2'

          ,'Pa$$w0rd'

        ,''

        ,'testmember1@grounding.co.za'

        ,''

        ,''

        ,1

        ,@now

        ,@now

        ,0

        ,0

        ,null

     

    -- -----------------------------------------

    -- Add Members to Roles

    EXECUTE [dbo].[aspnet_UsersInRoles_AddUsersToRoles]

          'SharePoint_Membership'

          ,'Admin'

          ,'Administrators'

          ,@now

     

    EXECUTE [dbo].[aspnet_UsersInRoles_AddUsersToRoles]

          'SharePoint_Membership'

          ,'TestMember1'

          ,'Members'

          ,@now

     

    EXECUTE [dbo].[aspnet_UsersInRoles_AddUsersToRoles]

          'SharePoint_Membership'

          ,'TestMember2'

          ,'Members'

          ,@now

     

    Step 5 - Setup DNS Name Resolution

    The next step is to ensure that your name resolution works for your internal network as well as your public network.  Ensure that you can ping both the servers.  Now, if you are just playing around on a virtual machine and not on a "real" network you could cheat by editing the host file in the c:\WINDOWS\system32\drivers\etc\ directory

    Important.  This is a quick cheat, however you should make sure that DNS is properly configured in your production environment both for internal and external networks.

    1. Click Run from the Start Menu
    2. Run the following:
      notepad c:\WINDOWS\system32\drivers\etc\hosts
    3. The host file will appear, add the following two lines or the addresses you chose
      127.0.0.1    www.grounding.co.za
      127.0.0.1    portal.grounding.local
    4. File, Save the file.
    5. Exit Notepad

    Step 6 - Provision a Web Application for the Public Facing Site

    Now the first step is to provision the public web site in SharePoint, this post is not a tutorial on provisioning, however there are a few important steps to go through

    1. Open the Central Administration Web Site in your browser.
    2. Click on the Application Management tab.
    3. Click the Create or extend Web application link.
      image
    4. Click the Create a new Web application link.
      image
    5. Choose the Create a new IIS web site, and give it an appropriate name.
      image
    6. Change the port (if needed).
    7. Important.  In the Host Header textbox, type in the name of the URL that users will use to connect to the site.  It is important that users can resolve the name.
      image 
      Take note of the path!
    8. In the Load Balancing URL, remove :80.
      Take note that this is the "Default" zone.
      image
    9. Configure the application pool to use.
      In my lab, I create ad new application pool using the service account Service_OSS_AppPool.
      image
    10. Configure the content database.
      image
    11. Check your settings and Click the OK button

    Your web application is provisioned

    Step 7 - Provision a Site Collection and Root Site

    Now what is the point of a a web application without a site,  Provision yourself a site collection.

    Step 8 - Extend the web application for internal users

    You should have a site up for the public facing site, albeit using NTLM for authentication.  The next step is to create and extend the web application for internal users.

    1. Open the Central Administration Web Site in your browser.
    2. Click on the Application Management tab.
    3. Click the Create or extend Web application link.
      image
    4. Click the Create a Extend an existing Web application link.
      image
    5. Change the Web Application to the public facing web application created two steps ago by clicking on the drop down list.
      image
    6. For the IIS Site, choose to create a new IIS web site and give it a appropriate name for the internal web site.
    7. Change the port if needed for the internal site, I left mine at 80.
    8. Important.  In the Host Header textbox, type in the name of the URL that internal users will use to connect to the site.  It is important that users can resolve the name.
      image
    9. In the load balancing URL, remove the :80
    10. Change the load balancing zone to Intranet.
      image
    11. Check your settings and click on Ok.

    The extended web application will be provisioned.

    Step 9 - Give rights to Service accounts in Membership database

    Both the Central Administration Site, and your Web Application for your site run under different service accounts.  You are going to have to logon to SQL server and give them rights in the SharePoint_Membership database. This step is vital and if you do not follow this, you should get an "Unknown Error" when connecting to the site,  pretty descriptive. 

    Basically in SQL add the user GROUNDING\Service_OSS_Db and GROUNDING\Service_OSS_AppPool to the SharePoint_Membership database.  Add them to the roles aspnet_Membership_FullAccess and aspnet_Roles_FullAccess roles.

    1. Log onto the SQL Management Studio
    2. Connect to your (Local) server or wherever the server resides.
    3. Expand the SharePoint_Membership database
    4. Expand the Security
    5. Right click users, and choose New User...
    6. Add the GROUNDING\Service_OSS_Db account
    7. Give it aspnet_Membership_FullAccess role rights
      (Careful now, not schema owners!)
    8. Give it aspnet_Roles_FullAccess role rights
      (Careful now, not schema owners!)
    9. Give the user a name and save it.
    10. Do it again for the for the GROUNDING\Service_OSS_AppPool  user account.

    It is important that you make sure all Application pool and service accounts used by SharePoint have access to the membership database, note that if you have SSP, they need access too for security authorisation.

    Step 10 - Test both sites by viewing them

    Just to make sure you are on the right track and have not messed up anything, test viewing the site using both internal and external urls

    1. Open up a browser
    2. Navigate to http://www.grounding.co.za (or yours) to view the public site.
    3. Logon with your standard windows account (for now)
    4. Confirm, site should appear.
    5. Navigate to http://portal.grounding.local (or yours) to view the internal site.
    6. Logon with your standard windows account
    7. Confirm, the same site should appear as step 4.

    Step 11 - Configure the public site to use the membership provider

    This is now the tricky part, so pay careful attention!!!! or you will have a nightmare resolving any bugs.  In this section we will edit the web.config file to enable membership.  This is a bit of a butcher on editing the web.config, as you should be provisioning it properly but hey it works.  Be careful if you  have multiple servers in the farm as this will need to be done on all servers.  (Perhaps one day I will write a blog on how to do this properly).

    1. Determine the folder of the public web site, mine is
      C:\Inetpub\wwwroot\wss\VirtualDirectories\www.grounding.co.za80
      (If you did not make a note of the site, open up the IIS Manger and view the properties of the web site.  It is on the Home Directory tab).
    2. Open the folder in Windows Explorer.
    3. Make a backup of the web.config file!
      (You may be really, really sorry if you don't)
    4. Edit the web.config file
    5. Under the configSections element, place a connectionString element (code below) with the connection string details to the membership database
      image 

      NB:  Change the Data Source to your SQL server.

      <connectionStrings>
          <remove name="AspNetMembershipConnectionString"/>
         
      <add name="AspNetMembershipConnectionString"
              
      connectionString="Data Source=SERVERNAME;Initial Catalog=SharePoint_Membership; Integrated Security=SSPI" />
      </connectionStrings>
    6. In the <system.web> element, normally under the <authentication> child element, place the following XML
    7.     <membership defaultProvider="AspNetMembershipProvider">

            <providers>

              <remove name="AspNetMembershipProvider" />

              <add

      name="AspNetMembershipProvider"

                connectionStringName="AspNetMembershipConnectionString"

                enablePasswordRetrieval="false"

                enablePasswordReset="true"

                requiresQuestionAndAnswer="false"

                applicationName="SharePoint_Membership"

                requiresUniqueEmail="false"

                passwordFormat="Hashed"

                maxInvalidPasswordAttempts="5"

                minRequiredPasswordLength="1"

                minRequiredNonalphanumericCharacters="0"

                passwordAttemptWindow="10"

                passwordStrengthRegularExpression=""
                type="System.Web.Security.SqlMembershipProvider,System.Web,Version=2.0.0.0,
                      Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a
      " />

            </providers>

          </membership>

          <roleManager enabled="true" defaultProvider="AspNetRoleProvider">

            <providers>
              <remove name="AspNetRoleProvider" />

              <add name="AspNetRoleProvider"

                connectionStringName="AspNetMembershipConnectionString"

                applicationName="SharePoint_Membership"

                type="System.Web.Security.SqlRoleProvider,System.Web,Version=2.0.0.0,
                      Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a
      " />

            </providers>

          </roleManager>

      Note that the type="......." must be on one line in the file (formatting issue)

    8. Find the PeoplePickerWildcards element and change it to
    9.     <PeoplePickerWildcards>

            <clear />

            <add key="AspNetMembershipProvider" value="%" />

            <add key ="AspNetSqlMembershipProvider" value ="%" />

          </PeoplePickerWildcards>

    10. Save the web.config file
    11. Open the Central Administration Web Site in your browser.
    12. Click on the Application Management tab.
    13. Click on the Authentication providers link.
      image
    14. Click the Default Zone link.
      image
    15. Change the Authentication Type to Forms.
      image
    16. Type in the name of the Membership provider, AspNetMembershipProvider.
      image
    17. Type in the name of the Role manager, AspNetRoleProvider.
      image
    18. Click Ok.

    Step 10 - Configure the Central administration site and internal site to use the membership provider

    You typically would be using the Central Administration site and internal site (portal.grounding.co.za) to manage and configure the site;  part of your management will include applying security to users.  However these two sites do not know about the membership database, so you are going to have to add the membership settings to their web.config database, but DO NOT change the authentication provider.

    This is a bit of a necessary pain,  in the central administration and internal site you will be selecting users and applying security using the people picker.  If you do not do this, you should get "No exact match was found." errors :

    image

    1. Make a backup of the web.config files!
    2. Edit the web.config files exactly the same way as you did in Step 11 - Configure the public site to use the membership provider.
    3. There is only one difference in the web.config file though, find the roleManager element and change the defaultProvider ONLY!
    4.     <roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider">

    Do this for both the Central Admin and Internal site

    Step 11 - Reset IIS

    The easiest way is to restart the web server, however you may wish to Recycle the application pools.

    1. Run IISRESET /noforce

    Step 12 - Give Site Collection administrative rights to the admin user

    For the purposes of this lab, I will make the membership user admin a Site Collection administrator.  If you do not do this and you logon to the public site (currently it does not allow anonymous access), you will get an error that looks like:

    image

    This error basically indicates that the user authenticated correctly, however is not authorised to view the page.

    1. Open the Central Administration Web Site in your browser.
    2. Click on the Application Management tab.
    3. Click the Site collection administrators link.
      image
    4. In the Secondary site collection administrator text box, type admin.
    5. Click Check names button.
      The admin username should resolve, and be underlined:
      image
    6. Click Ok.

    Step 13 - Test

    1. Open your browser, connect to the internal site and logon with a NTLM user account
      image
      image
    2. Open your browser, connect to the public site and logon with the admin membership user
      image
      image

    Out of scope steps

    • Make your public site visible to anonymous users.
    • Give rights to other members
    Posted Jan 09 2008, 10:48 PM by Brett with 10 comment(s)
    Filed under:
  • Building slipstreamed images for easy setup using nLite

    In the past few weeks I have taken the opportunity to build some new Virtual Machines for demonstrations in class.  Also, I thought I would give it a bash to use VMware, so far I am VERY impressed even though I have had a few frustrating moments caused by ID10T errors.  In the past year I have lost count on how many times I have installed Server into a VM, mainly because I was not happy with the base images I had.

    The install process has been long, installing the O/S patching it with all the service packs and then hot fixes.  I have never been too perturbed by this until the past few days as it is time consuming and the constant request to insert service pack disks.

    My goal was to

    • Install Windows Server 2007 R2 Enterprise
    • Install Service Pack 2
    • Install all hot fixes
    • Install IE7
    • Install .NET 2.0, 3.0, 3.5
    • Apply .NET service packs
    • Install some of my own utilities

    Slipstreaming

    Enter a new world for me and probably old for many.  Slip streaming is basically applying service packs and hot fixes to an existing installation CD.  When you install the product again, all the service packs and hot fixes are already included.  In searching the web on slipstreaming, I came across this awsome little tool called nLite, I must say it is really professional.  I salute the guys who wrote and support nLite, it is a killer bit of free software, Awesome work guys!.  If you can use it and your company can support these guys with a donation, please do.  Effort at this level needs support.

    So I created as slipstreamed Windows Server 2003 R2 + Service Pack 2 + Hot Fixes CD to install my VPC's.  These were the steps I took

    1. Take your Windows 2003 Install CD and copy its contents to a folder somewhere.
    2. Download Service Pack 2
    3. Download Hot Fixes
    4. Copy other utilities into the root folder of step 1
    5. Download nLite from http://www.nliteos.com/ 
    6. Run nLite
      1. Choose your base folder of I386
      2. Add Service Pack
      3. Add Hot Fixes
      4. Choose install options
      5. Burn to .iso as bootable CD 

    nLite does all the magic and you end up with a bootable .iso with a slipstreamed windows 2003 (or any other operating system supported by nLite)

    Now simply, create a virtual machine and boot off your new .iso.  A windows setup runs as per normal with all the service packs and hot fixes applied. 

  • Helpful Virtual PC Utilities

    I build a fair amount of Virtual PC's for training classes and labs and have compiled a list of useful utilities for you to download and add to your arsenal of tools.  I hope this helps you.

    Note that I will update this post now and then with newer tools.

    .NET Frameworks

    Database and XML

    Utilities

     

    Build a Utility CD

    I normally use CDImage.exe to build an .iso file with all the utilities on it and then mount the iso and install what I want for the VPC.

    Posted Jan 02 2008, 09:43 AM by Brett with no comments
    Filed under:
  • About the grounding community

    I have chatted to many folk about communities and one very interesting chat to Rauri Plint last year at a MCT braai.  After the chat I thought I would post about this community, the goals and some of the philosophies of what we are trying to achieve.  Here is my views on communities, grounding and our philosophy.

    History

    About three and a half years back I started blogging on anything on my mind, technology, work, politics, philosophy and the odd rant when I received shocking service. Blogging in general became quite addictive. About a year and a few months ago, I saw a feature on my blog site that I wanted to activate and after many automated response clicks on Yes I managed to destroy the content of the site.  "Damn, I'm a techie and why should I do backups after all it is just my ramblings" ...  It's amazing how attached one gets to blogging and this blew the wind out of my sails, I did not blog for a year.

    In June 2007, I decided to start again as I faced the reality that I actually enjoyed it and would have to accept the losses.  This time however, its not about me but about a community. (Before you ask, I have a daily back by the service provider and then I make local backups once a week just in case!)

    My definition of a community

    As people, we are social by nature and want to engage in discussions where there is a common interest or circumstance.  The objective is to learn, share, communicate, build relationships with other like minded people.  As time moves on many of these acquaintances will lead to friendships. Successful communities are not about money and profit, it is about humanity, common interests and social interaction.   It does not matter if the community is professional, social, an interest group or of a tactical nature.  There are a few things that I observe on successful communities, that is it is not about greed, manipulation, hidden agendas and money.  Is about people!

    The people dynamic really fascinates me as every community will have very active members that are passionate about the subject and actually drive and voice of the community. There are also other people who are regulars and are heavily involved in the community, the participate in discussions, answer and give advice where they can and are occasionally raise the odd discussion; these regular people become core pillars in the community.  Although they are active in the community they just want to be part of it and have no need to run or administer the community.  Other people will casually be involved on a need basis, this too is perfect as it adds topical content to the community.  Some community members may be present but not involved, yet they are always there gaining knowledge and keeping themselves in loop, these members are observers.  Of course you get people that simply don't like it.   Communities draw different characters, some spice things up in weird and wonderful ways, then there are the ones that everyone loves, also the ones we love to hate. 

    This diversity and opinions adds variation and different view points on discussion, vital to a successful community.  When a discussion is started, some consensus is made and even the odd bit of disagreement rears.  Should it be a general consensus, everyone knows they are on the right track or what is the right track. However, when there is disagreement, it simply highlights the different needs and viewpoints of different people, this is also great as the community learns that multiple opinions exist.

    I have also been involved in many online communities over the past few years and have been privileged to have met some great and wonderful people that are still and will be good friends for years to come.  In these communities my personal knowledge has grown tremendously, some things I learnt easily whilst others I learnt the hard way.  It has been an ideal testing ground for many topics and ideas.

    The training game

    As a technical IT trainer, I meet new people constantly in a classroom environment and there are some blatant trends that many, many students are faced with, let me share some

    • 99% of my students want to learn, there is the odd idiot that "has" to be there.
    • 99% of my students are really nice people, and the odd person that is just plain nasty.
    • Most students attend training to resolve a tactical business problem.
    • Most students have been thrown into the deep by their company.
    • The student is then expected to be the "expert" and make it work when they get back.  Courses cover concepts and teach how to.  However, no one will be an expert after a few days training.  This is going to take time, effort and lots of mistakes ... "welcome to the real world".
    • Many courses cover huge subject areas to give content coverage giving better value-for-money.  Yet many courses lack in lengthy detail and rely on students to figure it out.  It's more of a point in the right direction and conceptually focused.
    • Many students don't know the products available in the market and thus many companies are using the wrong tools to get a job done.
    • The general skill level of people is high.
    • In a course, more complex topics do not sink in the first time. The topics are explained and the labs done successfully, everyone seems to understand the topic; yet it is not "really understood" as there are other decision factors and aspects that come into play. Different scenarios may take different approaches, experience is lacking.
    • There is a need to ask questions after the course.
    • People want to get "free" experience so that they don't make the same mistake.

    These trends need to be addressed in a community that extends past training and courses.

    Needs and Challenges

    In a technical community we are also faced many other needs and some challenges. As South African IT specialists, there are some challenges we face

    • Business immaturity
    • Small budgets, but huge expectations
    • General weak business analysts and project managers (If you are reading blogs, your are NOT one)
    • Attitudes of get every cent worth out of assets, customers, suppliers and staff even to the other parties detriment.
    • Push technology to the limit.
    • Make it work, even if it is totally wrong (my favourite)
    • IT is typically seen an expense, not a business driver
    • Staff are generally pushed beyond limits
    • Bandwidth ... enough said!
    • Companies don't want to spend money on training
    • Staff are expected to learn by themselves, welcome to deep end

    In discussion over lunch, coffee and beers with many people these are some needs

    1. Be fed with new information
    2. Information on Real world experience
    3. What is happening out there and what are other people doing
    4. Kept in the technology loop
    5. Learn, learn and learn
    6. Get advise
    7. Help solve a small problem or pointers in the right direction
    8. Build contacts and foster relationships
    9. Learn tips and tricks
    10. Access to a pool of skilled professionals
    11. News
    12. User groups, talks and events
    13. Socialising with other people with same interests

    The grounding philosophy

    In starting the grounding community there are a core set of philosophies that are important, these are

    Deliver knowledge. To be successful in the IT market you are going to need a solid foundation which means you need to get knowledge, experience and you most probably need it fast.  We have brilliant skill in this country where we can all learn from.  The grounding community needs to deliver this knowledge through blogs and forums.  Through blogs you will be fed news, technology, tips and tricks with real world issues. 

    Passion. The core blogger's are passionate about their subject matter and want to communicate this freely.  We are and will always be looking for passionate people to blog.  This passion brings excitement into a topic and keeps.

    Diversity.  As a whole the community needs to learn and the best way to do this is to put subject matter onto the site.  Be it 100% accurate or partially accurate.  Any weaknesses will be highlighted through community members with different opinions.  These differences are welcome as long as the topic challenged and not personal digs at the members.

    Information Technology. The site is about Information Technology and for people with a keen interest in it.  It is there to help you learn, better yourself and boost your career by having access to many people that will freely give this knowledge.  The content is thus is technical, a few general forums exist and can be extended over time.

    South African. The site has a South African flavour to it with all the local issues, this does not mean we exclude the international audiences.  The products are international and have international impact.  There are some core real world issues faced by our environment which need to be pointed out, I am sure this will also benefit international readers.

    Free.  The site is free for anyone at any time, hopefully we can help give information to more underprivileged, yet talented people.  The objective is to expose information to anyone who wants it and if it benefits them in any way, great!

    Non commercial.  The site does not represent any company, in fact no advertising or sponsorships with advertising will be considered.  This is a community and NOT a business and we don't want members that see it a business or money making opportunity.  However, we do see it as a tool to boost your knowledge and reputation and if you can get a better job ... well done!

    Vendor neutral. The site does not represent one technology, nor does it represent one vendor.  As the community grows we will start to cover more products from any vendor. 

    Community driven.  The community needs to be involved and drive what is needed on the site, if the core majority of members wants to change the philosophies and direction of the site and it makes sense, then so-be-it.

    Participation.  We are looking for people that want to participate in the community in any form, from active bloggers through to casual observers.  If there are questions, they need to be put into the forums.  If there is a post and something missing or even agreement, make a comment.

    Subject Matter.  The site is for anything to do with Information Technology across vendors and products. 

    Overlap.  We encourage topic overlap from the core blog team as it not only explains things in a different way, it highlights common ground and also different view points on the topic.

    Community member involvement

    This is simple

    • Read
    • Learn
    • Ask Questions
    • Comment on posts where you can
More Posts
Add to Technorati Favorites
Powered by Community Server (Commercial Edition), by Telligent Systems
Afrigator