Set-ItemProperty 物理路径

Set-ItemProperty physicalPath

设置 physicalPath 的远程执行出错并显示以下消息:

Cannot find drive. A drive with the name 'IIS' does not exist.

下面有什么问题吗?

$site    = Read-Host "What is the name of the virtual?"
$newpath = Read-Host "What is the NEW PATH of the new site?"

$ScriptBlockContent = {
    $site = $args[0],
    $newpath = $args[0]
    (Set-ItemProperty -Path IIS:\Sites\ABC_LIVE$site -Name "physicalPath" -Value "$newpath")
}

# Add the IIS PowerShell Module
Import-Module WebAdministration 

Invoke-Command -ComputerName DEVSERVERNAME -ScriptBlock $ScriptBlockContent -ArgumentList $site,$newpath

您需要在脚本块中导入模块(该模块必须安装在远程主机上)。此外,脚本块中的两个变量都分配了相同的参数 ($args[0]),并且第一个分配有一个虚假的尾随逗号。

使用 Param() 块而不是单独的变量赋值,并删除 Set-ItemProperty 周围无意义的括号。

$ScriptBlockContent = {
    Param($site, $newpath)
    Import-Module WebAdministration
    Set-ItemProperty -Path IIS:\Sites\ABC_LIVE$site -Name "physicalPath" -Value $newpath
}