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

Powershell Set-Item returns Object reference not set to an object of an instance

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

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

我想在哪里设置网站的 ID。 此脚本适用于某些环境,但不适用于其他环境(寻找不同之处,希望 post 尽快)。

它不起作用的地方return出现以下错误:

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 在与站点一起工作时 return 不需要(我指定了站点,因为我使用的是相同的结构设置一个应用程序池,我没有遇到任何问题)

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

而不是使用

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

要设置网站的 ID,可以使用以下命令:

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