2013-04-25 72 views
0

所以我試圖讓一個相當簡單的腳本來工作,但都沒有成功。我所要做的只是獲取我們在服務器上的其他網站的名稱,其不等於Default Web Site。我意識到-NameGet-Website錯誤,並嘗試了所有解決方法,但都沒有成功。一切寫入「默認網站」我很難過。我應該提到我需要在使用PS 2.0的IIS6的2003服務器上完成這項工作。與-ne獲取,網站的問題不等同

這裏是I'ved嘗試:

$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'更改爲-eq 'Second Site Name以查看會發生什麼,並且它仍然給我提供默認網站輸出。

我在這裏做錯了什麼?我仍然是一個bug的受害者?

回答

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" 
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 
+0

感謝察覺這一點。我用你的建議和輸出如下所示:@ {名稱= NewTest} 我如何得到它顯示是這樣的:NewTest – bbinnebose 2013-04-25 21:02:52

+0

是你與我的代碼(只有一行)最後一位得到的輸出? – alroc 2013-04-26 01:11:19

+0

正確,運行代碼並執行寫入主機後的確切輸出是:'@ {name = Newtest' – bbinnebose 2013-04-26 14:37:39