Windows PowerShell Overview

by Jason Green on February 2, 2013

You need a Windows PowerShell overview now. But first we need to tell you that PowerShell is a framework that automates tasks. It comes integrated with the .NET framework. It is made up of an associated scripting language and a command-line shell. You will be able to do administrative tasks in remote and local Windows systems. Powershell gives you full access to WMI and COM.

In the next lines of this Windows PowerShell overview you will know many interesting things about this computer program. We will talk about Powershell V2 and its features, cmdlets, embedding Powershell in management applications, scripting, pipelines and more. You can consider this article as a Windows PowerShell short review because we are going to talk about many cool features of PowerShell.

In this Windows PowerShell overview we must tell you that you can execute four types of commands here: cmdlets, scripts, functions and executable programs. PowerShell.exe will launch an executable program in a separate process. A PowerShell process will execute a cmdlet. The output of the commands will be displayed in a command line interface. Here you will enter the commands as well. You will not find syntax highlighting in PowerShell but it comes with a Win32 console in its user interface with customizable tab completion built-in.

PowerShell translates into invocations of the original commands the creation of aliases by cmdlets. You can use positional and named parameters for commands. The parameters of external executables will be passed via the argv variable array to be parsed by the executable. For cmdlets, PowerShell itself will bind the argument to the value.

Cmdlets are used in Powershell to implement specific functions. They are specialized commands indeed. When Powershell needs to instantiate and invoke .NET classes it uses the help of cmdlets. “Modules” is the name of a more portable version of Cmdlets added in PowerShell V2. PowerShell also implements a pipeline like Unix and Linux. A pipeline will take the output of a cmdlet to another cmdlet.

As you can see, this Windows PowerShell overview has many interesting things. Now we are going to talk about scripting. Windows PowerShell uses cmdlets imperatively to implement complex operations using a dynamically typed scripting language. This scripting language support .NET integration, functions, branching, variables, loops, error/exception handling and closures/lambda expressions. Binary prefix notations are supported by the Windows PowerShell scripting language as well.

You can embed PowerShell in a management application to implement the management functionally using its runtime. If you want to use this feature you need to use its managed hosting API. The process of the application will be run using a “runspace”. You must also create a pipeline if you want to run a command.

Microsoft has released PowerShell V2 with Windows 7 and Windows 2008 R2. With this new version of PowerShell you can run scripts and cmdlets on a remote machine. You can also invoke a pipeline or script asynchronously. Transactional operations are allowed with the help of cmdlet as well. Using the scripting language of PowerShell you can create cmdlets.

In the above lines we have been talking about many things in this Windows PowerShell overview. One of the most important things about this computer program is that you can execute many types of files. This way you will have more room to maneuver in your programming tasks. You need to initiate .NET classes when you use cmdlets. Using a dynamically typed scripting language you can use cmdlets imperatively as we have told you in the above lines. When you create aliases using cmdlets, PowerShell will translate them into invocations of the original command.

This Windows PowerShell overview is important because you will have more things to implement when you know about the features of this software. Windows 7 and Windows 2008 R2 were released with PowerShell included. You can do an awesome job in remote server using PowerShell V2 and cmdlets. They will help you perform transactional operations. You have learned a lot of things in this Windows PowerShell overview. Cmdlets, PowerShell V2, types of commands allowed and many other things have been explained. The managed hosting API is another really cool feature that you can take advantage of right away as well.

SEOmoz Mozscape Add-In For Excel

by Jason Green on September 5, 2012 · 38 comments

Powered by Mozscape

With the updates just added to the Mozscape API (previously Linkscape), I decided to update the Excel Macro and turn it into a full-fledged Excel Add-In.

Select any number of cells containing URL’s.
Right-click and select “Run Mozscape on Selection”
Enter your Access ID and Secret Key (aka Private Key) from the api page.
A big improvement is that you only need to do this once. 🙂
Mozscape API Credentials
If your credentials are accepted, a new sheet named “Mozscape” will be created and all url-metrics will be added for your chosen URL’s.

If you run this twice, or if you already have a sheet named “Mozscape” it will be deleted and replaced. Rename it before running again if you want to keep the data.
The free Mozscape API is limited to 1 request every 10 seconds.
100 URL’s would take about 17 minutes. 1,000 would take 3 hours.

