2017-01-18 43 views
1

我運行一個腳本以下命令的對象:PowerShell的設置,項目的回報對象引用未設置爲一個實例

$currentSite = Get-Item IIS:\Sites\$WebSiteName 
$currentSite.id = $WebSiteID 
$currentSite | Set-Item 

,我想設置id一個網站。 此腳本適用於某些環境,不適用於其他環境(尋找不同的功能,希望儘快發佈)。

如果它不工作,它返回以下錯誤:

Set-Item : Object reference not set to an instance of an object. 
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidArgument: (:) [Set-Item], NullReferenceException 
    + FullyQualifiedErrorId : path,Microsoft.PowerShell.Commands.SetItemCommand 

因此,尋找一種解決方法我試過下面的代碼:

$currentSite = Get-Item IIS:\Sites\$WebSiteName 
$currentSite | Set-Item 

,但我得到了同樣的錯誤。

所以我想知道是否有一些參數需要Set-Item,但Get-Item在它與站點協同工作時不會返回(我指定了站點,因爲我使用了相同的結構來設置應用程序池,而我即使這不回答這個問題沒有得到任何問題)

+0

什麼'$ currentSite | gm'返回當你得到錯誤? – LotPings

+0

'TypeName:System.Object'你是否也需要這個列表? –

+0

試試'if($ currentSite -ne $ null){Write-Host currentSite不是null!在'Set-Item'調用之前}。從錯誤看來'路徑'爲空或者如果不爲空,它指向無處。因此,您應該嘗試使用另一個'Set-Item'語法,例如:'Set-Item -path IIS:\ Sites \ $ WebSiteName -value $ currentSite' –

回答

1

,我發現了針對該問題的解決方法:

改用

$currentSite = Get-Item IIS:\Sites\$WebSiteName 
$currentSite.id = $WebSiteID 
$currentSite | Set-Item 

的用於設置ID爲網站可以使用以下命令:

Set-ItemProperty -Path IIS:\Sites\$WebSiteName -Name id -Value $WebSiteID 
相關問題