2012-05-22 6 views
12

Ich möchte PowerShell verwenden, um meine IIS7 auf Windows7 64 Bit zu verwalten.Add-PsSnapin WebAdministration in Windows7

Ich versuche IIS7 Powershell-Snap-In installieren http://www.iis.net/download/PowerShell

I "Als Administrator ausführen", dann den unten aufgeführten Befehl eingeben: msiexec/I iis7psprov_x64.msi aber ich bekomme diese Fehlermeldung: „Die Powershell-Snap-in Teil von Windows-Betriebssystem ist Bitte installieren Sie über Programme und Funktionen oder Server-Manager „

ich denke, diese Besonderheit nicht notwendig ist, das WebAdministration Modul zu laden, aber ich aktiv alle Optionen in“ Programme und Funktionen |.

wiederum Windows-Funktionen aktivieren oder deaktivieren | IIS | Web Management Tool s | IIS-Verwaltungsskripts und Werkzeuge

ich tun, um diese Kontrollen:

1.) Strom-Shell installiert

PS C:\Program Files\IIS> $Host.Version 


    Major Minor Build Revision 
    ----- ----- ----- -------- 
    2  0  -1  -1 



PS C:\Program Files\IIS> $PSVersionTable 
    Name       Value 
    ----       ----- 
    CLRVersion      2.0.50727.5448 
    BuildVersion     6.1.7601.17514 
    PSVersion      2.0 
    WSManStackVersion    2.0 
    PSCompatibleVersions   {1.0, 2.0} 
    SerializationVersion   1.1.0.1 
    PSRemotingProtocolVersion  2.1 



PS C:\Program Files\IIS> get-host 
    Name    : ConsoleHost 
    Version   : 2.0 
    InstanceId  : 445ad8f5-87fc-48f7-b010-f7faf948b86c 
    UI    : System.Management.Automation.Internal.Host.InternalHostUserInterface 
    CurrentCulture : es-ES 
    CurrentUICulture : es-ES 
    PrivateData  : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy 
    IsRunspacePushed : False 
    Runspace   : System.Management.Automation.Runspaces.LocalRunspace 

2.) Set-ExecutionPolicy -ExecutionPolicy {Ihre Execution Policy}

PS C:\Program Files\IIS> get-ExecutionPolicy 
Unrestricted 

3.) Import-Modul WebAdministration

PS C:\Program Files\IIS> Import-Module WebAdministration 
PS C:\Program Files\IIS> 

4.) C: \ Windows \ System32 \ Windows \ v1.0 \ Modules \ WebAdministration Pfad vorhanden

5.) Module und Snap-in

PS C:\Program Files\IIS> get-module -listavailable 

ModuleType Name      ExportedCommands 
---------- ----      ---------------- 
Manifest AppLocker     {} 
Manifest BitsTransfer    {} 
Manifest PSDiagnostics    {} 
Manifest TroubleshootingPack  {} 
Manifest WebAdministration   {} 



PS C:\Program Files\IIS> Get-PSSnapin -Registered 


Name  : SqlServerCmdletSnapin100 
PSVersion : 2.0 
Description : This is a PowerShell snap-in that includes various SQL Server cmdlets. 

Name  : SqlServerProviderSnapin100 
PSVersion : 2.0 
Description : SQL Server Provider 

Name  : TfsBPAPowerShellSnapIn 
PSVersion : 2.0 
Description : This is a PowerShell snap-in that includes Team Foundation Server cmdlets. 



PS C:\Program Files\IIS> get-pssnapin 


Name  : Microsoft.PowerShell.Diagnostics 
PSVersion : 2.0 
Description : Este complemento de Windows PowerShell contiene cmdlets de Eventos de Windows y de contador de rendimient 
       o. 

Name  : Microsoft.WSMan.Management 
PSVersion : 2.0 
Description : Este complemento de Windows PowerShell contiene cmdlets (como Get-WSManInstance y Set-WSManInstance) que 
       usa el host de Windows PowerShell para administrar operaciones WSMan. 

Name  : Microsoft.PowerShell.Core 
PSVersion : 2.0 
Description : Este complemento de Windows PowerShell contiene cmdlets usados para administrar los componentes de Window 
       s PowerShell. 

Name  : Microsoft.PowerShell.Utility 
PSVersion : 2.0 
Description : Este complemento de Windows PowerShell contiene cmdlets de utilidad que sirven para manipular datos. 

Name  : Microsoft.PowerShell.Host 
PSVersion : 2.0 
Description : Este complemento de Windows PowerShell contiene cmdlets (como Start-Transcript y Stop-Transcript) proporc 
       ionados para su uso con el host de la consola de Windows PowerShell. 

Name  : Microsoft.PowerShell.Management 
PSVersion : 2.0 
Description : El complemento Windows PowerShell contiene cmdlets de administración para administrar los componentes de 
       Windows. 

Name  : Microsoft.PowerShell.Security 
PSVersion : 2.0 
Description : Este complemento de Windows PowerShell contiene varios cmdlets para la administración de la seguridad de 
       Windows PowerShell. 





PS C:\Program Files\IIS> [System.Reflection.Assembly]::LoadFrom("C:\windows\system32\inetsrv\Microsoft.Web.Administration.dll") 

