Windows7 中的 Add-PsSnapin WebAdministration [英] Add-PsSnapin WebAdministration in Windows7

查看:28
本文介绍了Windows7 中的 Add-PsSnapin WebAdministration的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用 PowerShell 在 Windows7 64 位上管理我的 IIS7.

I want to use PowerShell to administer my IIS7 on Windows7 64 bits.

我尝试安装 IIS7 Powershell 管理单元 http://www.iis.net/download/PowerShell

I try install IIS7 Powershell snap-in http://www.iis.net/download/PowerShell

我以管理员身份运行",然后键入下面列出的命令:msiexec/I iis7psprov_x64.msi 但我收到此错误消息:PowerShell 管理单元是 Windows 操作系统的一部分.请通过程序和功能安装或服务器管理器"

I "Run as administrator", then typing the command listed below: msiexec /I iis7psprov_x64.msi but I get this error message: "The PowerShell snap-in is part of Windows Operating System. Please install via Programs and Features or Server Manager"

我认为加载 WebAdministration 模块不需要此特定功能,但我激活了程序和功能 |

I think this particular feature is not necessary to load the WebAdministration module but I active all options in "Programs and features |

打开或关闭 Windows 功能 |信息系统 |网页管理工具 |IIS 管理脚本和工具

turn Windows features on or off | IIS | Web Management Tools | IIS Management Scripts and Tools

我会做这些检查:

1.) Power-Shell 已安装

1.) Power-Shell is installed

PS C:Program FilesIIS> $Host.Version


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



PS C:Program FilesIIS> $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 FilesIIS> 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 {您的执行策略}

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

PS C:Program FilesIIS> get-ExecutionPolicy
 Unrestricted

3.)Import-Module WebAdministration

3.)Import-Module WebAdministration

PS C:Program FilesIIS> Import-Module WebAdministration
 PS C:Program FilesIIS>

4.) C:WindowsSystem32WindowsPowerShellv1.0ModulesWebAdministration 路径存在

4.) C:WindowsSystem32WindowsPowerShellv1.0ModulesWebAdministration path exists

5.) 模块和管理单元

5.) Modules and Snap-in

PS C:Program FilesIIS> get-module -listavailable

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



PS C:Program FilesIIS> 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 FilesIIS> 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 FilesIIS> [System.Reflection.Assembly]::LoadFrom( "C:windowssystem32inetsrvMicrosoft.Web.Administration.dll" )

GAC    Version        Location
 ---    -------        --------
 True   v2.0.50727     C:WindowsassemblyGAC_MSILMicrosoft.Web.Administration7.0.0.0__31bf3856ad364e35Microsoft....



PS C:Program FilesIIS> (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 FilesIIS> (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.) 我在 ps1 文件中尝试

6.) I try in ps1 file

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

$succeeded 为空,并且add-pssnapin WebAdministration"产生错误消息:Add-PSSnapin:Windows PowerShell 管理单元WebAdministration"未安装在此计算机上.

$succeeded is null, and "add-pssnapin WebAdministration" produces error message: Add-PSSnapin : The Windows PowerShell snap-in 'WebAdministration' is not installed on this machine.

PS C:Program FilesIIS> 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

有什么建议吗?为什么 Add-PSSnapin WebAdministration 失败?

any suggestions about it ? Why fails Add-PSSnapin WebAdministration ?

更新:我很困惑什么时候使用 Add-PSSnapin,什么时候使用 Import-Module

UPDATE: I'm confused when exactly do I use Add-PSSnapin and when do I use Import-Module

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

当然,WebAdministration 只是模块,没有 PSSnapin.可能是……

surely, WebAdministration is only Module, and has'nt PSSnapin. May be...

参考资料:

PowerShell IIS 管理单元

PowerShell IIS Snapin

无法安装 Powershell 管理单元

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

PowerShell 安装版本

Versión de PowerShell instalada

确定已安装的 PowerShell 版本

推荐答案

这是我的 profile.ps1 中用于加载 WebAdmin 模块的函数.它涵盖 IIS 7 和 7.5

Here is the function I have in my profile.ps1 for loading the WebAdmin module. It covers IIS 7 and 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
        }
    }
}

这篇关于Windows7 中的 Add-PsSnapin WebAdministration的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