谁是使用 CFEXECUTE 调用的批处理文件创建的文件夹的所有者?
Who is the owner of a folder created with a batch file called by CFEXECUTE?
我正在 运行ning ColdFusion 9 添加 Windows 服务器数据中心。我写了一个批处理文件,在系统上创建一个目录。如果我用cfexecute
调用cmd.exe
到运行的批处理文件,创建目录的所有者是谁?是 运行s ColdFusion 的用户,还是创建批处理文件的用户,或者两者都不是?
我无法创建 Windows 计划任务,我无法使用 cfdirectory
创建文件夹,因为 CF 用户具有更高的权限,甚至 mode=777
不起作用。感谢任何意见或见解。
Coldfusion 执行的任何操作都是在运行 coldfusion 服务的用户的上下文中完成的,因此任何 files/folders 也将归该用户所有。
由于它是 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>
作为从 Java7+ 开始使用一点 NIO 对 , you can check the ownership of a file/directory 的简短补充:
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());
我正在 运行ning ColdFusion 9 添加 Windows 服务器数据中心。我写了一个批处理文件,在系统上创建一个目录。如果我用cfexecute
调用cmd.exe
到运行的批处理文件,创建目录的所有者是谁?是 运行s ColdFusion 的用户,还是创建批处理文件的用户,或者两者都不是?
我无法创建 Windows 计划任务,我无法使用 cfdirectory
创建文件夹,因为 CF 用户具有更高的权限,甚至 mode=777
不起作用。感谢任何意见或见解。
Coldfusion 执行的任何操作都是在运行 coldfusion 服务的用户的上下文中完成的,因此任何 files/folders 也将归该用户所有。 由于它是 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>
作为从 Java7+ 开始使用一点 NIO 对
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());