GAC Version  Location 
--- -------  -------- 
True v2.0.50727  C:\Windows\assembly\GAC_MSIL\Microsoft.Web.Administration\7.0.0.0__31bf3856ad364e35\Microsoft.... 



PS C:\Program Files\IIS> (New-Object Microsoft.Web.Administration.ServerManager) 


ApplicationDefaults  : Microsoft.Web.Administration.ApplicationDefaults 
ApplicationPoolDefaults : Microsoft.Web.Administration.ApplicationPoolDefaults 
ApplicationPools   : {DefaultAppPool} 
SiteDefaults    : Microsoft.Web.Administration.SiteDefaults 
Sites     : {Default Web Site} 
VirtualDirectoryDefaults : Microsoft.Web.Administration.VirtualDirectoryDefaults 
WorkerProcesses   : {} 




PS C:\Program Files\IIS> (New-Object Microsoft.Web.Administration.ServerManager).Sites 


ApplicationDefaults  : Microsoft.Web.Administration.ApplicationDefaults 
Applications    : {Default Web Site/} 
Bindings     : {[http] *:80:} 
Id       : 1 
Limits      : Microsoft.Web.Administration.SiteLimits 
LogFile     : Microsoft.Web.Administration.SiteLogFile 
Name      : Default Web Site 
ServerAutoStart   : True 
State      : Started 
TraceFailedRequestsLogging : Microsoft.Web.Administration.SiteTraceFailedRequestsLogging 
VirtualDirectoryDefaults : Microsoft.Web.Administration.VirtualDirectoryDefaults 
Attributes     : {name, id, serverAutoStart, state} 
ChildElements    : {bindings, limits, logFile, traceFailedRequestsLogging...} 
ElementTagName    : site 
IsLocallyStored   : True 
Methods     : {Start, Stop} 
RawAttributes    : {[name, Default Web Site], [id, 1], [serverAutoStart, True], [state, 1]} 
Schema      : Microsoft.Web.Administration.ConfigurationElementSchema 

6.) I in ps1-Datei versuchen

$succeeded = import-module WebAdministration 
Write-Host $succeeded 

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

gelang $ null ist, und "Add-pssnapin WebAdministration" erzeugt Fehlermeldung: Add-PSSnapin: Die Windows Powershell-Snap-in 'WebAdministration' nicht auf dem Rechner installiert ist.

PS C:\Program Files\IIS> Add-PSSnapin WebAdministration 
Add-PSSnapin : El complemento WebAdministration de Windows PowerShell no está instalado en este equipo 
En línea: 1 Carácter: 13 
+ Add-PSSnapin <<<< WebAdministration 
    + CategoryInfo   : InvalidArgument: (WebAdministration:String) [Add-PSSnapin], PSArgum 
    + FullyQualifiedErrorId : AddPSSnapInRead,Microsoft.PowerShell.Commands.AddPSSnapinCommand 

irgendwelche Vorschläge dazu? Warum schlägt Add-PSSnapin WebAdministration fehl?

UPDATE: Ich bin verwirrt, wann genau verwende ich Add-PSSnapin und wann verwende ich Import-Module

http://social.technet.microsoft.com/Forums/en/ITCG/thread/3e1ca6e1-d197-4c04-a145-1e922814a618

sicher, WebAdministration ist nur Module und has'nt PSSnapin. Könnte sein...

Referenzen:

Powershell IIS Snapin

Cannot install Powershell Snap-in

http://www.iis.net/download/PowerShell

http://learn.iis.net/page.aspx/429/installing-the-iis-powershell-snap-in/

http://learningpcs.blogspot.com.es/2010/08/powershell-iis-7-webadministration.html

Versión de Powershell instalada

Determine installed PowerShell version

+2

In IIS 7 war es ein Snap-In, aber sie machte es ein Modul in 7.5 so ist, warum Sie Import-Modul für 7.5 verwenden. –

+0

@Andy Arismendi, daher in IIS 7.5 (Windows 7, Win2008 R2) nicht möglich Snap-In für WebAdministration verwenden, nur Import-Modul verwenden – Kiquenet

Antwort

11

Hier ist die Funktion, die ich in meinem profile.ps1 haben die WebAdmin-Modul zum Laden. Es umfasst IIS 7 und 7,5

# Web administration is loaded as a module on Windows 2008 R2 but as a set of snapins 
# for Windows 2008 (not R2) 

function Util-Load-Web-Administration 
{ 
    $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) 
    { 
     try 
     { 
      if ((Get-PSSnapin -Registered | ForEach-Object {$_.Name}) -contains $ModuleName) 
      { 
       if ((Get-PSSnapin -Name $ModuleName -ErrorAction SilentlyContinue) -eq $null) 
        { Add-PSSnapin $ModuleName } 

       if ((Get-PSSnapin | ForEach-Object {$_.Name}) -contains $ModuleName) 
        { $ModuleLoaded = $true } 
      } 
      elseif ((Get-PSSnapin | ForEach-Object {$_.Name}) -contains $ModuleName) 
       { $ModuleLoaded = $true } 
     } 

     catch 
     { 
      Write-Error "`t`t$($MyInvocation.InvocationName): $_" 
      Exit 
     } 
    } 
} 
+0

Danke dafür, ich musste IIS in einem gemischten Server 2008 und Server 2008 R2 zu automatisieren und Windows 7-Umgebung und das hat sehr geholfen. – CIGuy

Verwandte Themen