Blog > Rick Barber

The official blog of managed hosting provider OrcsWeb.

Resolving Group Policy Error 0x8007000d

Here's a good tip for our managed dedicated server and Windows cloud server hosted clients from Rick, one of our many top-notch support specialists working to assure Remarkable Service and Remarkable Support here at OrcsWeb!


While working on your server you may come across the following error in the Application logs.

Event Type: Error Event Source: Group Policy Local Users and Groups Event Category: (2) Event ID: 8194 Date: 11/26/2011 Time: 6:37:36 PM User: NT AUTHORITY\SYSTEM Computer: SERVER1 Description: The client-side extension could not remove computer policy settings for 'Domain Policy Name {SPID}' because it failed with error code '0x8007000d The data is invalid.' See trace file for more details.

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

This is usually caused by a corrupt or malformed XML file in the local server's group policy cache. This usually happens when there is a crash or unexpected shutdown of the server while a Group Policy update is taking place.

To resolve this issue, clear the Group Policy cache on the local server and have the Group Policy cache repopulated.

1) Open Windows Explorer 2) Paste %ALLUSERSPROFILE%\Application Data\Microsoft\Group Policy\History in the address bar 3) Delete all the sub folders in that location 4) Open command prompt 5) Type the following gpupdate /force 6) Verify that sub folders have once again shown up in the Group Policy cache location above.

The above clears the Group Policy cache on the server and puts a fresh copy of the Group Policy preferences on the local server.

F12 Developer Tools

Developing a website is relatively easy. Regardless of the tools, technologies, or processes you use, the rendered output to a client viewing your web page is primarily text, Hypertext Markup Language (HTML) tags, images, and Cascading Style Sheets (CSS) formatting.

In reality, developing a good, scalable, website is difficult. As you get deeper into web development, you quickly become aware of how each browser handles your code differently. Because of that, it is important for you to utilize one or more of the numerous tools to help analyze your web site.

One well-known debugging tool is Fiddler. This is a web debugging proxy that logs all HTTP and HTTPS traffic between your computer and the Internet and also has an extension for Firefox. The biggest advantage to Fiddler is that it can help debug any Internet application and not just a page in a web browser. The down side to Fiddler is that since it is a proxy, it tends to slow down the rest of your local HTTP traffic when you are debugging.

A well-known tool primarily for Firefox is Firebug. This tool lets you inspect HTML, styles, and layouts in real-time as well as analyze network usage and performance of the page. New versions are now available that support other browsers.

A product specifically for Internet Explorer was the Internet Explorer (IE) Developer Tools. Designed for Internet Explorer 6 and 7, it was a toolbar that aided in designing and debugging web pages. When Internet Explorer 8 was released, these tools were included with the base installation instead of being a separate downloadable product.

Internet Explorer 9 took it a step further by introducing the F12 Developer Tools. These tools are available on any page and allow you to quickly and easily debug JavaScript, HTML, CSS, and performance problems. As the name implies, you trigger the tools by pressing F12 when you are on a page that you want to investigate.

When you trigger the F12 developer tools, a new window opens up. Here's a quick look at some of the features that are available to you.

  • The HTML tab is the default tab and gives you insight into the server-generated code that is transmitted to the client. Selecting items in the view provides you additional information and options in the right column.
  • The CSS tab gives you more information on all the CSS formatting that applies to the page.
  • The Console tab provides you information on errors that are received from Internet Explorer 9 and also allows you to interact with the web page through a variety of supported commands.
  • The Script tab allows you to debug JavaScript code from the browser without having to use other tools.
  • The Profiler tab gives you access to a JavaScript profiler that you can use to check how your scripts are performing.
  • The Network tab gives you information on the web request including the amount of data that is transferred as well as the time it takes for each action on the page to complete. If you've used Fiddler before, the information provided here is similar.