Full details will be posted soon. For now, I’m just looking for a few beta testers. ***Please bear with me as this is very much a draft version. There are many features I intend to add, but since the latest release of the Mozscape API broke our previous macro, I’m releasing this untested in case anyone really needs the data. Your support and patience is very much appreciated.

[Update 9/8/2012 : If you’re not seeing any data, it’s because of a change to the Mozscape API code. They now require that we explicitly list which url-metrics we want to return by using bit flags. I’m expecting to release a new version today that will fix this as well as a few of the other bugs we’ve seen. More info here: ]

[Update 9/10/2012 : We’ve updated the code to use bit flags, fixing the previous issue. Individual bit flag selection has been added as a todo item, as it’s best to only retrieve the minimum amount of information you need.
Automatically trims access id and secret key to remove extra spaces.
Installs prerequisite software, such as .NET 4.0 and VSTO Runtime. ]

*** Download the latest version here. ***
[[ This version has only been verified to work with Excel 2010 on a computer running Windows 7. If you get it to work on any other setup, please let us know. ]]
Mozscape Add-in : Beta 1 (9/4/2012)
MozscapeAdd-in : Beta 2 (9/10/2012)
MozscapeAdd-in : Beta 2.2 (9/10/2012)
MozscapeAdd-in : Beta 2.3 (9/11/2012)

Please post any questions or suggestions in the comments below. To receive a notice of each release, enter your name and email in the box below. Thanks again for your support!

New BusinessHut Web Property

by Jason Green on November 10, 2011

We recently launched a new site and would appreciate if everyone in the mortgage, real estate, or title industries would check it out.

It’s a directory of abstractors, county offices, and other title resources called,

The idea behind is to provide a place for title abstractors to list their services, while also providing resources to those abstractors to aid in the title search process.

To find out more, please visit

I’m very happy to announce an updated version of our Excel Interface to the seoMoz LinkScape / Mozscape API. Your suggestions have been heeded and the new version is a great improvement over the first.

What’s new?

  • Run On-Demand: No more auto-updating. Now, just press Alt+F8 to run when YOU want.
  • Rate Limiter: Helps to keep us out of the seoMoz doghouse. Allows 2 URLs to be processed per second. As of early 2012, the rate limit has been changed to 1 URL per 10 seconds. (for free accounts)
  • Cleaner Spreadsheet: Removed the “raw” seoMoz response and handles all parsing within the macro.
  • Conditional Formatting: Automatically compares scores against all others on the sheet. Highlighting opportunities FTW!
  • Stand-Alone Macro: Save the macro to your personal workbook and you can run it against any list of URLs. No need to use *this* spreadsheet every time. (minor tweaks required)

BusinessHut seoMoz LinkScape API Excel Spreadsheet

Please visit this page to download the latest version of the Excel spreadsheet: Excel Interface to the seoMoz API

— Make it more awesome with this post by John Doherty
— And for even more info, check out John’s post on SEOmoz

********* UPDATE 12/13/2011 **********
Rolling out December, 16th, 2011, the SEOmoz Free API will be severely limited.
The new rate limit for the Free API is 1 request every 10 seconds.
(Compared to 2 or 3 per second that we’ve been running.)
And batch requests for the URL Metrics Call has been limited to 10 URLs for every POST request.
You can read the official SEOmoz API update here.

********* UPDATE 9/5/2012 **********
Version 3.0 is now in beta testing.
Rather than a vba macro, this new version is an installable Excel Add-in.
Check it out here:

Suggestions and support are welcome. Thank you to everyone who has given feedback thus far.

How to Buy a Domain

by Jason Green on September 13, 2011

To claim your presence on the web, the first step is usually to buy a domain. For those not familiar, a domain is the “name” given to a particular website, such as Having your own domain is important for branding, and provides freedom to build the site how you see fit.

It’s pretty easy to buy your own domain, and you’ll have plenty of success if you follow these steps.

1. Choosing a Domain

