AppCmd ​​para crear un directorio virtual en el sitio web predeterminado en IIS7

11

Intento crear un directorio virtual en el "Sitio web predeterminado" en IIS 7 usando AppCmd.

Pero primero me gustaría ver si ya existe uno. ¿Cómo puedo usar AppCmdpara crear un directorio virtual en el "Sitio web predeterminado" y cómo puedo hacer una declaración if?

Riri
fuente

Respuestas:

11

Prueba esto:

@ECHO OFF
REM --------------------------------------------------------------------------------
REM Check for and create VDir under Default Web Site
REM
REM %1 is the VDIR to create
REM %2 is the Physical path to the VDIR 
REM --------------------------------------------------------------------------------

IF "%1"=="" GOTO Syntax
IF "%2"=="" GOTO Syntax

ECHO Running...
ECHO   AppCmd.exe list vdir "Default Web Site/%1/"
ECHO.
AppCmd.exe list vdir "Default Web Site/%1/"
IF %errorlevel%==1 GOTO Exists

ECHO.
ECHO Running...
ECHO   AppCmd.exe ADD vdir /app.name:"Default Web Site/" /path:/%1 /physicalPath:%2
ECHO.
AppCmd.exe ADD vdir /app.name:"Default Web Site/" /path:/%1 /physicalPath:%2

GOTO End

:Exists
ECHO.
ECHO VDir already exists
ECHO.
GOTO End

:SYNTAX
ECHO.
ECHO VDir Name and Physical Path Required
ECHO.
ECHO CreateVDir.CMD ^<VDirName^> C:\PhysPath
ECHO.

:END
Christopher_G_Lewis
fuente
¡Frio! ¡Esto es justo lo que necesito para comenzar! ¡Gracias! ¡Parece que ServerFault podría ser tan bueno como SO!
Riri el
2
Esto no parece desencadenar un código de salida de 1 para un directorio virtual inexistente para mí. Usando IIS 7.5.
jpmc26
1

Prueba esto. Principalmente lo mismo que la respuesta dada por Christopher_G_Lewis, pero se basa en un análisis de la salida de la lista en lugar del código de error, que tampoco obtengo.

También hace uso de la construcción de shell cmd.exe A || B (si A falla, entonces B)

@ECHO OFF
REM --------------------------------------------------------------------------------
REM Check for and create VDir under Default Web Site
REM
REM %1 is the VDIR to create
REM %2 is the Physical path to the VDIR 
REM --------------------------------------------------------------------------------

IF "%1"=="" GOTO Syntax
IF "%2"=="" GOTO Syntax

AppCmd.exe list vdir "Default Web Site/%1/" | findstr /I "Default Web Site/%1/" || AppCmd.exe add vdir /app.name:"Default Web Site/" /path:/%1 /physicalPath:%2

goto :eof
James Hebben
fuente