首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用WMI和powershell列出IIS6网站的所有虚拟目录?

如何使用WMI和powershell列出IIS6网站的所有虚拟目录?
EN

Stack Overflow用户
提问于 2012-11-02 20:18:43
回答 2查看 6.8K关注 0票数 4

我看过这个问题Getting all virtual directories for a IIS6 web site using WMI,但它没有回答我的问题。

我可以获得网站的列表,但不能获得其中的应用程序或虚拟目录。我已经尝试了以下几种方法。

代码语言:javascript
复制
Get-WmiObject  -class "IIsWebServerSetting" -namespace "root\microsoftiisv2" | select-object __SERVER, ServerComment, Name 
Get-WmiObject  -class "IIsWebVirtualDir" -namespace "root\microsoftiisv2" | select-object __SERVER, ServerComment, Name, Path, DefaultDoc
Get-WmiObject  -class "IIsWebVirtualDirSetting" -namespace "root\microsoftiisv2" | select-object __SERVER, ServerComment, Name, Path, DefaultDoc

所有这些都不能检索虚拟目录列表。

我可以在metabase.xml文件中看到虚拟目录

代码语言:javascript
复制
<IIsWebVirtualDir   Location ="/LM/W3SVC/1653786949/root/PBSNET2005/GUI"
        AccessFlags="AccessExecute | AccessRead | AccessScript"
        AppFriendlyName="ClientServicesGUI"

我之所以需要这样做,是因为我想使用绿色/蓝色部署流程。要确定要更新的版本,我需要找出当前版本。我将使用虚拟目录的物理路径来执行此操作。

有没有其他方法可以获得虚拟目录的物理路径?有没有人直接查询或更新过metabase.xml文件?

EN

回答 2

Stack Overflow用户

发布于 2012-11-02 22:49:55

试试这个:

代码语言:javascript
复制
gwmi -Namespace "root/MicrosoftIISv2" -Query "SELECT * FROM IIsWebVirtualDirSetting" | select name,path,AppFriendlyName
票数 3
EN

Stack Overflow用户

发布于 2012-11-22 21:26:37

您需要指定虚拟目录的路径。WMI不会返回文件夹树下方的虚拟目录。如果有人需要,这里是powershell函数。

代码语言:javascript
复制
function Get-VirtualDirectoryPhysicalPathUsingWMI ([string]$server,[string]$siteName,[string]$vDirName,[string]$pathToVDir)
    {
        Invoke-Command $server -Script { param($siteName,$vDirName,$pathToVDir) 
            $iisWmiObj = Get-WmiObject -Namespace 'root\MicrosoftIISv2' -Class IISWebServerSetting -Filter "ServerComment = '${siteName}'"
            $objIIS = new-object System.DirectoryServices.DirectoryEntry("IIS://localhost/" + $iisWmiObj.Name + $pathToVDir )
            $directories = $objIIS.psbase.children
            $vDir = $directories.find($vDirName, "IIsWebVirtualDir")

            return $vDir.path
            } -Args $siteName,$vDirName,$pathToVDir

       #Get-VirtualDirectoryPhysicalPathUsingWMI  "pbsdevmaintws02" "Default Web Site" "GUI" "/Root/PBSNET2005"
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13195107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档