我想获取 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_ 有什么问题?