Those are the main tabs in the F12 developer tools. Not to be forgotten are the numerous menu items that allow you to perform various tasks such as clearing the browser cache, managing cookies, doing page validation, and more.

With Internet Explorer still holding strong as the most widely used web browser, these tools are essential to ensure that you are providing a quality experience to a majority of your targeted users.

For more detailed information on the F12 Developer tools, please see MSDN.

Easy Custom Modules With mojoPortal

Most Content Management Systems (CMS) like mojoPortal come with a significant amount of built in functionality. It never fails that your project requires some functionality that isn't included. That is easy to overcome with the respective Software Developer Kits (SDK) or Application Programming Interfaces (API) that you can download and install to extend the CMS and add custom functionality.

If you have ever looked closely at some of these SDKs, you will quickly find that they are not for the faint of heart. Most are targeted towards professional developers so those hobbyist developers like me need something easier to use. Especially when we just want to add something simple such as an online registration form to a site.

This is where I have found mojoPortal to be a perfect fit. Since it is open source, you can download the source code and do as much custom development as you desire. However, adding a custom module to your site is as easy as creating a UserControl in ASP.Net. Literally. If the module you are creating is only going to be a single instance on your site, you can simply create an ASP.Net UserControl and then add it as a module in the administration menu. If your site needs more than one instance of that module, you do have to download the source code so you can inherit the base class.

The developer has done a good job of providing extensive documentation, samples, and videos on his website, and he is also active in the forums. I have not run into any issue, though, that is not in the documentation, videos, or forums located on his site.

With the low cost, ease of use and implementation, and simplicity of creating custom modules, mojoPortal is a good solution to consider for your next website development project.

Tagged as: ,

IIS7 Default Application Pool Settings

Out of the box, any new site that is setup in IIS7 defaults to using ASP.Net 2.0 for the application pool. If you are developing in ASP.Net 4.0, you want all of your new sites to default to this version instead.

In IIS6, you can change the default version of ASP.Net by running aspnet_regiis with a switch such as -i or -ir. With the improvements made to IIS7, this no longer works. The solution is much easier now that ASP.Net is tightly integrated into IIS.

After you open up Internet Information Services (IIS) Manager, expand the server name on the left, and click on Application Pools. Take note of the 'Set Application Pool Defaults...' link in the upper right under Actions.

alt text

Clicking on that link opens up another window where you can change a variety of default application pool settings including the framework version.

alt text

Hopefully this helps when you want to set the defaults for your IIS7 application pools.

Happy Hosting!

Tagged as: ,

Rapid Website Development With mojoPortal

Web development has been a hobby of mine for many years. Since it is a hobby, I am always looking for ways to quickly deploy and maintain web sites. I have looked at many of the popular Content Management Systems (CMS) that are available and have stayed away from many because I found them to be slow, cumbersome, difficult to upgrade, or expensive.

Then I came across mojoPortal, a free and open source CMS. I was also happy to find out that it is written using ASP.Net, my first choice for web development.

I downloaded the release package and checked the ReadMe.txt file in the root of the folder where I extracted the compressed download file. Much to my surprise it outlined six simple and easy steps. I followed those six steps and in minutes I had a new website set up and ready for me to start adding content.

Upgrading is just as easy and has worked for me numerous times without issue. I recommend that you consider mojoPortal for your next website that needs to be running quickly and inexpensively.

Tagged as: ,

Client Printers Not Available In Windows 2008 Terminal Services

When I first starting using Windows Termial Services in 2001, client printing from Terminal Service sessions was a nightmare.  Microsoft has made improvements over the years including adding the Terminal Services Easy Print printer driver to Windows 2008 which helps to make client printing more stable and much less of a nightmare.

