Cómo cambiar el Physical Path a un website en IIS 7 desde CLI

La herramienta appcmd de IIS 7 permite realizar todo tipo de modificaciones en Internet Information Services  7 a través de la línea de comandos. Muy útil cuando tenemos que realizar cambios de configuración, scripts o tareas masivas. APPCMD se encuentra dentro del directorio «inetsrv»:

C:\Windows\system32\inetsrv

ó

%windir%\system32\inetsrv

Antes de realizar la modificación de cualquier parámetro, podemos listar y verificar la configuración del website con el siguiente comando (ejemplo website www.foo.com):

PS C:\Windows\system32\inetsrv> .\appcmd.exe list SITE "www.foo.com" /config
<site name="www.foo.com" id="1979809497" serverAutoStart="true">
<bindings>
<binding protocol="http" bindingInformation=":80:www.foo.com" />
</bindings>
<limits maxBandwidth="4294967295" maxConnections="4294967295" />
<logFile logFormat="W3C" />
<traceFailedRequestsLogging />
<applicationDefaults />
<virtualDirectoryDefaults />
<ftpServer>
<connections />
<security>
<dataChannelSecurity />
<commandFiltering>
</commandFiltering>
<ssl />
<sslClientCertificates />
<authentication>
<anonymousAuthentication />
<basicAuthentication />
<clientCertAuthentication />
<customAuthentication>
<providers>
</providers>
</customAuthentication>
</authentication>
</security>
<customFeatures>
<providers>
</providers>
</customFeatures>
<messages />
<fileHandling />
<firewallSupport />
<userIsolation>
<activeDirectory />
</userIsolation>
<directoryBrowse />
<logFile />
</ftpServer>
<application path="/" applicationPool="foo.com">
<virtualDirectoryDefaults />
<virtualDirectory path="/" physicalPath="\\192.168.1.100\v_IIS\foo.com\www.foo.com" />
</application>
</site>

En este caso queremos modificar el Physical Path del directorio virtual raíz virtualDirectory path=»/». El comando es el siguiente:

C:\Windows\system32\inetsrv> .\appcmd set VDIR "www.foo.com/" -physicalPath:"C:\inetpub\foo.com"

Está bastante claro, lo único que conviene aclarar es que al vdir le añadimos la barra al final «www.foo.com/» porque estamos modificando el Physical Path del Virtual Directory con path virtual path=»/».

Para cualquier duda, podéis ejecutar el comando sin argumentos y visualizar la ayuda básica. Para información sobre objetos concretos se puede ir afinando la búsqueda de ayuda:

appcmd /?
appcmd site /?
appcmd add site /?