我想使用PowerShell Get-Website cmdlet检索有关特定IIS 7网站的信息。不幸的是,无论我传入的-Name参数如何,Get-Website都会返回所有网站的信息。似乎忽略了-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-Website应返回-Name参数中指定的网站的信息。我必须误解文档或滥用cmdlet,或两者兼而有之。
我应该如何使用Get-Website返回特定网站的信息?
答案 0 :(得分:26)
根据this forum post,这是Get-Website cmdlet中的错误。解决此问题的方法是使用Get-Item。
$website = "Test"
Get-Item "IIS:\sites\$website"
请务必使用双引号,使用单引号时不会展开变量。
答案 1 :(得分:13)
我意识到这是一篇较老的帖子,但我最近遇到了这个问题并找到了你的问题。我也很幸运使用以下语法:
get-website | where { $_.Name -eq 'foobar' }
答案 2 :(得分:7)
使用通配符也可以解决这个问题,如@Joey引用的连接主题中提到的那样
get-website -name "*Default Web Site*"