AppCmd ​​para criar um diretório virtual no site padrão no IIS7

11

Eu tento criar um diretório virtual no "Site Padrão" no IIS 7 usando AppCmd.

Mas primeiro eu gostaria de ver se já existe. Como posso usar AppCmdpara criar um diretório virtual no "Site Padrão" e como posso fazer uma instrução if?

Riri
fonte

Respostas:

11

Tente o seguinte:

@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
fonte
Legal! É exatamente isso que eu preciso para começar! Obrigado! Parece que ServerFault pode ser tão bom quanto SO!
Riri
2
Isso não parece acionar um código de saída 1 para um diretório virtual inexistente para mim. Usando o IIS 7.5.
jpmc26
1

Tente isso. Principalmente o mesmo que a resposta dada por Christopher_G_Lewis, mas depende de uma análise da saída da lista em vez do código de erro, que também não recebo.

Também faz uso da construção de shell cmd.exe A || B (se A falhar, faça 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
fonte