IIS:启用特定文件夹的所有子文件夹的目录列表/浏览

IIS:启用特定文件夹的所有子文件夹的目录列表/浏览

目的是让一个文件夹(例如“upload”)在自动化过程中填充子文件夹。现在,每个子文件夹都应该可浏览(即目录浏览开启),但父文件夹(“upload”)不能浏览。如何做到这一点?

有没有办法在网络服务器中设置它?或者我需要一个脚本来将正确的 .htaccess 文件放在文件夹中?

谢谢。

答案1

通常,您只需在父目录中打开“目录浏览”,并允许其继承到子目录。但是,由于您不想要这种行为,因此您需要修改每个子目录的 IIS 元数据库(IIS 保存其配置的配置数据库)。

在 IIS 6 环境中(Windows 2003),我会使用 Microsoft 提供的“adsutil.vbs”脚本(默认位于 %SystemDrive%\inetpub\adminscripts 中)编写一个脚本,为每个子目录创建适当的元数据库条目。例如:

@echo off 
SET PARENT_DIR=C:\path\to\parent\directory
SET ADSUTIL=cscript C:\inetpub\adminscripts\adsutil.vbs 
SET METABASE_PATH=W3SVC/####/ROOT/path/to/parent/directory

for /f "usebackq delims=" %%i in (`dir /a /b /ad %PARENT_DIR%\*`) do call :do_directory "%%i"
goto end

:do_directory
%ADSUTIL% ENUM "%METABASE_PATH%/%~1" | find "IIsWebDirectory"
if errorlevel 1 goto create_directory
goto end

:create_directory
%ADSUTIL% CREATE "%METABASE_PATH%/%~1" "IIsWebDirectory" 
%ADSUTIL% SET "%METABASE_PATH%/%~1/DirBrowseFlags" "3221225534" 
%ADSUTIL% SET "%METABASE_PATH%/%~1/EnableDirBrowsing" "True"
%ADSUTIL% SET "%METABASE_PATH%/%~1/DirBrowseShowDate" "True"
%ADSUTIL% SET "%METABASE_PATH%/%~1/DirBrowseShowTime" "True"
%ADSUTIL% SET "%METABASE_PATH%/%~1/DirBrowseShowSize" "True"
%ADSUTIL% SET "%METABASE_PATH%/%~1/DirBrowseShowExtension" "True"
%ADSUTIL% SET "%METABASE_PATH%/%~1/DirBrowseShowLongDate" "True"
%ADSUTIL% SET "%METABASE_PATH%/%~1/EnableDefaultDoc" "True"

:end

将 #### 替换为站点编号和相应目录的路径。

相关内容