Powershell Set-Item返回未设置为实例对象的对象引用

时间:2017-01-18 11:32:08

标签: powershell powershell-v4.0 powershell-v5.0

我在脚本中运行以下命令:

$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在与Sites(我指定的站点一起使用)时没有返回,因为我使用相同的结构设置一个Application游泳池,我没有遇到任何问题)

1 个答案:

答案 0 :(得分:1)

即使这不回答问题,我也找到了解决问题的方法:

而不是使用

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

用于设置WebSite的id可以使用以下命令:

Set-ItemProperty -Path IIS:\Sites\$WebSiteName -Name id -Value $WebSiteID