当在Windows 2003 、2000、XP中安装好IIS后,默认FSO组件是安装好并打开的,然而在设计ASP程序的时候,经常会发现FSO功能不好用,于是上网看了很多帖子,自己总结了一下。各位可按下列方法进行调试:
方法一:
一、系统没有开启FSO组件
系统没有开启FSO组件.
FSO组件的开启和关闭方法
Dll 文件的注册和注销:
运行cmd命令
注消FSO组件:RegSvr32 /u %windir%/SYSTEM32/scrrun.dll
启用FSO命令:RegSvr32 %windir%/SYSTEM32/scrrun.dll
二、多次注消、启动后还是出现错误,原因是没权限,不知道怎么造成的,下边提供解决方法
权限出现了问题,打开注册表加入权限!
在 开始-运行中敲入regedit,然后找到HKEY_CLASSES_ROOT/Scripting.FileSystemObject
右击权限,加入everyone,internet来宾帐号(IUSR...)用户确定,然后重新启动IIs即可搞定!
系统没有开启FSO组件.
FSO组件的开启和关闭方法
Dll 文件的注册和注销:
运行cmd命令
注消FSO组件:RegSvr32 /u %windir%/SYSTEM32/scrrun.dll
启用FSO命令:RegSvr32 %windir%/SYSTEM32/scrrun.dll
二、多次注消、启动后还是出现错误,原因是没权限,不知道怎么造成的,下边提供解决方法
权限出现了问题,打开注册表加入权限!
在 开始-运行中敲入regedit,然后找到HKEY_CLASSES_ROOT/Scripting.FileSystemObject
右击权限,加入everyone,internet来宾帐号(IUSR...)用户确定,然后重新启动IIs即可搞定!
方法二:
首先,在WINDOWS文件夹内搜索scrrun.dll,如果有就进行下一步,如果没有,下载一个。
然后,开始,运行,输入,regsvr32 scrrun.dll,确定 系统会提示scrrun.dll注册成功。
用动易提供的探针检查一下就会发现空间已有FSO支持了。
Windows中打开和关闭FSO文件读写权限的方法 Windows中打开和关闭FSO文件读写权限的方法:
windows98系统在DOS命令行状态输入以下命令:
关闭命令:RegSvr32 /u C:/WINDOWS/SYSTEM/scrrun.dll
打开命令:RegSvr32 C:/WINDOWS/SYSTEM/scrrun.dll
win2000系统:在CMD命令行状态输入以下命令:
关闭命令:RegSvr32 /u C:/WINNT/SYSTEM32/scrrun.dll
打开命令:RegSvr32 C:/WINNT/SYSTEM32/scrrun.dll
Windows XP/2003:在MS-DOS状态下面键入:
关闭命令:Regsvr32 /u c:/windows/system32/scrrun.dll
打开命令:Regsvr32 c:/windows/system32/scrrun.dll
然后,开始,运行,输入,regsvr32 scrrun.dll,确定 系统会提示scrrun.dll注册成功。
用动易提供的探针检查一下就会发现空间已有FSO支持了。
Windows中打开和关闭FSO文件读写权限的方法 Windows中打开和关闭FSO文件读写权限的方法:
windows98系统在DOS命令行状态输入以下命令:
关闭命令:RegSvr32 /u C:/WINDOWS/SYSTEM/scrrun.dll
打开命令:RegSvr32 C:/WINDOWS/SYSTEM/scrrun.dll
win2000系统:在CMD命令行状态输入以下命令:
关闭命令:RegSvr32 /u C:/WINNT/SYSTEM32/scrrun.dll
打开命令:RegSvr32 C:/WINNT/SYSTEM32/scrrun.dll
Windows XP/2003:在MS-DOS状态下面键入:
关闭命令:Regsvr32 /u c:/windows/system32/scrrun.dll
打开命令:Regsvr32 c:/windows/system32/scrrun.dll
当在本地测试网站时,IE报错 Microsoft VBScript 运行时错误 (0x800A01AD) 就应该去考虑用上面的解决办法了.
方法三:
现在绝大多数的虚拟主机都禁用了 ASP 的标准组件:FileSystemObject,因为这个组件为 ASP 提供了强大的
文件系统访问能力,可以对服务器硬盘上的任何文件进行读,写,复制,删除,改名等操作(当然,这是指在
使用默认设置的 Windows NT / 2000 下才能做到).但是禁止此组件后,引起的后果就是所有利用这个组件的
ASP 将无法运行,无法满足客户的需求.
如何既允许 FileSystemObject 组件,又不影响服务器的安全性(即:不同虚拟主机用户之间不能使用该组件
读写别人的文件)呢 这里介绍本人在实验中获得的一种方法,下文以 Windows 2000 Server 为例来说明.
在服务器上打开资源管理器,用鼠标右键点击各个硬盘分区或卷的盘符,在弹出菜单中选择"属性",选择"
安全"选项卡,此时就可以看到有哪些帐号可以访问这个分区(卷)及访问权限.默认安装后,出现的是"Eve
ryone"具有完全控制的权限.点"添加",将"Administrators","Backup Operators","Power Users
","Users"等几个组添加进去,并给予"完全控制"或相应的权限,注意,不要给"Guests"组,"IUSR_
机器名"这几个帐号任何权限.然后将"Everyone"组从列表中删除,这样,就只有授权的组和用户才能访问
此硬盘分区了,而 ASP 执行时,是以"IUSR_机器名"的身份访问硬盘的,这里没给该用户帐号权限,ASP 也
就不能读写硬盘上的文件了.
下面要做的就是给每个虚拟主机用户设置一个单独的用户帐号,然后再给每个帐号分配一个允许其完全控制的
目录.
如下图所示,打开"计算机管理"→"本地用户和组"→"用户",在右栏中点击鼠标右键,在弹出的菜单中
选择"新用户":
在弹出的"新用户"对话框中根据实际需要输入"用户名","全名","描述","密码","确认密码"
,并将"用户下次登录时须更改密码"前的对号去掉,选中"用户不能更改密码"和"密码永不过期".本例
是给第一虚拟主机的用户建立一个匿名访问 Internet 信息服务的内置帐号"IUSR_VHOST1",即:所有客户端
使用 http://***.***.***x/ 访问此虚拟主机时,都是以这个身份来访问的.输入完成后点"创建"即可.可
以根据实际需要,创建多个用户,创建完毕后点"关闭":
现在新建立的用户已经出现在帐号列表中了,在列表中双击该帐号,以便进一步进行设置:
在弹出的"IUSR_VHOST1"(即刚才创建的新帐号)属性对话框中点"隶属于"选项卡:
刚建立的帐号默认是属于"Users"组,选中该组,点"删除":
出现的是如下图所示,此时再点"添加":
333;this.alt='Click Here to Open New Window';}" border=0>
在弹出的"选择组"对话框中找到"Guests",点"添加",此组就会出现在下方的文本框中,然后点"确定
,点"确定"关闭此对话框:
{this.width=screen.width-打开"Internet 信息服务",开始对虚拟主机进行设置,本例中的以对"第一虚拟主机"设置为例进行说明,
右击该主机名,在弹出的菜单中选择"属性":
弹出一个"第一虚拟主机属性"的对话框,从对话框中可以看到该虚拟主机用户的使用的是"F:/VHOST1"这
暂时先不管刚才的"第一虚拟主机属性"对话框,切换到"资源管理器",找到"F:/VHOST1"(原文是单只修
改这一个目录,我觉得还是把整个盘符的everyone权限去了,增加administrators组,比较好)这个文件夹,右
击,选"属性"→"安全"选项卡,此时可以看到该文件夹的默认安全设置是"Everyone"完全控制(视不同
情况显示的内容不完全一样),首先将最将下的"允许将来自父系的可继承权限传播给该对象"前面的对号去
掉:
将如图中所示的"Administrator"(原文写的是administrator 但我觉得还是应该是administrators组,比较
好)及在前面所创建的新帐号"IUSR_VHOST1"添加进来,将给予完全控制的权限,还可以根据实际需要添加其
他组或用户,但一定不要将"Guests"组,"IUSR_机器名"这些匿名访问的帐号添加上去!
再切换到前面打开的"第一虚拟主机属性"的对话框,打开"目录安全性"选项卡,点匿名访问和验证控制的
"编辑":
在弹出的"验证方法"对方框(如下图所示),点"编辑":
弹出了"匿名用户帐号",默认的就是"IUSR_机器名",点"浏览":
在"选择用户"对话框中找到前面创建的新帐号"IUSR_VHOST1",双击:
此时匿名用户名就改过来了,在密码框中输入前面创建时,为该帐号设置的密码:
再确定一遍密码:
OK,完成了,点确定关闭这些对话框.
经此设置后,"第一虚拟主机"的用户,使用 ASP 的 FileSystemObject
组件也只能访问自己的目录:F:/VHOST1 下的内容,当试图访问其他内容时,会出现诸如"没有权限","硬
盘未准备好","500 服务器内部错误"等出错提示了.
另:如果该用户需要读取硬盘的分区容量及硬盘的序列号,那这样的设置将使其无法读取.如果要允许其
读取这些和整个分区有关的内容,请右键点击该硬盘的分区(卷),选择"属性"→"安全",将这个用户的
帐号添加到列表中,并至少给予"读取"权限.由于该卷下的子目录都已经设置为"禁止将来自父系的可继承
权限 A
文件系统访问能力,可以对服务器硬盘上的任何文件进行读,写,复制,删除,改名等操作(当然,这是指在
使用默认设置的 Windows NT / 2000 下才能做到).但是禁止此组件后,引起的后果就是所有利用这个组件的
ASP 将无法运行,无法满足客户的需求.
如何既允许 FileSystemObject 组件,又不影响服务器的安全性(即:不同虚拟主机用户之间不能使用该组件
读写别人的文件)呢 这里介绍本人在实验中获得的一种方法,下文以 Windows 2000 Server 为例来说明.
在服务器上打开资源管理器,用鼠标右键点击各个硬盘分区或卷的盘符,在弹出菜单中选择"属性",选择"
安全"选项卡,此时就可以看到有哪些帐号可以访问这个分区(卷)及访问权限.默认安装后,出现的是"Eve
ryone"具有完全控制的权限.点"添加",将"Administrators","Backup Operators","Power Users
","Users"等几个组添加进去,并给予"完全控制"或相应的权限,注意,不要给"Guests"组,"IUSR_
机器名"这几个帐号任何权限.然后将"Everyone"组从列表中删除,这样,就只有授权的组和用户才能访问
此硬盘分区了,而 ASP 执行时,是以"IUSR_机器名"的身份访问硬盘的,这里没给该用户帐号权限,ASP 也
就不能读写硬盘上的文件了.
下面要做的就是给每个虚拟主机用户设置一个单独的用户帐号,然后再给每个帐号分配一个允许其完全控制的
目录.
如下图所示,打开"计算机管理"→"本地用户和组"→"用户",在右栏中点击鼠标右键,在弹出的菜单中
选择"新用户":
在弹出的"新用户"对话框中根据实际需要输入"用户名","全名","描述","密码","确认密码"
,并将"用户下次登录时须更改密码"前的对号去掉,选中"用户不能更改密码"和"密码永不过期".本例
是给第一虚拟主机的用户建立一个匿名访问 Internet 信息服务的内置帐号"IUSR_VHOST1",即:所有客户端
使用 http://***.***.***x/ 访问此虚拟主机时,都是以这个身份来访问的.输入完成后点"创建"即可.可
以根据实际需要,创建多个用户,创建完毕后点"关闭":
现在新建立的用户已经出现在帐号列表中了,在列表中双击该帐号,以便进一步进行设置:
在弹出的"IUSR_VHOST1"(即刚才创建的新帐号)属性对话框中点"隶属于"选项卡:
刚建立的帐号默认是属于"Users"组,选中该组,点"删除":
出现的是如下图所示,此时再点"添加":
333;this.alt='Click Here to Open New Window';}" border=0>
在弹出的"选择组"对话框中找到"Guests",点"添加",此组就会出现在下方的文本框中,然后点"确定
,点"确定"关闭此对话框:
{this.width=screen.width-打开"Internet 信息服务",开始对虚拟主机进行设置,本例中的以对"第一虚拟主机"设置为例进行说明,
右击该主机名,在弹出的菜单中选择"属性":
弹出一个"第一虚拟主机属性"的对话框,从对话框中可以看到该虚拟主机用户的使用的是"F:/VHOST1"这
暂时先不管刚才的"第一虚拟主机属性"对话框,切换到"资源管理器",找到"F:/VHOST1"(原文是单只修
改这一个目录,我觉得还是把整个盘符的everyone权限去了,增加administrators组,比较好)这个文件夹,右
击,选"属性"→"安全"选项卡,此时可以看到该文件夹的默认安全设置是"Everyone"完全控制(视不同
情况显示的内容不完全一样),首先将最将下的"允许将来自父系的可继承权限传播给该对象"前面的对号去
掉:
将如图中所示的"Administrator"(原文写的是administrator 但我觉得还是应该是administrators组,比较
好)及在前面所创建的新帐号"IUSR_VHOST1"添加进来,将给予完全控制的权限,还可以根据实际需要添加其
他组或用户,但一定不要将"Guests"组,"IUSR_机器名"这些匿名访问的帐号添加上去!
再切换到前面打开的"第一虚拟主机属性"的对话框,打开"目录安全性"选项卡,点匿名访问和验证控制的
"编辑":
在弹出的"验证方法"对方框(如下图所示),点"编辑":
弹出了"匿名用户帐号",默认的就是"IUSR_机器名",点"浏览":
在"选择用户"对话框中找到前面创建的新帐号"IUSR_VHOST1",双击:
此时匿名用户名就改过来了,在密码框中输入前面创建时,为该帐号设置的密码:
再确定一遍密码:
OK,完成了,点确定关闭这些对话框.
经此设置后,"第一虚拟主机"的用户,使用 ASP 的 FileSystemObject
组件也只能访问自己的目录:F:/VHOST1 下的内容,当试图访问其他内容时,会出现诸如"没有权限","硬
盘未准备好","500 服务器内部错误"等出错提示了.
另:如果该用户需要读取硬盘的分区容量及硬盘的序列号,那这样的设置将使其无法读取.如果要允许其
读取这些和整个分区有关的内容,请右键点击该硬盘的分区(卷),选择"属性"→"安全",将这个用户的
帐号添加到列表中,并至少给予"读取"权限.由于该卷下的子目录都已经设置为"禁止将来自父系的可继承
权限 A
如果想关闭FSO组件,请运行regsvr32 /u scrrun.dll即可。