谁是使用CFEXECUTE调用的batch file创build的文件夹的所有者?

我正在运行ColdFusion 9添加Windows Server Datacenter。 我写了一个batch file,在系统上创build一个目录。 如果我使用cfexecute来调用cmd.exe来运行该batch file,谁是创build目录的所有者? 是运行ColdFusion的用户,还是创buildbatch file的用户,还是两者都不是?

我受限于创buildWindows计划任务,而且我无法使用cfdirectory创build文件夹,因为CF用户具有提升的权限,即使mode=777也不起作用。 任何input或洞察力,表示赞赏。

Coldfusion执行的任何操作都是在coldfusion服务运行的用户的上下文中完成的,因此任何文件/文件夹都将由该用户拥有。 由于它是一个Windows服务器,您不能使用unix命令来更改权限。

如果你有权访问cfexecute,那么你几乎可以从命令行做任何事情,所以限制cfdirectory是非常没有意义的,也许你应该指出这一点。 如果他们想要限制访问,那么使用安全沙箱和服务运行的用户权限会更好。

如果使用Windows,CFX_EXEC是一个提供比ColdFusion的内置CFExecute更多功能的选项:

http://adiabata.com/cfx_exec.cfm

它是用C ++编写的,应该可以在Windows上成功安装所有版本的ColdFusion。 它将使您能够在特定的帐户下运行外部进程,甚至执行即时批处理文件创建。

 <!--- Credential Check ---> <cf_exec fnc="USER" user="#user#" pwd="#pwd#" domain="#domain#"> <cfif status neq "OK"> <cfoutput>Error: #MSG#<br> Error number: #ERRN#</cfoutput> <cfelse> Credentials OK </cfif> <!--- On-the-fly BAT file ---> <cf_exec cmd="cmd.exe" user="#user#" pwd="#pwd#" domain="#domain#"> @echo off netstat -e cd c:\ dir "<cfoutput>#dir#</cfoutput>" ipconfig /all exit </cf_exec> 

作为蛇的正确答案的简要补充,您可以使用一些NIO来检查Java7 + 的文件/目录的所有权 :

  Paths = createObject("java", "java.nio.file.Paths"); Files = createObject("java", "java.nio.file.Files"); fileOrDirectoryToCheck = Paths.get("c:\path\someFolder\", []); owner = Files.getOwner(fileOrDirectoryToCheck, []); writeDump("Owner: " & owner.getName());