IIS 7.5 PowerShell 模块使用问题

9

有人成功地使用这个模块了吗?我正在运行32位的Windows 7,在管理员模式下打开了一个管理员shell,导入了WebAdministration模块,然后尝试使用命令时遇到了一些问题,这里提供两个示例。

网站

我使用以下命令创建了一个网站:

new-website -name testsite -port 80 -hostheader testsite -physicalpath c:\temp

然后我尝试使用命令 get-website -name testsite 获取网站的详细信息,但它总是返回所有网站,似乎忽略了-name参数。唯一的方法是使用过滤器来获取该网站。

get-website | ? { $_.name -eq 'testsite' } | get-member

当我使用appcmd时,使用以下命令可以按预期工作:
C:\> C:\Windows\System32\inetsrv\appcmd.exe list site testsite

应用程序池

当我尝试使用以下命令列出应用程序池时:

dir iis:\apppools

我收到了以下错误:
Get-ChildItem : Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

但是,当我使用以下命令行语句“appcmd”时,我按预期获得了所有应用程序池,没有任何错误。

C:\Windows\System32\inetsrv\appcmd.exe list apppool

有人成功地使用WebAdministration模块吗?

谢谢您的帮助。
Pat

3个回答

9

如果您已经以管理员身份运行PowerShell,并且已禁用Windows UAC,但仍然看到此错误,请确保WAS(Windows Process Activation Service)正在运行。 您可以停止W3SVC,但是如果停止了WAS,PowerShell肯定会给出相同的“访问被拒绝”错误。


0

您需要确保 PowerShell 窗口正在以管理员身份运行,尝试在“开始”菜单上右键单击并使用“以管理员身份运行”选项来确保它以管理员身份运行。


0
关于 Get-Website 忽略 -Name 参数的问题,根据 this forum post 的帖子,这似乎是一个 bug。解决方法是使用 Get-Item。
$website = "Default Web Site"
Get-Item "IIS:\sites\$website"

请确保使用双引号,当使用单引号时,变量不会被扩展。

关于浏览应用程序池,我怀疑这是权限问题,正如CarlosAg所提到的。请确保您正在以提升的权限运行PowerShell。我通常通过右键单击它并选择“以管理员身份运行”来启动PowerShell。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接