Iis 7 Powershell获取网站名称参数被忽略

Iis 7 Powershell获取网站名称参数被忽略,iis-7,windows-7,powershell,Iis 7,Windows 7,Powershell,我想使用PowerShell Get-website cmdlet检索有关特定IIS 7网站的信息。不幸的是,Get-Website返回所有网站的信息,而与我传入的-Name参数无关。似乎忽略了-Name参数 例如,如果我使用: Import-Module WebAdministration Get-Website -Name "Test Website" 我将收到我机器上所有网站的信息: Name ID State Physical Path

我想使用PowerShell Get-website cmdlet检索有关特定IIS 7网站的信息。不幸的是,Get-Website返回所有网站的信息,而与我传入的-Name参数无关。似乎忽略了-Name参数

例如,如果我使用:

Import-Module WebAdministration
Get-Website -Name "Test Website"
我将收到我机器上所有网站的信息:

Name             ID   State      Physical Path                  Bindings
----             --   -----      -------------                  --------
Default Web Site 1    Started    %SystemDrive%\inetpub\wwwroot  http *:80:
                                                                net.tcp 808:*
                                                                net.pipe *
                                                                net.msmq localhost
                                                                msmq.formatname localhost
Test Website     2    Started    C:\websites\test               http *:80:test.mydomain.com
根据文档,Get网站应该返回在-Name参数中指定的网站的信息。我一定是误解了文档或误用了cmdlet,或者两者兼而有之

我应该如何使用Get网站返回特定网站的信息

根据,这是Get-Website cmdlet中的一个bug。解决此问题之前的解决方法是使用Get项

$website = "Test"
Get-Item "IIS:\sites\$website"

请务必使用双引号,使用单引号时变量不会展开。

我知道这是一篇较旧的文章,但我最近遇到了这个问题,发现了您的问题。我也很幸运地使用了以下语法:

get-website | where { $_.Name -eq 'foobar' }

使用通配符也可以解决这个问题,正如@Joey引用的连接主题中的解决方法所述

get-website -name "*Default Web Site*"

旁注:为了清楚起见,新手(像我一样):不需要声明变量。这种解决方法的问题是,所有网站都会列出,然后过滤。当你有几个网站的时候,不会有太多的问题,但是我们中的一些人在一个IIS服务器中合法地有很多网站。没错,它会返回所有网站,然后过滤。我更喜欢左过滤右格式化,但这不是一个选项,这也是我不得不做这个变通的原因。我每台服务器也有200-300个站点,运行这个命令并不是一个很大的延迟。