Большинство наших веб-приложений включают Deploy.ps1 Powershell script. Octopus Deploy использует это для настройки приложений во время производственных развертываний, но мы также используем его для настройки локальных параметров IIS для разработчиков. Работает отлично в Windows 7, Windows 8.1 и на всех наших производственных серверах Win2012.
Он не работает в Windows 10, и это происходит потому, что командлет Set-ItemProperty
не действует. Нет сообщения об ошибке или что-то еще, он ничего не делает.
Сайт IIS api.example.com уже существует, и мы используем Powershell для создания приложения /myapp, а затем изменим физический путь приложения на D:\Projects\Demo
PS C:\> IIS:
PS IIS:\> cd Sites\api.example.com
PS IIS:\Sites\api.example.com> New-WebApplication myapp -site api.example.com -PhysicalPath C:\inetpub\wwwroot
Name Application pool Protocols Physical Path
---- ---------------- --------- -------------
myapp DefaultAppPool http C:\inetpub\wwwroot
PS IIS:\Sites\api.example.com> set-itemproperty myapp -name PhysicalPath -value D:\Projects\Demo
PS IIS:\Sites\api.example.com> get-itemproperty myapp
Name Application pool Protocols Physical Path
---- ---------------- --------- -------------
demo DefaultAppPool http C:\inetpub\wwwroot
^ THIS IS WRONG!
Выполняя тот же набор команд в Windows 7, вы получаете идентичный результат, но на последнем шаге свойство PhysicalPath изменилось, как ожидалось:
PS IIS:\Sites\api.example.com> get-itemproperty myapp
Name Application pool Protocols Physical Path
---- ---------------- --------- -------------
demo DefaultAppPool http D:\Projects\Demo
Любая идея, что происходит? Есть ли какие-то новые ограничения администратора на IIS10? Какие-то дополнительные повышенные разрешения Мне нужно изменить настройки в существующих веб-приложениях или что-то еще?
UPDATE: он работает нормально, если элемент является сайтом IIS, но не удается, если элемент является веб-приложением, что заставляет меня задаться вопросом, может ли это быть просто ошибкой в провайдере. Любые идеи?