运行 OS 命令使用 apache-ant 到 IIS 配置
Running an OS command using apache-ant to IIS config
我正在尝试创建一个 ANT 脚本,其中包括配置 IIS。
为此,请尝试利用 appcmd
工具。但是得到一个奇怪的错误。 appcmd
命令 运行 在 ant 脚本外运行良好,但在 ant 脚本内失败。
我正在使用 exec 任务来启动它:
<exec dir="C:\Windows\System32\inetsrv\"
executable="C:\Windows\System32\inetsrv\appcmd.exe" output="d:\out.txt">
<arg value="appcmd set config /section:isapiCgiRestriction /+"
[path='${appian_home}\jakarta\ISAPI\isapi_redirect.dll',
description='Jakarta',allowed='True']"" />
</exec>
通过 ANT 捕获的输出是:
Object 'APPCMD SET CONFIG /SECTION:ISAPICGIRESTRICTION /+?
[PATH='D:\PTMP2\APPIAN17\JAKARTA\ISAPI\ISAPI_REDIRECT.DLL',
DESCRIPTION='JAKARTA',ALLOWED='TRUE']' is not supported.
Run 'appcmd.exe /?' to display supported objects.
然而当我运行
如果我将该命令发送到 dos 提示符,它会很高兴 运行 :
C:\Windows\System32\inetsrv>appcmd set config /section:isapiCgiRestriction
/+"[path='d:\ptmp2\appian17\jakarta5\ISAPI\isapi_redirect.dll',descripti
on='Jakarta',allowed='True']"
Applied configuration changes to section
"system.webServer/security/isapiCgiRestriction" for
"MACHINE/WEBROOT/APPHOST" at configuration commit path "M
ACHINE/WEBROOT/APPHOST"
还需要转义单引号。
还将路径单独更改为 /
使用如下:
<exec executable="cmd.exe" dir="C:/Windows/System32/inetsrv" failonerror="true">
<arg line="/c appcmd set config /section:isapiCgiRestriction /+"[path='${appian_home}/jakarta/ISAPI/isapi_redirect.dll',description='Jakarta',allowed='True']""/>
</exec>
我正在尝试创建一个 ANT 脚本,其中包括配置 IIS。
为此,请尝试利用 appcmd
工具。但是得到一个奇怪的错误。 appcmd
命令 运行 在 ant 脚本外运行良好,但在 ant 脚本内失败。
我正在使用 exec 任务来启动它:
<exec dir="C:\Windows\System32\inetsrv\"
executable="C:\Windows\System32\inetsrv\appcmd.exe" output="d:\out.txt">
<arg value="appcmd set config /section:isapiCgiRestriction /+"
[path='${appian_home}\jakarta\ISAPI\isapi_redirect.dll',
description='Jakarta',allowed='True']"" />
</exec>
通过 ANT 捕获的输出是:
Object 'APPCMD SET CONFIG /SECTION:ISAPICGIRESTRICTION /+?
[PATH='D:\PTMP2\APPIAN17\JAKARTA\ISAPI\ISAPI_REDIRECT.DLL',
DESCRIPTION='JAKARTA',ALLOWED='TRUE']' is not supported.
Run 'appcmd.exe /?' to display supported objects.
然而当我运行 如果我将该命令发送到 dos 提示符,它会很高兴 运行 :
C:\Windows\System32\inetsrv>appcmd set config /section:isapiCgiRestriction
/+"[path='d:\ptmp2\appian17\jakarta5\ISAPI\isapi_redirect.dll',descripti
on='Jakarta',allowed='True']"
Applied configuration changes to section
"system.webServer/security/isapiCgiRestriction" for
"MACHINE/WEBROOT/APPHOST" at configuration commit path "M
ACHINE/WEBROOT/APPHOST"
还需要转义单引号。
还将路径单独更改为 /
使用如下:
<exec executable="cmd.exe" dir="C:/Windows/System32/inetsrv" failonerror="true">
<arg line="/c appcmd set config /section:isapiCgiRestriction /+"[path='${appian_home}/jakarta/ISAPI/isapi_redirect.dll',description='Jakarta',allowed='True']""/>
</exec>