使用Apache的蚂蚁IIS配置运行的操作系统命令(Running an OS command us

2019-09-29 04:44发布

我试图创建一个ANT脚本,除其他事项外将配置IIS。
要做到这一点,试图利用该appcmd工具。 但是得到一个奇怪的错误。 该appcmd命令运行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 /+&quot;
[path='${appian_home}\\jakarta\\ISAPI\\isapi_redirect.dll',
description='Jakarta',allowed='True']&quot;" />
</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.

然而,当我运行如果我C&P该命令的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"

Answer 1:

需要逃脱单引号为好。

也改变路径分离以/

以下用途:

<exec executable="cmd.exe" dir="C:/Windows/System32/inetsrv" failonerror="true">
    <arg line="/c appcmd set config /section:isapiCgiRestriction /+&quot;[path=&apos;${appian_home}/jakarta/ISAPI/isapi_redirect.dll&apos;,description=&apos;Jakarta&apos;,allowed=&apos;True&apos;]&quot;"/>
</exec>


文章来源: Running an OS command using apache-ant to IIS config
标签: ant iis-7 appcmd