Set-ItemProperty PhysicalPath

Удаленное выполнение для настройки physicalPath ошибка со следующим сообщением:

Не могу найти диск. Диск с именем "IIS" не существует.

Что не так со следующим?

$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

1 ответ

Решение

Вам необходимо импортировать модуль внутри блока скриптов (модуль должен быть установлен на удаленном хосте). Кроме того, обеим переменным в блоке сценария назначен один и тот же аргумент ($args[0]), а первое назначение имеет ложную конечную запятую.

Использовать Param() блокировать вместо отдельных назначений переменных и удалять бессмысленные круглые скобки вокруг Set-ItemProperty,

$ScriptBlockContent = {
    Param($site, $newpath)
    Import-Module WebAdministration
    Set-ItemProperty -Path IIS:\\Sites\ABC_LIVE\$site -Name "physicalPath" -Value $newpath
}
Другие вопросы по тегам