使用-ne Not Equals获取网站问题

时间:2013-04-25 19:52:47

标签: windows iis powershell windows-server-2003

所以我试图让一个相当简单的脚本工作,但没有成功。我试图做的就是获取我们在不等于Default Web Site的服务器上拥有的其他网站的名称。我知道Get-Website的{​​{1}}错误,并尝试了所有变通方法,但没有成功。一切都在写“默认网站”我很难过。我应该提一下,我需要在使用PS 2.0的IIS6服务器上完成这项工作。

以下是我的尝试:

-Name

$site = Get-Website | Where {$_.Name -ne 'Default Web Site'}
$sitname = $site
Write-Host $sitename

$site = Get-Website | Where {$_.Name -ne '*Default Web Site*'}
$sitname = $site
Write-Host $sitename

$site = Get-Item "IIS:\sites" | where {$_.Name -ne 'Default Web Site'}
$sitname = $site
Write-Host $sitename

我甚至尝试将$site = Get-Item "IIS:\sites" | where {$_.Name -ne '*Default Web Site*'} $sitname = $site Write-Host $sitename 更改为-ne 'Default Web Site'以查看会发生什么,它仍然只是为我提供了默认网站输出。

我在这里做错了什么?我还是一个臭虫的受害者吗?

2 个答案:

答案 0 :(得分:0)

第2行有拼写错误。$sitname应为$sitename(中间缺少e)。正确的代码:

$site = Get-Website | Where {$_.Name -ne 'Default Web Site'}
$sitename = $site
Write-Host $sitename

但是,Get-Website不只是返回一个字符串 - 它返回Microsoft.IIs.PowerShell.Framework.ConfigurationElement。要获取网站名称,您需要执行以下操作:

$sitenames = Get-Website | Where {$_.Name -ne 'Default Web Site'}|select-object Name

答案 1 :(得分:0)

在我成功解决这个问题之后,这是最终的代码。

Import-Module WebAdministration
$getnames = Get-Website | Where {$_.Name -like 'oldsite.com'}|select-object Name
$sitenames = $getnames.name
Write-Host $sitenames
$itemproperty = "IIS:\Sites\" + $sitenames
Set-ItemProperty $itemproperty -name Name -value Newwebsite.com
Write-Host $sitenames + "has been renamed to Newwebsite.com"