Generally, the domain name should be the name of your company. However, if your company name is long or difficult to spell, you might want to go with a word or two that accurately describe your business. For example, if I couldn’t buy, I might have gone with something like If the domain you want isn’t available (eg. already registered by someone else) your only options are to buy the domain from the current owner, or wait until it expires. (both topics I’ll have to save for another discussion) Do your best to find a domain that isn’t already registered.

*Try to avoid numbers, hyphens (dashes), and homonyms in your domain. You want to be able to say your domain quickly to someone and for them to know exactly where to go. If you buy you’ll basically have to write it down because there are so many variations. (to, too, two, 2, and then with and without the hyphen)

Domain Resources: – Allows you to check whether a domain is available and also offers research tools to suggest similar domains.

2. Buying the Domain

I buy nearly all of my domains through GoDaddy and have for the past 10 years. The prices are good and the domain management features are useful. Unless someone can provide a good reason to switch, I plan to buy all of my domains through GoDaddy.

The process for buying a domain is pretty simple. Once you choose a domain to purchase, just go to and type your domain into the box. (you’ll see it) They’ll tell you whether the domain is available or not and you just need to click the button to proceed with the purchase. They’ll offer you all of the other available versions of the domain, such as .net, .org, and .info. Generally, they give you a really good price on these, so it’s usually a good idea to pick these up if your budget allows. However, try to avoid most of the other offers throughout the checkout process. We’re going to use a different company to host your website and most of these features will be included.

Once you complete the purchase of your new domain, it’s time to find a web host…(That’s our topic for next time.)

Until then, please contact us or leave a comment below if you have any questions.

Disclosure: I am an affiliate of GoDaddy and might receive compensation if you purchase your domain through the links on this website.

Google Analytics Referrer Spam

by Jason Green on August 31, 2011 · 75 comments

If you’ve launched a new website recently and were excited to see referrals from golbnet or forexmarket, you have been spammed. This is a tactic used by spammers to get webmasters, curious to research their referrers, to visit the desired website. Also referred to as log spam or referrer bombing. It’s not necessarily malicious, but it’s definitely annoying.
Referring SitesIt’s funny that people are doing this now, because I had a chat about how someone could do this with my co-worker, Taylor Pratt, while working at LunaMetrics in 2007.

Your best option is to simply ignore these referrers. Do not visit the websites. They’re spam, so they don’t deserve your business, but there’s also the chance that you’ll wind up on a site filled with viruses and other malware. If you don’t want the referrals to show up in your Google Analytics account, you also have a few options for removing them.

How to get rid of referral spam:

1. I always recommend keeping at least one GA account with no filters. Make sure you have one profile that will show these referrals, just in case there’s a problem as you create new filters. (You always want to have access to your raw data.) If you don’t already have a separate profile, create a new Google Analytics profile and start anew.
2. On what will now be your “good” profile, you can create a few filters to eliminate the golbnet and forexmarket referrer spam entries.
Create an “include” filter that only includes your domain name. If someone uses your Google Analytics account ID on another domain, this will prevent them from showing up in your analytics.

  • Filter Type: Custom > INCLUDE
  • Filter Field: hostname
  • Filter Pattern: yourdomain\.com
  • *The filter pattern is RegEx, so you should escape the period with a backslash.
  • Case Sensitive: No

Hostname Include Filter

The above method is probably the easiest way to solve the problem, but there are still loopholes. The “perpetrators” could actually be visiting your site through some automated means. If they do it this way, our hostname filter won’t have any effect. Instead, we’ll have to eliminate any referrals from the suspected spammers. *If you find more spam domains, please leave a comment below. I’ll keep this list updated for anyone that wants to cover all bases.

For now, we’ll create custom filters to eliminate any Referral Source (aka: Campaign Source) with text that matches our spammers:

Current Referral Spammer List

  • golbnet
  • forexmarket
  • ForexTradingStrategies

*There are many variations of the golbnet spam, so capturing any referral containing “golbnet” is necessary. However, if you’re actually in the forex market, eliminating any referrer with “forexmarket” in their URL might be overzealous. You’ll need to tweak these values for your individual situation. Luckily, there’s a link to learn more about Regular Expressions right in the filter creation screen.

