在Powershell中为IIS应用程序启用身份验证

时间:2014-07-02 15:28:31

标签: powershell iis web-deployment

我知道如何通过以下命令为IIS网站设置此项:

Set-WebConfigurationProperty -filter "/system.webServer/security/authentication/windowsAuthentication" -name enabled -value true -PSPath "IIS:\" -location $siteName

但我想为该网站内的应用程序设置它。例如,我有一个名为" MySite"的IIS网站。在里面,有两个应用程序。我想为一个启用Windows身份验证而不为另一个启用Windows身份验证。因此,对于两者都将启用站点级别的启用,这是我不想要的。

2 个答案:

答案 0 :(得分:31)

我遇到了处理锁定部分的问题,并且接受的答案建议打开一个GUI来解决它,我试图首先避免使用PowerShell。

简答

启用Windows身份验证并禁用匿名身份验证

$iisAppName = "MyApp"

Write-Host Disable anonymous authentication
Set-WebConfigurationProperty -Filter "/system.webServer/security/authentication/anonymousAuthentication" -Name Enabled -Value False -PSPath IIS:\ -Location "Default Web Site/$iisAppName"

Write-Host Enable windows authentication
Set-WebConfigurationProperty -Filter "/system.webServer/security/authentication/windowsAuthentication" -Name Enabled -Value True -PSPath IIS:\ -Location "Default Web Site/$iisAppName"

处理锁定部分

IIS documentation中所述:

  

验证部分通常是锁定的,即无法写入   到web.config文件但必须写入中心   改为applicationhost.config文件。

我们必须使用-PSPath-Location参数。

Set-WebConfigurationProperty -filter /system.webServer/security/authentication/windowsAuthentication -name enabled -value true -PSPath IIS:\ -location DemoSite/DemoApp

答案 1 :(得分:21)

您不需要单独的-PSPath-Location参数。你可以像这样组合它们:

-PSPath "IIS:\Sites\$SiteName\$AppName"

所以实际的命令看起来像这样:

Set-WebConfigurationProperty -Filter "/system.webServer/security/authentication/windowsAuthentication" -Name Enabled -Value True -PSPath "IIS:\Sites\$SiteName\$AppName"

请注意,您可能会遇到此错误:

Set-WebConfigurationProperty:此配置部分不能在此路径中使用。当该部分被锁定在父级别时会发生这种情况。默认情况下锁定(overrideModeDefault =“Deny”),或者由overrideMode =“Deny”或遗留allowOverride =“false”的位置标记显式设置。

Tomfanning在ServerFault上提供了解决方案here。我在这里重复了他的步骤:

  1. 打开IIS管理器
  2. 单击左侧树中的服务器名称
  3. 右侧窗格,“管理”部分,双击“配置编辑器”
  4. 在顶部,选择system.webServer / security / authentication / anonymousAuthentication
  5. 部分
  6. 右侧窗格,单击“解锁部分”
  7. 在顶部,选择system.webServer / security / authentication / windowsAuthentication
  8. 部分
  9. 右侧窗格,单击“解锁部分”