将<清除 /> 元素添加到 WebDAV 创作规则使用电源外壳



我正在使用

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

在某些环境中,这与父元素中的相同创作规则相冲突,从而抛出错误。我想在authoringRules的开头添加一个clear元素,使其看起来像这样

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

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

我想你指的是applicationHost.config。

我还发现这是WebAdministration命令集的问题,我使用ServerManager类解决了这个问题。我的特殊问题是windowsAuthentication提供程序集合,但我看不出为什么这对你不起作用。

你可能需要纠正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();

相关内容

  • 没有找到相关文章

最新更新