Iis 7 Powershell获取网站名称参数被忽略
我想使用PowerShell Get-website cmdlet检索有关特定IIS 7网站的信息。不幸的是,Get-Website返回所有网站的信息,而与我传入的-Name参数无关。似乎忽略了-Name参数 例如,如果我使用: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
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个站点,运行这个命令并不是一个很大的延迟。