Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 502765
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T06:19:30+00:00 2026-05-13T06:19:30+00:00

I have a PowerShell script that configures web site and web application settings in

  • 0

I have a PowerShell script that configures web site and web application settings in IIS. So I use the cmdlets in the WebAdministration snap in. But this script needs to run on Windows 2008, Windows 7 and Windows 2008 R2. And I need it to run with minimal fuss from the user.

The problem is that Windows 7 and Windows 2008 R2 use IIS 7.5 which comes with the WebAdministration installed as a module. On Windows 2008 we have installed the IIS 7 PowerShell provider which installs WebAdministration as a snap in.

So including import-module WebAdministration in the script blows up on IIS 7 but works fine on IIS 7.5 and including add-pssnapin WebAdministration blows up on IIS 7.5 but works fine on IIS 7.

So our workaround is to make the administrators load WebAdministration manually with the appropriate command for the environment before running the script. But this isn’t optimal as it is easy to forget which command works in which environment. We could create two different scripts, but that creates a maintenance problem for development.

Has anyone solved this problem? Does anyone know how to check the environment and then call the appropriate cmdlet from within the PS script?

— ANSWER (for my situation) —-

The solution is a combination of code and pre-configured console. The IIS 7 PoSH Provider includes a desktop shortcut that launches a PoSH console with WebAdministration loaded. That combined with the following function make my script run like a charm on all three systems.

Function Load-WebAdmin {
  $webAdminModule = get-module -ListAvailable 
                                        | ? { $_.Name -eq "webadministration" }
  If ($webAdminModule -ne $null) {
    import-module WebAdministration
  }
}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-13T06:19:30+00:00Added an answer on May 13, 2026 at 6:19 am

    Is it possible to catch the error from one or the other, and do the opposite. Dont have my shell handy but something like:

    $succeeded = import-module WebAdministration
    if (($succeeded -ne $null) -and ($succeeded.GetType() -eq [System.Exception]) {
      #Could not import, trying to snapin
      add-pssnapin WebAdministration
    }
    

    Actually thinking about this a bit more…

    $hasSnapin = get-pssnapin | Select { $_.Name.toLower().Trim() = "webadministration" }
    if ($hasSnapin -ne $null) {
      add-pssnapin WebAdministration
    } else {
      import-module WebAdministration
    }
    

    On the first one, I know the error type check will probably need to be modified. As far as the work going on, this can actually be done in C# by looking in the registry for loaded snapins, or the IIS version installed on the machine and then use the appropriate method.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 404k
  • Answers 404k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer If it's just a normal AJAX action you're returning it… May 15, 2026 at 5:25 am
  • Editorial Team
    Editorial Team added an answer Have each run submit a further run using 'at' with… May 15, 2026 at 5:25 am
  • Editorial Team
    Editorial Team added an answer Found it, round brackets have special meaning in the pattern… May 15, 2026 at 5:25 am

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.