我是在一台独立的Windows 10笔记本电脑上,不运行AD或任何其他活动目录服务。我在运行IIS。
我正在努力深入理解这一行代码正在做什么,更重要的是,如何理解。
DirectoryEntry e3 = new DirectoryEntry(@"IIS://localhost/W3SVC/1/Root");在没有活动目录的情况下,windows OS是否伪造此方法的某种分辨率?
发布于 2016-10-24 13:20:04
1)首先要注意,如果您指的是pre/port IIS7。在IIS7之后,许多事情都发生了变化,它们看起来仍然很相似。但也有一些重要的区别。
2)确保至少在管理模式下运行。
以管理员身份运行
或者做些更好的事情。
3)查看.NET的DirectoryServices()/DirectoryEntry()和Microsoft.Web.Administration.ServerManager()。这可能是你90%的尝试都能做到的地方。
4)有一个windows工具cmdline (windows/syswow64[system32]/inetsvr/appcmd.exe),它非常有用--事实上,如果它是满足您的需要/环境的选项,您可能更愿意为您所做的一切创建一个cmd脚本。我建议先学习这个工具,然后使用它提取出许多IIS/Site元数据,以探索您想要达到的目标。https://www.iis.net/configreference/system.applicationhost/applicationpools
5) Powershell有一个管理单元,当然是在安装了IIS的服务器上,可能在工作站上。我不使用太多的powershell,所以我要说的最多的是这个管理单元叫做WebAdministration和/或iisConsole。您可能需要/更愿意在每次运行脚本时手动注册管理单元,或者使用IIS powershell管理控制台自动注册管理单元。
6)对于上述任何选项,请始终记住#2 ~确保您至少在管理模式下运行。
7)我知道你肯定是在IIS的元数据数据库中玩~--而不是在注册中心。
本地工作站:当您是IIS实例的本地时,是确切的机制吗?我没有把握。您可能是直接访问元数据,可能是通过IIS服务访问元数据,也可能是访问Server.exe服务器服务或其他什么东西。
远程服务器w/o LDAP:如果您正在查询远程服务器而不是活动目录中的?和工作站一样。
远程服务器w/ LDAP: --如果您在AD中查询服务器,几乎可以肯定您正在访问AD/LDAP服务。当然,从技术上讲,您是如何通过运行在该远程上的server.exe服务等隔离的。
--最终的游戏是appcmd.exe,powershell,或者c# Microsoft.Web.Administration,DirectoryServer(),所有这些都可能在后台做同样的事情。但是,这些是您访问该背景的接口,因此您不需要考虑更深层次的实现。
希望这对大家都有帮助!来投票吧,你喜欢这个答案。
https://stackoverflow.com/questions/40197902
复制相似问题