Infelizmente, não é possível carregar o provedor do IIS como a mesma coisa em 2008 e 2008R2. Em 2008, o provedor do IIS é fornecido apenas como snap-in e, no 2008R2, é fornecido apenas como um módulo.
Com um pouco de codificação, você pode realmente determinar qual usar e carregar dinamicamente o módulo ou o snap-in no script, dependendo do que for necessário. Eu peguei este código do link quando estava tendo um problema parecido.
$ModuleName = "WebAdministration"
$ModuleLoaded = $false
$LoadAsSnapin = $false
if ($PSVersionTable.PSVersion.Major -ge 2) {
if ((Get-Module -ListAvailable | ForEach-Object {$_.Name}) -contains $ModuleName) {
Import-Module $ModuleName
if ((Get-Module | ForEach-Object {$_.Name}) -contains $ModuleName) {
$ModuleLoaded = $true
} else {
$LoadAsSnapin = $true
}
} elseif ((Get-Module | ForEach-Object {$_.Name}) -contains $ModuleName) {
$ModuleLoaded = $true
} else {
$LoadAsSnapin = $true
}
} else {
$LoadAsSnapin = $true
}
if ($LoadAsSnapin) {
if ((Get-PSSnapin -Registered | ForEach-Object {$_.Name}) -contains $ModuleName) {
Add-PSSnapin $ModuleName
if ((Get-PSSnapin | ForEach-Object {$_.Name}) -contains $ModuleName) {
$ModuleLoaded = $true
}
} elseif ((Get-PSSnapin | ForEach-Object {$_.Name}) -contains $ModuleName) {
$ModuleLoaded = $true
}
}
Antes de tentar fazer qualquer coisa com o provedor do IIS, verifique se $ModuleLoaded
é verdadeiro e se deve ir.