リモートサーバーからWebサイトの名前、ID、ログファイルの場所を取得できました。各サイトのルートの物理パスを見つけることは直感的ではなく、このメッセージの最後でループしています。それは各サイトの物理パスにアクセスする正しい方法ですか?各サイトのディスク使用量を測定するためにこれが必要になります。
[Void][Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Administration")
$server = [Microsoft.Web.Administration.ServerManager]::OpenRemote($machine)
$sites = $server.Sites #| Select Id, Name, LogFile
IF ( $sites.count -ne 0 )
{
$logRootDir =$sites[0].LogFile.Directory
write-host "log root dir = $logRootDir"
}
ELSE
{
write-host "there are no IIS websites on this machine"
Exit
}
foreach ($site in $sites)
{
write-host $site.Id $site.Name
$rootApp = $site.Applications | where { $_.Path -eq "/" }
$rootVdir = $rootApp.VirtualDirectories | where { $_.Path -eq "/" }
write-host "root dir = " $rootVdir.PhysicalPath
}