【问题标题】:How do I check if user 'IIS AppPool\MyAppPoolName' exists in powershell如何检查用户 'IIS AppPool\MyAppPoolName' 是否存在于 powershell
【发布时间】:2020-02-02 21:26:50
【问题描述】:

我正在尝试为我的开发人员自动化一些数据库配置。对于开发和测试,我们只是使用 ApplicationPoolIdentity 服务帐户(我们的一个测试服务器讨厌 NETWORK SERVICE,所以这不是一个选项),所以我需要配置数据库以自动授予 IIS 正确帐户的权限。但开发人员通常只运行数据库脚本,而不是数据库和 Web 脚本。

因此,IIS AppPool 在运行 DB 脚本时可能不存在,这意味着通过扩展 IIS AppPool\myAppPoolName 用户也将不存在。因此,当我尝试授予他们访问本地 SQL 数据库的权限时,他们会收到错误消息。

所以问题是,如何检查这些 IIS AppPool 服务帐户是否存在于 Powershell 中?我知道如何确认 AD 用户或本地用户的存在,但这些 IIS apppool 服务帐户不在这两个列表中。他们住在哪里?是不是 Powershell 无法访问的列表?

我可以做一些愚蠢的事情,比如在权限步骤中捕获和处理错误,但我宁愿请求许可而不是宽恕。

【问题讨论】:

    标签: powershell iis


    【解决方案1】:

    最后我在这里接受了原谅-不允许。我尝试创建 SQL 登录名和相应的用户,如果不能,则处理异常。

    编辑:

    这似乎是获取它们的实际列表的最佳方式:

    $appPoolIdentities = Get-IISAppPool |
       Where-Object {$_.ProcessModel.IdentityType -eq 'ApplicationPoolIdentity'} |
       ForEach-Object {"IIS AppPool\$($_.Name)"}
    

    【讨论】:

      【解决方案2】:

      据我所知,IIS 应用程序池标识的权限帐户是 IIS AppPool\myAppPoolName。如果我们要检查此帐户是否存在。我们只需要检查 myAppPoolName 是否存在。

      要做到这一点,我建议你可以参考下面的powershell命令来检查应用程序池是否存在。

      命令:

      import-module webadministration
      
      $AppPoolName="Test"
      
      if(Test-Path IIS:\AppPools\$AppPoolName)
      {
      "AppPool is already there"
      return $true;
      }
      else
      {
      return $false;
      }
      

      结果:

      【讨论】:

      • 如果应用程序池未使用 AppPoolIdentity,则会失败。它将创建用户名存在的误报。还需要做更多的工作——检查 AppPool IdentityType 以确保它是 4。这是可行的,我希望有一些单一的魔术方法可以返回列表,但这种方法是可行的。
      【解决方案3】:

      AppPool 身份是一个虚拟帐户,它不会在 Windows 用户管理控制台中显示为用户。该文档可能会有所帮助:(https://docs.microsoft.com/en-us/iis/manage/configuring-security/application-pool-identities)。还有这个(https://blogs.msdn.microsoft.com/ericparvin/2015/04/14/how-to-add-the-applicationpoolidentity-to-a-sql-server-login/

      【讨论】:

      • 这些链接解释了 IIS AppPool\useraccount 是什么,我已经知道了。他们没有提供有关如何获取它们列表的任何信息。我想唯一真正的选择是遍历 AppPools 列表并检查使用 AppPoolIdentity 的那些。
      猜你喜欢
      • 2015-04-10
      • 2015-12-17
      • 2010-09-16
      • 2019-01-04
      • 2019-11-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-16
      • 1970-01-01
      相关资源
      最近更新 更多