Set-ItemProperty работает в PowerShell 5.1, но не в 7.0 - PullRequest
0 голосов
/ 26 марта 2020

Я установил PowerShell 7.0 и начал некоторое тестирование. Следующий скрипт работает без ошибок в PowerShell 5.1.

Import-Module WebAdministration

Set-ItemProperty "IIS:\Sites\TestSite" -Name physicalPath -Value "D:\Dev\Test\Website\WebSiteDown"

В PowerShell 7.0 я пытался изменить импорт, чтобы использовать обновленный модуль «IISAdministration» вместо более старого «WebAdministration». Я получаю одинаковую ошибку с обоими модулями.

Set-ItemProperty: D:\Dev\OProTrunk\Website\WebSiteDown\OctopusCommand\Test.ps1:3
Line |
   3 |  Set-ItemProperty "IIS:\Sites\TestSite" -Name physicalPath -Value  …
     |  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | Cannot find drive. A drive with the name 'IIS' does not exist.

Оба работали от имени администратора, чтобы иметь возможность обновить физический путь веб-сайта. Нужно ли форматировать свойство по-другому в PowerShell 7.0?

1 Ответ

1 голос
/ 26 марта 2020

Насколько я могу судить, вам необходимо взаимодействовать с вашим сеансом совместимости для Windows PowerShell здесь.

Import-Module WebAdministration
$session = Get-PSSession -Name WinPSCompatSession
$sb = {Set-ItemProperty "IIS:\Sites\TestSite" -Name physicalPath -Value "D:\Dev\Test\Website\WebSiteDown"}
Invoke-Command -Scriptblock $sb -Session $session

IIS PSDrive создается поставщиком WebAdministration. Поскольку этот провайдер загружает только в Windows PowerShell (по крайней мере, в моей системе), вам нужно будет получить к нему доступ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...