If you've been using this technology for awhile, you know you previously had to install printer drivers on the server to have any chance of this working for most scenarios.  You don't have to do that anymore with Windows 2008.  Even with all the improvements you may find yourself facing issues getting client printers to show up on the Windows 2008 server. Here are the first items you should check to ensure that client printing is not disabled on the server.  
  1. Check that the spooler service is set to automatic and running on the server
     
  2. Check to ensure that Windows Printer mapping is allowed on the server
    1. Go to Start -> Administrative Tools -> Terminal Services -> Terminal Services Configuration
    2. Right click RDP-Tcp and click properties
    3. Click on Client Settings tab and ensure Windows Printer is NOT checked

       
  3. Check that the Group Policy is not preventing client printer redirection
    1. Go to Start -> Run -> Type in gpedit.msc
    2. On the Local Group Policy Editor that comes up go to Administrative Templates -> Windows Components -> Terminal Services -> Terminal Server -> Printer Redirection
    3. It is best to have all of the settings set to 'Not configured'

       
  4. Check to make sure that the Terminal Services UserMode Port Redirector service is started

Once you have confirmed everything is correct at the server level, you should next check permissions on the print spooler. 

  1. Open an elevated command prompt
    1. Go to Start -> type cmd in the search box -> right click cmd.exe -> Run as administrator
    2. In the command prompt type 'sc sdshow spooler' without the quotes.  You should see something like:
      D:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCLCSWLOCRRC;;;AU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)
    3. What you are looking for specifically is (A;;CCLCSWLOCRRC;;;AU).  If that Authenticated Users ACL is missing then Terminal Services is unable to read the state of the Print Spooler service.  If it can't read the state then it assumes it's not running and disables printer redirection.
       
  2. If that ACL is missing, here's how to add it back
    1. Copy everything in the output from sc sdshow spooler above to notepad.  Remove all extra spaces and linebreaks.  Add )(A;;CCLCSWLOCRRC;;;AU) to the end of it.
    2. Add the following before the D: - sc sdset spooler.  Your notepad info should look something like:
      sc sdset spooler D:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCLCSWLOCRRC;;;AU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)
    3. Copy all of that and right click -> paste it into the elevated command prompt and hit enter.
    4. Now enter sc sdshow spooler and see if the Authenticated Users ACL is there.

Be very careful when working with ACLs and make sure you take screen shots as you go along to make sure you have a good copy of what the ACL looked like before in case you made a mistake when cleaning up the existing ACLs. 

While this doesn't cover all the issues you can run into while troubleshooting client printing issues with Windows Terminal Services, these are some of the more common ones I have come across.

References:

http://social.technet.microsoft.com/Forums/en/winserverTS/thread/619d78a1-dc47-45cf-a078-e9fba492dd1f
http://social.technet.microsoft.com/Forums/en/winserverTS/thread/4ebf9a34-85f3-4b91-9750-48124b9885ba
http://verbalprocessor.com/2007/12/05/running-a-cmd-prompt-as-local-system/

Are You Getting The Most From IIS7?

The release of IIS 7 a few years ago marked the beginning of a new direction for Microsoft's Internet Information Server.  Completely redesigned from the ground up, IIS 7 offers a flexible, secure, and modular platform to serve and manage your web application.  If you just did enough to get your site running then you may be missing out on some great functionality.

Many people are not aware that there are IIS extensions that you can download and install.  Best of all, they are free.  A few that I would like to highlight are:

  • Web Deploy
    • This extension simplifies the migration and deployment of a web application to your IIS 7 server and provides easy synchronization with Visual Studio.  Only changes made to the application are uploaded saving you time and bandwidth.
       
  • Bit Rate Throttling
    • This extension allows you to set bandwidth throttling for media and data file downloads .  By installing and configuring this extension you can reduce bandwidth costs and increase concurrent download capacity for your IIS 7 server.
       
  • URL Rewrite
    • This extension enables you to create rules to redirect and rewrite URLs for web applications on the server.  The implementation of these rules is more straight forward than many other URL rewriting methods.
       
  • Dynamic IP Restrictions
    • With the ever increasing chances of your site being subject to a Denial of Service (DoS) attack, this extension provides yet one more tool in your arsenal to help keep your site online and available during an attack.  You can configure this to dynamically block connections based on concurrent request or requests over a period if time as well as set IPs that can bypass the filter.

