以编程方式获取 IIS 网站标识符

发布于 2024-08-13 21:14:53 字数 454 浏览 3 评论 0原文

我正在尝试在 IIS 6.0 上安装的 Web 应用程序的安装脚本中使用 adsutil 来设置访问控制。有一个命令的工作方式如下:

adsutil.vbs set w3svc/1/root/Authflags 4

这是默认网站的命令,因为其标识符为 1。但是,新的 Web 应用程序会被赋予一个生成的标识符。就我而言,我安装的应用程序的标识符为 2082238887,因此我的命令应如下所示

adsutil.vbs set w3svc/2082238887/root/Authflags 4

但是,我现在只从之前安装的应用程序中知道该值。在全新安装期间如何获取此 ID?我见过的 adsutil 的每个示例都假设您正在使用默认网站,因此 ID 为 1。

我需要安装脚本来安装应用程序,获取其标识符,然后使用它通过 adsutil 设置权限。

I'm trying to use adsutil in an installation script of a web app I am installing on IIS 6.0 to set access control. There is a command that works as follows:

adsutil.vbs set w3svc/1/root/Authflags 4

This is the command for the default web site, as its Identifier is 1. However, new web apps are given a generated Identifier. In my case, the app I installed was given the Identifier of 2082238887, so my command should look like this

adsutil.vbs set w3svc/2082238887/root/Authflags 4

However, I only know this value now from previously installing the app. How would I get this ID during a fresh installation? Every example I have seen for adsutil assumes you are working with the default web site, and therefore an ID of 1.

I need my install script to install the app, get its Identifier, and then use it to set permissions via adsutil.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蝶…霜飞 2024-08-20 21:14:53

该脚本允许您提供站点名称作为参数,并迭代网站,直到它与您提供的站点名称匹配。我包含了更新 authflags 的代码。这可以通过 cscript.exe 运行。

Dim Siteobj
Dim Site
Dim SiteName
Dim SiteId
Dim SiteLocation

SiteName=WScript.Arguments( 0 )

Set SiteObj = GetObject("IIS://localhost/W3SVC")

for each Site in Siteobj

  if Site.keytype="IIsWebServer" Then  

    if Site.ServerComment = SiteName Then

      SiteId=Site.Name     

      SiteLocation = "IIS://LocalHost/w3svc/" & SiteId
      SiteLocation = SiteLocation & "/root"

      Dim SiteObj1
      Set SiteObj1  = GetObject(SiteLocation)
      SiteObj1.authflags=4
      SiteObj1.SetInfo

    End if    
  End if 
Next

This script lets you provide the site name as a parameter and iterates over the web sites until it matches the site name you provide. I included the code to update the authflags. This can be run via cscript.exe.

Dim Siteobj
Dim Site
Dim SiteName
Dim SiteId
Dim SiteLocation

SiteName=WScript.Arguments( 0 )

Set SiteObj = GetObject("IIS://localhost/W3SVC")

for each Site in Siteobj

  if Site.keytype="IIsWebServer" Then  

    if Site.ServerComment = SiteName Then

      SiteId=Site.Name     

      SiteLocation = "IIS://LocalHost/w3svc/" & SiteId
      SiteLocation = SiteLocation & "/root"

      Dim SiteObj1
      Set SiteObj1  = GetObject(SiteLocation)
      SiteObj1.authflags=4
      SiteObj1.SetInfo

    End if    
  End if 
Next
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文