IIS管理器也是通过调用iisvdir.vbs来实现虚拟目录的创建和删除的。我们可以通过命令行的方式来执行iisvdir.vbs脚本
1)创建虚拟目录:
cscript c:\windows\system32\iisvdir.vbs [/s server] [/u username /p password] /create [virtualRoot] Alias PhysicalPath
2)删除虚拟目录:
1cscript c:\windows\system32\iisvdir.vbs [/s server] [/u username /p password] /delete [virtualRoot]/Alias
3)查看指定虚拟目录下的全部子目录:
1cscript c:\windows\system32\iisvdir.vbs [/s server] [/u username /p password] /query virtualRoot
应用到: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2
Iisvdir.vbs:IIS 虚拟目录脚本
在运行带有 Internet 信息服务 (IIS) 6.0 的 Windows Server 2003 的服务器上创建和删除网站的虚拟目录。
要查看该命令语法,请单击以下命令:
"codetitle">复制代码 代码如下:
iisvdir /create Finance Insurance c:\projects\insurance\html
作为响应,Iisvdir.vbs 显示如下消息,表示命令已成功执行,同时显示新虚拟目录的基本属性:
Connecting to server ...Done.Virtual Path = Finance/Insurance ROOT = c:\projects\insurance\html Metabase Path = W3SVC/1509060625/ROOT/Insurance
WebSite、Name 和 PhysicalPath 参数必须按命令中的指定顺序出现。下面这个命令与前一个命令相同,只是参数顺序不同:
iisvdir /create c:\projects\insurance\html Finance Insurance
该命令失败,错误解释了参数,Iisvdir.vbs 将报告找不到名为“c:”的网站。
在网站路径中创建虚拟目录
下面的命令将在远程服务器 Svr01 的 Finance 网站上创建名为 Updates 的虚拟目录。它使用 /s 命令来标识服务器计算机,使用 /u 和 /p 命令通过用户管理员帐户权限运行 Iisvdir.vbs。
该命令将新的虚拟目录创建为 Finance/Insurance 目录的子目录。该命令使用 Finance 网站的配置数据库路径 W3SVC/1509060625 来标识该网站。它通过将其附加到网站名称来指明虚拟路径 Finance/Insurance。
最后,该命令将 Updates 目录与存储在远程计算机 C:\Newstuff\Web 中的内容相关联。
iisvdir /createW3SVC/1509060625/InsuranceUpdatesC:\Newstuff\Web/s svr01/u Admin01/p p@SSw#rD2
作为响应,Iisvdir.vbs 显示如下消息,表示命令已成功执行,同时显示新虚拟目录的基本属性:
Connecting to server ...Done.Virtual Path = Finance/Insurance/Updates ROOT = C:\Newstuff\Web Metabase Path = W3SVC/1509060625/ROOT/Insurance/Updates
在此示例中,Finance 网站及其 Insurance 子目录在发出命令前已在 Svr01 IIS 服务器上存在。如果网站或其子目录不存在,则该命令可能将失败。
另外,Insurance 子目录是一个虚拟目录。可使用 Iisvdir.vbs 来在实际目录或虚拟目录内创建虚拟路径。
创建虚拟目录以隐藏物理目录
此示例使用虚拟目录的非自然信号来隐藏物理目录的内容,这样在 Internet 或 Intranet 上将不会看到这些内容。该命令将创建虚拟目录,其名称与网站的同一虚拟路径中的物理目录的名称相同。这样 Web 用户将看不到物理目录的内容。
尽管此方法不保护物理目录的安全,但是它提供了一种保护隐私的防范措施。
下面的命令在 Finance 网站的根目录下创建了名为 Personnel 的虚拟目录。虚拟目录与包含了关于 Finance 部门人员的公用信息的物理目录 D:\IIStest\Personnel 相关。
iisvdir /create Finance Personnel D:\IIStest\Personnel
作为响应,Iisvdir.vbs 显示如下消息,表示命令已成功执行,同时显示新虚拟目录的基本属性:
Connecting to server ...Done.Virtual Path = Finance/Personnel ROOT = D:\IIStest\Personnel Metabase Path = W3SVC/1509060625/ROOT/Personnel
使用该命令后,站点将具有一个物理目录和名为 Personnel 的虚拟目录。访问 Finance 网站的用户将看到 Personnel 虚拟目录的内容。这些用户看不到 Personnel 物理目录的内容。
iisvdir /delete
在运行带有 Internet 信息服务 (IIS) 6.0 的 Windows Server 2003 的服务器上删除网站的虚拟目录。
语法
iisvdir[.vbs] /delete Website[/VirtualPath]/Name[/s Computer [/u [Domain\]User [/p Password]]]
参数
WebSite
必需。指定网站的描述性名称或配置数据库路径。
VirtualPath
指定虚拟目录的路径。当虚拟目录不位于网站的根目录下,需要此参数。
Name
必需。指定虚拟目录的名称。
/s Computer
在指定的远程计算机上运行脚本。键入不带反斜杠的计算机名或 IP 地址。默认情况下,脚本在本地计算机上运行。
/u [Domain\]User
使用指定的用户帐户的权限运行脚本。该帐户必须是远程计算机上 Administrators 组的成员。默认情况下,脚本使用本地计算机当前用户的权限运行。
/p Password
指定在 /u 参数中指定的用户帐户的密码。如果您忽略该参数,则脚本会提示您输入密码且不显示所键入的文本。
/"codetitle">复制代码 代码如下:
iisvdir /query Finance
作为响应,Iisvdir.vbs 将显示 Finance 根目录下的两个虚拟目录。请注意这些目录将在 Finance 根目录下出现,即使其物理位置不相关。
该显示不包括作为站点子目录的虚拟目录。查找子目录的过程将在下面的示例“显示虚拟子目录”中进行阐述。
Alias Physical Root ============================================================================== /Personnel D:\Corpdir\FinanceWeb\People /Insurance C:\Marketing\Insurance\HTMFiles
显示虚拟子目录
下面的命令将显示一些虚拟目录,这些虚拟目录是 Finance 网站上的 Insurance 虚拟目录的子目录。该命令将通过使用其虚拟目录路径来指定 Insurance 目录。
iisvdir /query Finance\Insurance
该命令将显示 Insurance 虚拟目录的 Current 子目录。
Alias Physical Root ============================================================================== /Current C:\Insurance\Monthly\200204
注释
"Default Web Site"/IISAdmin,而非 "Default Web Site/IISAdmin"。