删除 IIS 授权规则 "All users"
Delete IIS authorization rules "All users"
我试图从我们的一项 Web 服务中删除特定的 IIS 授权规则。
我需要删除模式为 "allow" 的用户 "all users"。
我试过使用这个命令
Clear-Webconfiguration -Filter /system.webServer/security/authorization -Force -PSPath 'IIS:\sites\IAI Application Customizer'
我可以删除所有创建的规则,但只有 "all users" 规则仍然存在。
希望你能帮我解决这个问题。
谢谢
或许您可以为该服务更改 web.config
文件。
<authorization>
<remove accessType="Allow" users="*" />
</authorization>
这是我的解决方案。
$webConfigPath = "C:\Users\SOGL_D\Desktop\test.xml"
$xml = [xml](get-content $webConfigPath) # Create XML object and open the web.config file
foreach( $item in $xml.configuration."system.webServer".security.authorization.add ) # Traverse through all modules
{
if( $item.users -eq "*" ) # Checking if the current module is to be removed
{
$xml.configuration."system.webServer".security.authorization.RemoveChild($item); # Remove the desired module when found
}
}
$xml.Save($webConfigPath) # Save the updated web.config file
这是一个已知问题,我至少可以用 IIS7 重现:https://social.technet.microsoft.com/Forums/en-US/46cb1905-424e-4bf1-a9e4-514e274b7582/iis-clearwebconfiguration-cmdlet-needs-to-be-executed-twice-for-inherited-url-authorization-rules?forum=winserverpowershell
您必须调用 Clear-WebConfiguration
两次才能删除所有继承的规则。示例:
Clear-WebConfiguration -Filter "/system.webServer/security/authorization/add[@users='*' and @roles='' and @verbs='']" -PSPath "IIS:\Sites\my_site"
Clear-WebConfiguration -Filter "/system.webServer/security/authorization/add[@users='*' and @roles='' and @verbs='']" -PSPath "IIS:\Sites\my_site"
Add-WebConfiguration -Filter "/system.webServer/security/authorization" -Value (@{AccessType="Allow"; Users="my_user"; Permissions="Read, Write"}) -PSPath "IIS:\Sites\my_site"
这对我有用:
C:\Windows\System32\inetsrv\appcmd.exe set config
/section:system.webServer/security/authorization
/-"[accessType='Allow', users='*']"
我试图从我们的一项 Web 服务中删除特定的 IIS 授权规则。 我需要删除模式为 "allow" 的用户 "all users"。
我试过使用这个命令
Clear-Webconfiguration -Filter /system.webServer/security/authorization -Force -PSPath 'IIS:\sites\IAI Application Customizer'
我可以删除所有创建的规则,但只有 "all users" 规则仍然存在。
希望你能帮我解决这个问题。 谢谢
或许您可以为该服务更改 web.config
文件。
<authorization>
<remove accessType="Allow" users="*" />
</authorization>
这是我的解决方案。
$webConfigPath = "C:\Users\SOGL_D\Desktop\test.xml"
$xml = [xml](get-content $webConfigPath) # Create XML object and open the web.config file
foreach( $item in $xml.configuration."system.webServer".security.authorization.add ) # Traverse through all modules
{
if( $item.users -eq "*" ) # Checking if the current module is to be removed
{
$xml.configuration."system.webServer".security.authorization.RemoveChild($item); # Remove the desired module when found
}
}
$xml.Save($webConfigPath) # Save the updated web.config file
这是一个已知问题,我至少可以用 IIS7 重现:https://social.technet.microsoft.com/Forums/en-US/46cb1905-424e-4bf1-a9e4-514e274b7582/iis-clearwebconfiguration-cmdlet-needs-to-be-executed-twice-for-inherited-url-authorization-rules?forum=winserverpowershell
您必须调用 Clear-WebConfiguration
两次才能删除所有继承的规则。示例:
Clear-WebConfiguration -Filter "/system.webServer/security/authorization/add[@users='*' and @roles='' and @verbs='']" -PSPath "IIS:\Sites\my_site"
Clear-WebConfiguration -Filter "/system.webServer/security/authorization/add[@users='*' and @roles='' and @verbs='']" -PSPath "IIS:\Sites\my_site"
Add-WebConfiguration -Filter "/system.webServer/security/authorization" -Value (@{AccessType="Allow"; Users="my_user"; Permissions="Read, Write"}) -PSPath "IIS:\Sites\my_site"
这对我有用:
C:\Windows\System32\inetsrv\appcmd.exe set config /section:system.webServer/security/authorization /-"[accessType='Allow', users='*']"