Недостаточно прав для запуска пула приложений IIS — даже если пользователь входит в группу администраторов

Я использую Windows 2016 Server/IIS 10 и хочу запустить пул приложений с помощью Powershell. Этот пост SO означает, что все, что задействовано, это:

(Get-IISAppPool "name").Recycle()

Однако теперь, хотя рассматриваемый пользователь является частью локальной группы администраторов на машине, я получаю отказ в разрешении:

введите здесь описание изображения

Поэтому, хотя в исходном сообщении указано, что пользователь должен быть частью группы "Администраторы IIS", я не могу найти никаких доказательств существования этой группы.

Итак, что я пропустил и что мне делать, чтобы конкретный пользователь имел необходимые разрешения для запуска/остановки пулов приложений?


person TheEdge    schedule 17.12.2019    source источник
comment
Запустите PowerShell от имени администратора, и вы не должны получить эту ошибку.   -  person TheMadTechnician    schedule 17.12.2019
comment
Не могу поверить, что я пропустил это! Если вы хотите добавить это как ответ, я приму это.   -  person TheEdge    schedule 18.12.2019


Ответы (2)


Как упоминал Ифтими Тюдор, то, что пользователь находится в группе администраторов, не означает, что все, что он делает, выполняется с правами администратора. Вам нужно запустить PowerShell от имени администратора, чтобы иметь возможность манипулировать AppPool, или то, что я обычно делаю, если у меня есть сценарий, который должен работать от имени администратора, чтобы он работал правильно, проверьте в начале сценария, есть ли у него права администратора , а если не перезапустить себя как сеанс с повышенными правами.

#region UACElevation
# Elevate UAC if not already running As Administrator
# Get the ID and security principal of the current user account
$myWindowsID=[System.Security.Principal.WindowsIdentity]::GetCurrent()
$myWindowsPrincipal=new-object System.Security.Principal.WindowsPrincipal($myWindowsID)

# Get the security principal for the Administrator role
$adminRole=[System.Security.Principal.WindowsBuiltInRole]::Administrator

# Check to see if we are currently running "as Administrator"
if (!$myWindowsPrincipal.IsInRole($adminRole))
{
    # We are not running "as Administrator" - so relaunch as administrator

    # Indicate that the process should be elevated
    Start-Process PowerShell.exe -Verb RunAs -ArgumentList "-Command",". '$($myInvocation.MyCommand.Definition)'"

    # Exit from the current, unelevated, process
    exit
}
#endregion UACElevation
person TheMadTechnician    schedule 18.12.2019

То, с чем вы сталкиваетесь, не является проблемой powershell. Это известный темный угол Windows: добавление пользователя в группу администраторов НЕ означает, что он получит полные права. Настройки UAC предотвратят это. Об этом есть отличный блог здесь

Обновление: это разрешение папки, которое косвенно влияет на вашу команду IIS.

person Iftimie Tudor    schedule 17.12.2019