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 的服务器上创建和删除网站的虚拟目录。
要查看该命令语法,请单击以下命令:
•iisvdir /create
•iisvdir /delete
•iisvdir /query
iisvdir /create
在运行带有 Internet 信息服务 (IIS) 6.0 的 Windows Server 2003 的服务器上创建网站的虚拟目录。
语法
iisvdir[.vbs] /create WebSite[/VirtualPath] Name PhysicalPath [/sComputer [/u [Domain\]User [/p Password]]]
参数
WebSite
必需。指定网站的描述性名称或配置数据库路径。
VirtualPath
指定网站内的虚拟目录的路径。虚拟路径并不包含虚拟目录的名称。
此参数将虚拟目录放在网站的子目录下。默认情况下,虚拟目录将被添加到网站的根目录下。虚拟路径中的所有目录都必须已经在网站上存在。
Name
必需。指定虚拟目录的名称。可选择任何名称。
PhysicalPath
必需。指定虚拟目录的物理目录。
必须在本地计算机上指定一个路径,例如 C:\Project\HTML。如果指定的路径不存在,则 Iisvdir.vbs 将创建该路径。
/s Computer
在指定的远程计算机上运行脚本。键入不带反斜杠的计算机名或 IP 地址。默认情况下,脚本在本地计算机上运行。
/u [Domain\]User
使用指定的用户帐户的权限运行脚本。该帐户必须是远程计算机上 Administrators 组的成员。默认情况下,脚本使用本地计算机当前用户的权限运行。
/p Password
指定在 /u 参数中指定的用户帐户的密码。如果您忽略该参数,则脚本会提示您输入密码且不显示所键入的文本。
/?
在命令提示符下显示帮助。
注释
•要执行该过程,你必须是本地计算机上 Administrators 组的成员,或者你必须被委派了相应的权限。如果计算机已加入某个域,则 Domain Admins 组的成员可能会执行该过程。作为最安全的操作,请考虑使用“运行方式”执行此过程。
•WebSite(或 WebSite/VirtualPath)Name 和 PhysicalPath 参数必须始终按命令行上的指定顺序出现。否则,Iisvdir.vbs 将无法正确解释信息。
•使用 Iisvdir.vbs 来创建新的虚拟目录时,仅指定创建站点并标识其内容所需的基本属性。Iisvdir.vbs 使用的默认属性与 IIS 建立新的虚拟目录时所使用的默认属性相同,它符合继承属性的规则。要配置站点的更多高级属性,请使用 IIS 管理器。
•虚拟目录名 (Name) 不要求唯一。不过,当网站包括的虚拟目录和物理目录的名称相同时,将无法在 Internet 上看到物理目录的内容。
示例
下面的示例显示如何在特定的情况下使用 iisvdir /create。
在网站的根目录下创建虚拟目录
下面的命令将在本地计算机的 Finance 网站的根目录下创建名为 Insurance 的虚拟目录。它将该目录与当前存储在 C:\Projects\Insurance\Html 目录下的内容相关联。
代码如下:
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 参数中指定的用户帐户的密码。如果您忽略该参数,则脚本会提示您输入密码且不显示所键入的文本。
/?
在命令提示符下显示帮助。
注释
•要执行该过程,你必须是本地计算机上 Administrators 组的成员,或者你必须被委派了相应的权限。如果计算机已加入某个域,则 Domain Admins 组的成员可能会执行该过程。作为最安全的操作,请考虑使用“运行方式”执行此过程。
•不要使用 Iisvdir.vbs 来删除网站。如果这样做,则网站仍然会列出,但是它将被部分删除,而且运行不正常。要通过 Iisvdir.vbs 来删除网站,或者更正网站的不正确的删除,请使用 Iisweb.vbs:IIS 网站管理脚本。
示例
下面的示例显示了如何在特定的情况下使用 iisvdir /delete。
删除虚拟目录
下面的命令将从本地服务器的 Finance 网站上删除 Insurance 虚拟目录。结果,Insurance 目录及 Insurance 目录的所有实际和虚拟的子目录都将被删除。
iisvdir /deleteFinance/Insurance
作为响应,Iisvdir.vbs 将显示下列消息,表示命令已成功执行。请注意 Iisvdir.vbs 不会在删除目录或其子目录之前要求确认。
Web directory Finance/ROOT/Insurance has been DELETED.
iisvdir /query
在运行带有 Internet 信息服务 (IIS) 6.0 的 Windows Server 2003 的服务器上显示网站的虚拟目录。
语法
iisvdir /query WebSite[/VirtualPath] [/s Computer [/u [Domain\]User [/p Password]]]
参数
WebSite
必需。指定网站的描述性名称或配置数据库路径。
VirtualPath
指定网站内目录的路径。该查询列出指定目录下的所有虚拟目录。如果不使用该参数,Iisvdir.vbs 将列出网站根目录下的虚拟目录。
/s Computer
在指定的远程计算机上运行脚本。键入不带反斜杠的计算机名或 IP 地址。默认情况下,脚本在本地计算机上运行。
/u [Domain\]User
使用指定的用户帐户的权限运行脚本。该帐户必须是远程计算机上 Administrators 组的成员。默认情况下,脚本使用本地计算机当前用户的权限运行。
/p Password
指定在 /u 参数中指定的用户帐户的密码。如果您忽略该参数,则脚本会提示您输入密码且不显示所键入的文本。
/?
在命令提示符下显示帮助。
注释
•要执行该过程,你必须是本地计算机上 Administrators 组的成员,或者你必须被委派了相应的权限。如果计算机已加入某个域,则 Domain Admins 组的成员可能会执行该过程。作为最安全的操作,请考虑使用“运行方式”执行此过程。
•该“查询”操作仅显示虚拟目录。不显示网站或路径中的物理目录。
•“查询”操作仅显示网站根目录或指定子目录下的虚拟目录。它不进行递归搜索。
示例
下面的示例显示如何在特定的情况下使用 iisvdir /query。
显示网站的虚拟目录
下面的命令将显示 Finance 网站的根目录下的虚拟目录:
代码如下:
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
注释
•Iisvdir.vbs 可以执行 IIS 管理器中提供的相同操作。可以使用任意一种工具查看并管理虚拟目录。
•发出命令的计算机必须正在运行 Windows XP 或 Windows Server 2003 操作系统。用户必须是命令所影响的计算机上的 Administrators 组成员。
•命令所影响的计算机必须是运行带有 Internet 信息服务 (IIS) 6.0 的 Windows Server 2003 的服务器。
•连接到指定计算机上的 IIS 服务时,Iisvdir.vbs 将显示“正在连接到服务器”消息。每次使用 Iisback.vbs 时,不管是在本地或远程计算机上运行该命令,都会出现该消息。
•使用引号括起包含空格的路径元素。仅括起带空格的元素,不包括整个路径。例如,应键入 "Default Web Site"/IISAdmin,而非 "Default Web Site/IISAdmin"。
更多信息请查看IT技术专栏