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