powershell windows-10 iis-10 web-administration

powershell - ¿Por qué Set-ItemProperty no tiene ningún efecto para las aplicaciones IIS en Windows 10?



windows-10 iis-10 (3)

Esto funciona para mí (sin Set-Location):

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

La mayoría de nuestras aplicaciones web incluyen un script Deploy.ps1 de Powershell. Octopus Deploy usa esto para configurar aplicaciones durante las implementaciones de producción, pero también lo usamos para configurar las configuraciones locales de IIS de los desarrolladores. Funciona absolutamente bien en Windows 7, Windows 8.1 y en todos nuestros servidores de producción Win2012.

No está funcionando en Windows 10, y esto parece ser porque el cmdlet Set-ItemProperty no tiene ningún efecto. Ningún mensaje de error ni nada, simplemente no hace nada.

El sitio IIS api.example.com ya existe, y estamos usando Powershell para crear la aplicación / myapp y luego cambiar la ruta física de la aplicación a 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!

Al ejecutar exactamente el mismo conjunto de comandos en Windows 7, obtiene un resultado idéntico, pero en el último paso la propiedad PhysicalPath ha cambiado como se esperaba:

PS IIS:/Sites/api.example.com> get-itemproperty myapp Name Application pool Protocols Physical Path ---- ---------------- --------- ------------- demo DefaultAppPool http D:/Projects/Demo

¿Tienes idea de lo que está pasando? ¿Hay alguna nueva restricción de administrador en IIS10? ¿Algún tipo de permisos extra elevados necesito modificar la configuración de las aplicaciones web existentes o algo así?

ACTUALIZACIÓN : parece funcionar bien si el elemento es un sitio de IIS, pero falla si el elemento es una aplicación web, por lo que me pregunto si esto podría ser un error en el proveedor. ¿Algunas ideas?


No sé por qué, pero la primera letra de la propiedad que desea establecer debe estar en minúsculas, por ejemplo, physicalPath

Esto funcionará:

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

Me parece un error, pero esta notación (primera letra en minúscula) también funciona para otros entornos de Windows, por lo que debería ser una solución válida.


Pude replicar su problema Set-ItemProperty me funcionó si estaba trabajando en un sitio.

Estos cmdlets son del módulo de administración web y he revisado la documentación completa. Parece que solo están usando sitios web en los ejemplos relevantes. También puede consultar el mismo, si aún no lo ha hecho, aquí: Proveedor de administración web (IIS) para Windows PowerShell

Como usted señaló, tal vez sea un error. Recomendaría informar sobre esto aquí: Microsoft Connect - PowerShell