获取 IIS 匿名用户的帐户名

获取 IIS 匿名用户的帐户名

我想获取 IIS 安装的匿名用户帐户的名称。很容易假设它是计算机名称,但如果计算机名称已更改,我仍然想知道它是什么。最终,我希望能够将其放入用于网站部署的 bat 文件或 vbscript 中。

我从 MSDN 中收集到了以下信息:

dim schemaObject: set schemaObject = GetObject("IIS://localhost/schema/anonymoususername")
dim schemaObjectType: schemaObjectType = schemaObject.syntax
WScript.Echo( schemaObjectType )

GetObject() 返回的是 IISSchemaObject,但哪个属性代表名称本身?这并不明显,而且我在文档中也没有找到太多相关信息。

或者,有没有办法调用 adsutil 脚本并仅返回您感兴趣的值?

cscript adsutil.vbs get w3svc/anonymoususername
anonymoususername          : (STRING) "IUSR_SERVER-NAME"

我只想要“IUSR_SERVER-NAME”

答案1

ADSUtil 只是在幕后使用 GetObject(IIS 公开为普通的 ADSI 提供程序),因此您可以简单地定位您感兴趣的属性(如果你知道路径)类似于

set oSite = GetObject("IIS://localhost/W3SVC/1/ROOT")
Wscript.echo oSite.AnonymousUserName

对于默认网站,或者这个(如上面的例子)对于框级别设置。

set oMasterSite = GetObject("IIS://localhost/W3SVC")
Wscript.echo oMasterSite.AnonymousUserName

涵盖了这些之后,值得注意的是,匿名用户名基本上可以在 IIS 层次结构中的任何文件夹级别重置。

答案2

查看 %COMPUTERNAME% 环境变量并预先添加 IUSR_ 有什么问题?

相关内容