ASP经典创建一个文件夹,然后更改它
问题描述:
我是比较新的这整个ASP编程的经典的东西权限,我不工作在一个非常复杂的脚本。本质上,该脚本创建一个域用户帐户,然后在联网的计算机上创建其主文件夹。 I.E:\ SERVER \ DIR \ HOMEDIR。ASP经典创建一个文件夹,然后更改它
我的代码工作奇妙,当谈到做自己的主目录除外。它创建文件夹,但它涉及到权限更改时会获取并拒绝访问错误。我什至有另一个代码,将文件夹和其内容从一个目录移动到另一个。我已经做了我能想到的所有事情,IUSR_MACHINE帐户甚至是域管理员。
代码如下。有没有人有什么建议?任何帮助将非常感激!
的strHomeFolder的形式为:\ SERVER \ DIR \ DIR与开头两个反斜杠。我也有一个本地路径(C:\ DIR \ DIR)试过这种在本地服务器上,但没有工作,要么,同样拒绝访问。
谢谢
列维
Sub HomeDir()
%>
<br/>
Inside of Homedir()<br/>
<%
strHomeFolder = strHome & strUser
Set objFSO = server.CreateObject("Scripting.FileSystemObject")
Set objShell = server.CreateObject("Wscript.Shell")
If strHomeFolder <> "" Then
If Not objFSO.FolderExists(strHomeFolder) Then
On Error Resume Next
objFSO.CreateFolder strHomeFolder
If Err.Number <> 0 Then
'On Error GoTo 0
'Wscript.Echo "Cannot create: " & strHomeFolder
End If
'On Error GoTo 0
End If
On Error Resume Next
If objFSO.FolderExists(strHomeFolder) Then
%>
<br/>
folder exists<br/>
strHomeFolder = <%=strHomeFolder%><br/>
strUser = <%=strUser%><br/>
<%
'Assign user permission to home folder.
cmdtxt = "%COMSPEC% /c Echo Y| cacls " & strHomeFolder & " /t /c /g Administrators:F " & "SYSTEM:F engineering2\" & strUser & ":F"
intRunError = 25
intRunError = objShell.run(cmdtxt, 2, True)
%>
<br/>
intRunError = <%=intRunError%><br/>
<%
If intRunError <> 0 Then
%>
<br/>
Calcs is balking.......intRunError = <%=intRunError%><br/>
<%
'Wscript.Echo "Error assigning permissions for user " _
'& strUser & " to home folder " & strHomeFolder
End If
End If
End If
Set objFSO = Nothing
Set objShell = Nothing
End Sub
答
你给读/写访问的DIR文件夹?这需要在本地和服务器上完成。你有没有检查过这个许可?
Caio
什么是错误信息?如果试图在命令行上,而不是从VBScript运行完全相同的cacls命令,会发生什么? – Dan 2010-06-16 16:05:12
您好丹, 本来嘛,intrunerror = 0,这意味着成功,但没有成功。然后,我以这样的方式隔离calcs部分,以便我可以从终端获得stdout输出,并且会说:您确定(是/否)? ACCESS_DENIED:\\ SERVER \ DIR \ DIR。如果是本地的话也是一样。我甚至试图冒充另一个用户,每个http://support.microsoft.com/default.aspx?scid=kb;EN-US;248187,但没有奏效。当我在命令行中运行相同的确切代码时,它执行得很好。我现在尝试在VBScript之外的asp。 谢谢, Levi – 2010-06-16 16:14:20
我遇到了同样的问题,创建权限组的权限和设置组的文件夹权限的工具。在我的情况下,事实证明,新组在执行(x)cacls时不可见,所以我不得不建立一个等待/睡眠以使其工作。在旁注:您是否考虑使用PowerShell而不是cacls来执行此任务? – Filburt 2010-06-27 12:57:24