2016-04-08 4 views
16

Большинство наших веб-приложений включает сценарий Powershell Deploy.ps1. Octopus Deploy использует это для настройки приложений во время производственных развертываний, но мы также используем его для настройки локальных параметров IIS для разработчиков. Работает отлично в Windows 7, Windows 8.1 и на всех наших производственных серверах Win2012.Почему Set-ItemProperty не влияет на приложения IIS под Windows 10?

Это не работает в 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, но не удается, если элемент является веб-приложением, что заставляет меня задаться вопросом, может ли это быть просто ошибкой в ​​провайдере. Есть идеи?

+0

Это ошибка, пожалуйста, проголосуйте. https://windowsserver.uservoice.com/forums/301869-powershell/suggestions/15077202-make-propeties-name-case-insensitive-for-creating – zerocool18

ответ

15

Я не знаю, почему, но первая буква свойства, которую вы хотите установить, должна быть строчной буквы e. г. physicalPath

Это будет работать:

set-itemproperty myapp -name physicalPath -value D:\Projects\Demo 

Похоже, ошибка для меня, но это обозначение (первая буква в нижнем регистре) также работает для других ОС Windows сред, таким образом, должна быть действительным обходным путем.

-1

Это работает для меня (без Set-Location):

Set-ItemProperty IIS:\sites\$sitename\$appName -Name applicationPool -Value $appPoolName 
3

Я был в состоянии воспроизвести проблему. Set-ItemProperty работал для меня, если я работал на сайте.

Эти командлеты находятся в модуле WebAdministration, и я проверил полную документацию. Кажется, что они используют только сайты в соответствующих примерах. Вы также можете проверить то же самое, если вы еще этого не сделали, здесь: Web Administration (IIS) Provider for Windows PowerShell

Как вы указали, это может быть ошибка. Я бы рекомендовал сообщить об этом здесь: Microsoft Connect - PowerShell

+0

Соединение заменяется на https://windowsserver.uservoice.com/forums/ 301869-PowerShell –

 Смежные вопросы

  • Нет связанных вопросов^_^