4

WMI を使用して IIS6 Web サイトのすべての仮想ディレクトリを取得するというこの質問を見てきましたが、私の質問には答えていません。

Web サイトのリストは取得できますが、それらのアプリケーションや仮想ディレクトリは取得できません。私は次のことを試しました。

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 ファイルで仮想ディレクトリを確認できます

<IIsWebVirtualDir   Location ="/LM/W3SVC/1653786949/root/PBSNET2005/GUI"
        AccessFlags="AccessExecute | AccessRead | AccessScript"
        AppFriendlyName="ClientServicesGUI"

これが必要な理由は、緑/青の展開プロセスを使用したいからです。更新するバージョンを決定するには、現在のバージョンを確認する必要があります。これを行うには、仮想ディレクトリの物理パスを使用します。

仮想ディレクトリの物理パスを取得する別の方法はありますか? metabase.xml ファイルを直接照会または更新したことのある人はいますか?

4

2 に答える 2

3

これを試して:

gwmi -Namespace "root/MicrosoftIISv2" -Query "SELECT * FROM IIsWebVirtualDirSetting" | select name,path,AppFriendlyName
于 2012-11-02T14:49:55.483 に答える
0

仮想ディレクトリへのパスを指定する必要があります。フォルダ ツリーのさらに下にある仮想ディレクトリは、WMI によって返されません。誰かがそれを必要とする場合、これがpowershell関数です。

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"
    }
于 2012-11-22T13:26:36.977 に答える