This is just a sample of the free IIS 7 Extensions that are available to make managing your site and server easier as well as enabling additional features.  More extensions continue to be developed and can be found at http://www.iis.net/download.

Tagged as: ,

Prevent Visual Studio 2010 and Web Deploy From Changing ACLs

You finally have Visual Studio 2010 installed and are developing that cool new ASP.Net 4.0 site.  One of the features that you are excited about is Web Deploy.  It allows you to securely and quickly publish your site, create applications, and do many other great things, all through HTTPS.  The purpose of this post, however, isn't to describe the features of Web Deploy.  You can find detailed information in Scott Guthrie's Blog Post.   

Let's head back to the real purpose of this post.  Another cool feature of Web Deploy is that you can set security ACLs on files and folders of your site.  What if you already have custom NTFS permissions set on your site and don't want Web Deploy to change those permissions?  Look as hard as you will, but that setting isn't available anywhere in the properties of the project.  If you look closely at the comments of Scott's post above, you will see the following mentioned: 

To disable setting ACLs, you can:

1)      Edit the .csproj file and set  <includesetaclproviderondestination>False</includesetaclproviderondestination>
 
or set it via a command build:
 
2)      msbuild myproject.csproj /p:IncludeSetAclProviderOnDestination=False
 
I tried the second approach first because it looked the easiest.  Although I've done some C++ programming in the past, I haven't made the switch to C# yet and continue to program in Visual Basic.  Because of that, my project file was named myproject.vsproj.  I found msbuild in my ASP.Net 4.0 folder and ran the above, changing the extension to .vbproj.  It rebuilt my project successfully but Web Deploy continued to change the ACLs when I published it.  I thought maybe that feature was only supported in C#, so I threw together a new C# test project and it was still resetting my ACLs.  Next I did a search of the Internet and found a few blog and forum posts, but all of them essentially copied the above information from Scott's blog verbatim without any additional information.
 
I decided to move on and give step #1 a shot.  After some trial and error I finally started figuring out the structure of the project file and discovered where to add the tag manually.  First you should make a copy of your project config file just in case you mess something up.  Secondly you need to determine what your configuration and platform are for the project.  To do that, right click your project in Visual Studio 2010 and select Package/Publish Settings.   Look at the Configuration: and Platform: drop downs.  In my example below they are set to Release and Any CPU. 
 
 
Look for the following line in the project file:
 
<propertygroup condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "></propertygroup>
 
Scroll down to the closing tag of:
 
</propertygroup>
 
Add a new line right above it and put the following there:
 
<includesetaclproviderondestination>False</includesetaclproviderondestination>
 
Save your project file.  The next time you publish your project, it won't make any ACL changes on the remote server and all your existing NTFS permissions will remain intact.

Troubleshooting Outlook 2010 Restarts

I have been running Outlook 2010 since it first came out and for the most part I've been pretty happy with it.  Since I first started using it, though, I have had an issue with it.  Apparently out of the blue it would sometimes crash (usually right in the middle of writing an important email) forcing Outlook to restart. 

I spent some time researching this, and it appears that the crashes are most often caused by Outlook Add-Ins.  After looking at Event Viewer, that is the next place I would look.

Go to File -> Options.  That will bring up the Outlook Options window.  Click on Add-Ins in the lower left-hand menu.  That will list all the Add-ins that you have installed with Outlook. 

The next step I would recommend is removing all of the Add-ins and then start adding them back one by one over time to narrow down what is causing the issue.  To disable one or more Add-ins, at the bottom of the Outlook Options window on the Add-in Options page select 'COM Add-ins' beside Manage: and click the Go... button.  That will bring up the COM Add-Ins window where you can uncheck Add-ins that you want to disable.

