4

我正在使用添加 WebDAV authoringRule

Add-WebConfiguration /system.webserver/webdav/authoringRules -PSPath IIS: -Location "$site_name/$app_name/VD" -Value @{users="*";path="*";access="Read,Write"}

在某些环境中,这与父级中的相同创作规则冲突,因此会引发错误。我想在 authoringRules 的开头添加一个清晰的元素,所以它看起来像这样

<authoringRules>
    <clear />
    <add users="*" path="*" access="Read, Write" />
</authoringRules>

Clear-WebConfiguration只清除现有规则。如何使用 powershell 将<clear />元素添加到配置文件?

4

1 回答 1

1

我相信你指的是applicationHost.config。

我还发现这是 WebAdministration 命令行开关的问题,我使用ServerManager类解决了这个问题。我的特殊问题是 windowsAuthentication providers 集合,但我看不出这对你不起作用的原因。

您可能必须更正对 GetSection 的调用中的路径,但这应该使您非常接近所需的内容。

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Administration") | Out-Null

$serverManager = new-object Microsoft.Web.Administration.ServerManager
$config = $serverManager.GetApplicationHostConfiguration()
$authoringRulesSection = $config.GetSection("/system.webserver/webdav/authoringRules", "$($site_name)/$($app_name)/VD");

# Grab a reference to the collection of authoringRules
$authoringRulesCollection = $authoringRulesSection.GetCollection("authoringRules");

# Clear the current collection this also adds the <clear /> tag
$authoringRulesCollection.Clear();

# Add to the collection
$addElement = $authoringRulesCollection.CreateElement("add")
$addElement["users"] = "*";
$addElement["path"] = "*";
$addElement["access"] = "Read, Write";
$authoringRulesCollection.Add($addElement);

# Save the updates
$serverManager.CommitChanges();
于 2013-05-24T11:36:07.163 回答