Ok, onto the filters:

  • Filter Type: Custom > EXCLUDE
  • Filter Field: Campaign Source
  • Filter Pattern: golbnet
  • Case Sensitive: No

*This will eliminate any referrer with the text “golbnet” anywhere in the referring URL.
To exclude other referrers, such as forexmarket, you could create another filter, OR you could simply add a “pipe” which acts as an “OR” operator.
(eg. Filter Pattern: golbnet|forexmarket|anythingelse )
*You can get the pipe by pressing Shift and Backspace.
Referrer Exclude Filter

That should eliminate these spam referrers from your Google Analytics reports. Remember, the most important thing is that you don’t visit these sites. If you have any questions, or additional solutions, please leave us a comment below. Also, if you have any additional spam referrals to report, please leave them below and we’ll add them to the list.

Thanks to Avinash and Nick for the shout out on the Google Analytics Blog! (Web Analytics TV #19 – The Most Productive Episode) (pretty cool to be mentioned there)

P.S. If you find this interesting, but don’t actually want to implement the filters yourself, I’m be happy to help. For $70, I’ll create the necessary filters to eliminate all of these known referral spammers and will apply them to up to 5 accounts. Most of you are fully capable of making these changes yourself, but if you don’t have the time, or just don’t feel like messing with this, email me at jgreen AT

Is Google Analytics a Waste of Time?

by Jason Green on August 31, 2011

Yes, if you only look at the data and don’t act.

  • Who cares if your bounce rate is 70% or 30%?
  • Who cares if you have 5,000 visitors per month?
  • Who cares if 30% of your visits come from California?

None of that matters if you just look at it and say, “Yay! I have Google Analytics on my site!” Having Google Analytics alone will not help your site in any way. Knowing that you have 100, 1000, or 1-Million visitors per month, doesn’t help you.

For each metric in Google Analytics, you should look at your site over time and note any changes.

  • Is the metric trending up? Down? -> What does that mean?
  • Are there peaks or valleys in the graph? -> Why?

Guide to Google Analytics Actionability

Here is a short checklist to help you determine what to do with your Google Analytics data to improve the performance of your website:

  • Look at the Reports. – Does anything stand out? (Peaks/Valleys/Trends)
  • Ask Questions. – Why? What changed? Outside influence?
  • What do you WANT the data to show? – Do you want an increase or decrease?
  • What can you DO to alter your desired metric? – Design Change? Ad Copy Change?
  • Track it! – Track the results of your efforts. Did they have the desired effect?
  • Repeat with each report or metric you’d like to see change.

The key takeaway of this post is that you (we) all need to stop just looking at our analytics reports. Passively watching your stats go up and down is merely entertainment. We need to ask tough questions and make the necessary changes to improve the performance of our sites.

Good luck!

> If you would rather just look at your reports, we’d be happy to help you with the actionability part. Contact us at for our Google Analytics Consulting services.

How to Start Using Facebook Ads

Woman with Megaphone

by Jason Green on June 14, 2011 · 2 comments

With Facebook topping 600 Million users, and a possible IPO worth $100 Billion just on the horizon, now is the time to start using Facebook Ads.

Today, we’ll go through the most basic step of activating your ads manager. If you are a BusinessHut client, or would like to be, this is our guide on how to setup your account to allow us to manage your Facebook Ads for you.

Step 1: Create a Facebook Account
If you don’t already have a Facebook account, go to to create one.

Step 2: Go to Your Facebook Ads Manager
Follow this link to see the Ad Manager dashboard:
You should see a screen titled “All Campaigns”, but mostly contains blank space and some $0’s.

Step 3: Configure Settings
Facebook Settings
From the Ad Manager dashboard, click the “Settings” link in the left navigation.

Enter as much information about your business as possible and save changes.

Then, scroll to the bottom and decide how what notifications you’d like Facebook to send you about your ads.

*Stay on the settings page for the next step.

Step 4: Allow Us to Access Your Facebook Ads Account
If you are a BusinessHut client, this will allow us to manage your Facebook Ads. We will have the ability to change budgets and bid amounts on your behalf. You hired us, so this is what you want, but we like to remind everyone of this, just in case. If you are not a client of ours, you may skip this step, or ideally, you could contact me using the form on the right. 🙂

On the settings page, find the “Permissions” section, and click “Add a User”.
Facebook Permissions

You’ll then see the following box. Enter my email address: and make sure to select “General User” from the dropdown. Selecting “Reports Only” will only allow me to view your stats. (“Reports Only” might be useful for initial audits and campaign monitoring after the initial setup.)
Once you click “Add” I’ll receive an email and will have nearly administrative access to your account.
Facebook Add Ads User

Step 5: Create Your First Ad (step 1 of 3)
Clients: We will complete these steps and let you know when ready for review. (You can stop here for now.)
Non-Clients: Go back to the Facebook Ads dashboard. (In the navigation on the left, click “Campaigns & Ads”.) In the upper-right corner, click the green “Create an Ad” button.

Choose whether you want your ad to link to another website or to one of your Facebook pages. There are many articles on how to optimize your Facebook ads, so I won’t try to give a tutorial on ad writing here. For now, we’ll just fill out the form as instructed on the page, to the best of our ability.
Our sample ad is below. When you’re happy with the ad, click continue to move on to demographic targeting.
Facebook Ad Preview

6. Demographic Targeting (step 2 of 3 for Ad Creation)
In the “Targeting” section, you can narrow your demographics to only target certain users. Again, we could have an entire website dedicated to market segmentation. You’ll need to choose as broad or narrow a market segment as you see fit, and just remember to keep testing. One cool feature is that Facebook will tell you how many users are included in your selected segment.

Facebook Reach Pennsylvania Males

7. Campaigns, Pricing, and Scheduling (step 3 of 3 for Ad Creation)
Here, you can set the campaign settings, such as Time Zone, Campaign Name, and Budget. Your budget can be set to a maximum by day, or as “lifetime budget” which means your budget will be spread across a specific time period. Once ready, click “Review Ad”.

8. Place Order
Finally, give your ad a name and click “Place Order”.
You’ll then be asked to enter billing information. (Credit Card or PayPal)
Once past the billing section, you’ll return to your dashboard, which is now a bit more lively. You won’t see any real data for a while, but be patient, there will be plenty of data to pour through soon.

You’re Done! Let your ads run; test often; and repeat.
If you enjoyed this guide, make sure to share it on Facebook with the buttons below. Thanks! 🙂

Helpful Facebook Links:
Facebook Ads Dashboard:
Facebook Ads Page:
Facebook Ads Help Center:
Guide to Facebook Ads:
Facebook New Advertiser’s Guide:

Website Hosting

by Jason Green on June 5, 2011

Below are two of the hosting companies both used and recommended by We’ve had our own sites as well as client sites hosted with both of these hosting companies for several years. Their offers and prices vary throughout the year, so take a look at each and depending on the timing, decide which one is best for you. We use these companies for what is considered “shared hosting”. This is sufficient for most websites, but if you need more power or customization for your hosting, please contact us to discuss the best solution.

*Don’t judge only by the prices below. The LunarPages price is only that low with a 5-year agreement. Both are great services, but I encourage you to review each to determine the best offer at the time.


Lunarpages answers the phone when you call them!

BlueHost Web Hosting $6.95

Steps to Hosting Your Website

  1. Register a Domain
  2. Sign up for a hosting account with one of the web hosts above
  3. Upon receiving your “critical account info” write down the provided “Nameservers”.
  4. Go to your domain registrar (GoDaddy,, etc…) and enter the nameservers provided.
  5. Upload files to your new hosting account, and you should see them online momentarily.

If you follow the instructions provided by your domain registrar and web host, you should have your website live within an hour. This also depends on a thing called propagation, which is just a fancy way of saying that it takes time for all of the servers of the world to realize you have a new website online. This rarely takes more than a few hours anymore.

If you have any questions about this process, or would like to have us provide some assistance, please contact me through the form on the right, or with the information here.

Using the SEOmoz Free API with Excel

by Jason Green on April 19, 2011 · 86 comments

Powered by Linkscape

At one time or another, we’ve all come across a “juicy” list of directories, blogs, or other websites that we might be able to use for some link building. I recently came across such a list and was quickly annoyed at how low the quality of some of the sites was. I wanted a quick and dirty way to rate all of the sites so I could start my linkbuilding process with the most promising websites. That’s when I found the SEOmoz Free API. With my mad Excel skills and lots of help from Leith Ross with some Excel code, I was able to create what I think is the fastest and easiest implementation of the SEOmoz API out there. It’s also easy to customize if you want to hack it into something that suits your needs.

This is a self-service spreadsheet, so you’ll need to have your own API credentials. (Get credentials here) If there’s enough demand, I’d be happy to publish a more polished version for mass consumption. (leave a comment)

I wrote a custom function in Excel that queries the SEOmoz API URL with the various parameters pulled from the spreadsheet. You just need to download the spreadsheet and insert your API credentials.
Press Alt+F8 and run the GetURLMetrics macro to begin processing. Be patient with large lists of URL’s. Currently, it takes about a half-second per URL to process. LinkScape has been renamed Mozscape API and new throttling limits have been added. For the free version, we’re limited to 1 request every 10 seconds. Using that version, please don’t try to run huge lists of URLs. 1000 URLs would take about 3 hours.

To follow along, download the latest Excel macro-enabled spreadsheet below: (Enable macros after opening.)
Excel Spreadsheet (Beta1) 4/19/2011 (Original Version)
Excel Spreadsheet (Beta 2) 9/22/2011
*** 7/23/2012 – Issues with V2 have been resolved. Please download version 3 below. ***
Excel Spreadsheet (Beta 3) 7/23/2012
***[UPDATE: 8/14/2012: I joined the Mozscape API beta testing group today. Expect a new and hugely improved version of this spreadsheet very soon!!!]
***[UPDATE: 9/1/2012: The Mozscape API beta testing is complete and has been released to production. Unfortunately, the release broke our macro. Luckily, during beta testing we were working on an add-in / plugin version. See below…
********* UPDATE 9/5/2012 **********
Version 3.0 is now in beta testing. (very very beta)
Rather than a vba macro, this new version is an installable Excel Add-in.
Check it out here:
This also renders most of the instructions on THIS page, null and void. The new page above will contain the latest information for this project.

The function, named GetURLMetrics, takes a specified URL and whether or not to follow redirects as parameters. [eg. =GetURLmetrics(“”,TRUE) ]

It returns the entire response of the Linkscape url-metrics API call, and the cells to the right parse that into usable fields. If you’re looking for a way to assess many websites quickly, I think this will work for most applications.

This is very much a beta version and I appreciate anyone giving it a try. It worked fine for me, but others have not had the same success. Your questions and suggestions are very much appreciated.

*** Update: If you receive an “invalid signature” error, please refresh the API page on SEOmoz to get new credentials. Make sure to re-copy all of the information needed, and that you don’t accidentally copy line breaks or other hidden characters. It takes a few tries for some, but usually works.

*** Update: Mac users: If anyone was able to get this working on their Mac, or with OpenOffice on any platform, we’d love to hear from you. Several users have tried, but weren’t able to get it working. If you figured it out, please let us know.

Download the spreadsheet here.
(right-click and Save Target As)
The macro/function is saved within and can be viewed by pressing Alt+F11 once in Excel.
Press Alt_F8 to Run.

You can download the text of the macro below. You’ll need all of the included functions for everything to work properly. To run as a stand alone macro, just insert your credentials directly into the code and uncomment the input boxes. (There are notes included in the macro.)

********* UPDATE 12/13/2011 **********
Rolling out December, 16th, 2011, the SEOmoz Free API will be severely limited.
The new rate limit for the Free API is 1 request every 10 seconds.
(Compared to 2 or 3 per second that we’ve been running.)
And batch requests for the URL Metrics Call has been limited to 10 URLs for every POST request.
You can read the official SEOmoz API update here.
I’m currently looking into alternatives, and am entertaining the idea of building my own API.
********* UPDATE 9/5/2012 **********
Version 3.0 is now in beta testing. (very very beta)
Rather than a vba macro, this new version is an installable Excel Add-in.
Check it out here:
This also renders most of the instructions on THIS page, null and void. The new page above will contain the latest information for this project.

Suggestions and support are welcome. Thank you to everyone who has given feedback thus far.