In my case the 'Send to Bluetooth' Add-in was causing the issue.  once I disabled that I haven't had Outlook crash on me yet.

I hope this helps if you are experiencing the same issue that I was having.

Tagged as:

What Process is Using Your I/O?

This year OrcsWeb released our Windows Cloud Server product.  As part of that offering, a base amount of disk transactions (I/O) is included, and then you are billed for any usage above that.  A common question that arises is how to determine what is using the I/O on your server.

The easiest way to get a quick view into your I\O usage is to use Task Manager.  I will show you how to find that information.  First you need to open up Task Manager.  To do this, right click the task bar and choose Start Task Manager.  When you have it running, click the Processes tab.  Then from the menu choose View -> Select Columns... 
 
 
This will bring up the Select Process Page Columns.  Scroll down to the bottom and put a check beside I/O Reads, I/O Writes, I/O Read Bytes, and I/O Write Bytes. 
 
 
Click OK when you are finished and the columns will be added to Task Manager.  You should note that the numbers listed in Task Manager are totals for each of those items since the last boot of the system. 
 
Here is a description of the columns of the counters that were added to Task Manager above.
 
I/O Reads -  The number of read input/output operations generated by a process, including file, network, and device I/Os. I/O Reads directed to CONSOLE (console input object) handles are not counted.
I/O Writes - The number of write input/output operations generated by a process, including file, network, and device I/Os. I/O Writes directed to CONSOLE (console input object) handles are not counted.
I/O Read Bytes - The number of bytes read in input/output operations generated by a process, including file, network, and device I/Os. I/O Read Bytes directed to CONSOLE (console input object) handles are not counted.
I/O Write Bytes - The number of bytes written in input/output operations generated by a process, including file, network, and device I/Os. I/O Write Bytes directed to CONSOLE (console input object) handles are not counted.
 
You can look at the new columns that are showing up in Task Manager and see the processes that have used the most I/O since the last reboot of the server.  Often this is all the information you need to narrow down the top I/O usage per process.
 
Sometimes using Task Manager is not enough to help you narrow down the usage.  Maybe you need to know what is using the I\O right now or want to paint a picture of I\O usage over the next 7 days.  That is a good job for Performance Monitor.  Before we look at how to add the counters to Performance Monitor, here is the mapping of the Task Manager Columns that were described above and their corresponding Performance Monitor Counters:
 
Task Manager Performance Monitor
I/O Reads Process\I/O Read Operations/sec
I/O Writes Process\I/O Write Operations/sec
I/O Read Bytes Process\I/O Read Bytes/sec
I/O Write Bytes Process\I/O Write Bytes/sec
 
To start up Performance Monitor click the Start button.  In the 'Search programs and files' text box enter perfmon. 
 
 
Select perfmon that shows up in the results to open up Performance Monitor.  Once you have it open, select Performance Monitor from the left menu so that it is highlighted.  That will start allowing Performance Monitor to collect information.  Next click the green Plus icon to add a counter. 
 
 
When the Add Counters dialog window comes up, look for the Process object and click the plus to the right of it.  That will expand the counters that are under the Process object.  Based on the information that you got from Task Manager above, you can now add the appropriate counter.  You will notice that when you select a counter it also wants to know if you want the _Total (the total amount from all processes for that counter), 'all instances' which will add all the instances to Performance Monitor, or a specific process.  I recommend that you set the counter up for one or more specific processes that you previously found with the total highest I/O listed in Task Manager.  Choosing 'all instances' will make it hard to read the results and might cause some additional resource usage on your server. 

 
Using this information you should now be able to track down what is using the most I/O on your system.

NOTE:  The step by step instructions in this article are based on Windows 2008 R2.  The I/O information pertains to earlier Operating Systems as well but the actual steps might be different.
 

 

 

 

 

 

 

 

 

 

Tagged as: