Powershell - включить «Просмотр каталогов» в физической папке в IIS6 - PullRequest
1 голос
/ 26 января 2011

Мне нужен сценарий powershell для включения «Просмотр каталогов» в физической папке в IIS6. Ключ в том, что папка, которую я хотел бы изменить, является подпапкой другой физической папки. Ни одна из папок не является «виртуальным каталогом».

Я попробовал следующее, но DirectoryEntry пусто. Я предполагаю, что это потому, что папка не является «виртуальным каталогом».

$oDir = New-Object System.DirectoryServices.DirectoryEntry("IIS://localhost/W3SVC/1/Root/Test/Upgrade")

# Loop thru all even though there should only be one...
foreach ($oDirEntry in $oDir)
{
   Write-Host "Enabling Directory Browsing on IIS folder [" $oDirEntry.Name "]."
   $oDirEntry.put("EnableDirBrowsing",$true)
   $oDirEntry.psbase.CommitChanges()        
}

1 Ответ

1 голос
/ 16 февраля 2011

Это не самый чистый код, когда-либо написанный, но я пробовал много разных итераций, и это тот, который работает ...

$sFolderName = "Test"
$sSubFolderName = "SubTest"
$oSubFolder = $null

# Get reference to root website
$oService = new-object System.DirectoryServices.DirectoryEntry("IIS://localhost/W3SVC/1/Root")

foreach ($oChild in $oService.children)
{
    if ($oChild.Name -eq $sFolderName)
    {
        # Check if we already have an IIsWebDirectory named $sSubFolderName
        foreach ($oChild2 in $oChild.children)
        {
            if ($oChild2.Name -eq $sSubFolderName)
            {
                $oSubFolder = $oChild2
            }
        }

        # Create one if it doesn't exist
        if ($oSubFolder -eq $null)
        {
            $oSubFolder = $oChild.Children.Add($sSubFolderName, "IIsWebDirectory")
            $oSubFolder.psbase.CommitChanges()
        }

        $oSubFolder.Put("AccessRead",$true)
        $oSubFolder.Put("EnableDirBrowsing",$true)
        $oSubFolder.psbase.CommitChanges()      
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...