所以我试图让一个相当简单的脚本工作,但没有成功。我试图做的就是获取我们在不等于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'
以查看会发生什么,它仍然只是为我提供了默认网站输出。
我在这里做错了什么?我还是一个臭虫的受害者吗?
答案 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"