Embora eu ainda não saiba exatamente o que o IIsProviderSnapIn
snap-in é comparado a WebAdministration
, acabei com uma versão modificada de uma resposta para
link
que carrega no WebAdministration
snap-in ou módulo, se disponível, caso contrário, usa o IIsProviderSnapIn
.
$iisVersion = Get-ItemProperty "HKLM:\software\microsoft\InetStp"
$useIISProviderSnappin = $False
if ($iisVersion.MajorVersion -eq 7)
{
if ($iisVersion.MinorVersion -ge 5)
{
Import-Module WebAdministration
}
else
{
if(Get-PSSnapIn -Registered | Where {$_.Name -eq "WebAdministration"})
{
if (-not (Get-PSSnapIn | Where {$_.Name -eq "WebAdministration"}))
{
Add-PSSnapIn WebAdministration
}
}
elseif(Get-PSSnapIn -Registered | Where {$_.Name -eq "IIsProviderSnapIn"})
{
#older versions of server 2008 don't have the webadministration module!
if (-not (Get-PSSnapIn | Where {$_.Name -eq "IIsProviderSnapIn"}))
{
Add-PSSnapIn IIsProviderSnapIn
}
$useIISProviderSnappin = $True
}
else
{
throw "Unable to import any suitable modules... :( "
}
}
}
Function Get-IISWebsite()
{
if($useIISProviderSnappin)
{
return dir iis:\sites
}
else
{
return Get-Website
}
}