2012-05-22 21 views
12

Tôi muốn sử dụng PowerShell để quản trị IIS7 của mình trên Windows7 64 bit.Add-PsSnapin WebQuản trị trong Windows7

tôi cố gắng cài đặt IIS7 Powershell snap-in http://www.iis.net/download/PowerShell

tôi "Run as administrator", sau đó gõ lệnh liệt kê dưới đây: msiexec/I iis7psprov_x64.msi nhưng tôi nhận được thông báo lỗi này: "Các PowerShell snap-in là một phần của hệ điều hành Windows Vui lòng cài đặt qua Programs and Features hoặc server Manager "

tôi nghĩ rằng tính năng đặc biệt này là không cần thiết để tải các module WebAdministration nhưng tôi hoạt động tất cả các tùy chọn trong" Programs and Features |.

lượt Các tính năng của Windows bật hoặc tắt | IIS | s | IIS Scripts Quản lý và công cụ

tôi làm những kiểm tra:

1.) Power-Shell được cài đặt

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 {Policy Thực hiện của bạn}

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

3.) Nhập khẩu-mô-đun WebQuản trị

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

4.) C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Modules \ WebAdministration con đường tồn tại

5.) Modules và 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.) Tôi cố gắng trong tập tin ps1

$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 
} 

$ thành công là null, và "WebAdministration add-pssnapin" sản xuất thông báo lỗi: Add-PSSnapin: Windows PowerShell snap-in 'WebAdministration' không được cài đặt trên máy tính này.

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 

bất kỳ đề xuất nào về nó? Tại sao thất bại trong việc quản trị Web Add-PSSnapin?

UPDATE: Tôi đang bối rối khi chính xác để tôi sử dụng Add-PSSnapin và khi nào tôi sử dụng lệnh Import-Module

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

chắc chắn, WebAdministration chỉ Module, và PSSnapin has'nt. Có lẽ...

Tài liệu tham khảo:

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

phiên bản de PowerShell instalada

Determine installed PowerShell version

+2

Trong IIS 7 nó là một snap-in nhưng chúng làm cho nó thành một mô-đun 7,5 nên đó là lý do tại sao bạn phải sử dụng mô-đun nhập cho 7,5. –

+0

@Andy Arismendi, do đó, trong IIS 7.5 (Windows 7, Win2008 R2) không thể sử dụng snap-in cho WebAdministration, chỉ sử dụng mô-đun nhập – Kiquenet

Trả lời

11

Dưới đây là chức năng tôi có trong profile.ps1 tôi cho tải mô-đun webadmin. Nó bao gồm IIS 7 và 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

Cảm ơn vì điều này, tôi cần phải tự động hóa IIS trong một máy chủ hỗn hợp 2008 và Server 2008 R2 và môi trường Windows 7 và điều này đã giúp ích rất nhiều. – CIGuy

Các vấn đề liên quan