Установите для «Пул приложений немедленно» значение true и задайте пароль для имени пользователя при создании пула приложений с помощью Power Shell - PullRequest
0 голосов
/ 01 мая 2020

Я создаю пулы приложений через скрипт Power Shell.

  1. Даже после осмотра я не смог найти, как установить для «Пул приложений немедленно» значение true. Как я могу это сделать?

  2. Кроме того, если указаны имя пользователя / пароль, то я хочу установить его, в противном случае это должен быть идентификатор пула приложений. Я делаю это правильно?

Вот функция

Function Create-AppPools($appPoolName, $appPoolDotNetVersion, $managedPipelineMode, $startMode, $userName, $password) {
    if(!$appPoolName){
        return;
    }

    Write-Host " "

    #navigate to the app pools root
    cd IIS:\AppPools\

    #check if the app pool exists
    if (!(Test-Path $appPoolName -pathType container))
    {
        Write-Host "`t Creating AppPool: " + $appPoolName
        #create the app pool
        $appPool = New-Item $appPoolName
        if($appPoolDotNetVersion){
            $appPool | Set-ItemProperty -Name "managedRuntimeVersion" -Value $appPoolDotNetVersion
        }
        if(@managedPipelineMode){
            $appPool | Set-ItemProperty -Name "managedPipelineMode" -Value $managedPipelineMode
        }
        if($startMode){
            $appPool | Set-ItemProperty -Name "startMode" -Value $startMode
        }
        if($userName -and $password){
            $apppool | Set-ItemProperty -Name processmodel -value @{userName = $userName;password=$password;identitytype=3}
        }
        else{
            $apppool | Set-ItemProperty -Name "ProcessModel.IdentityType" -value  3
        }
        Write-Host "`t`t AppPool: " + $appPoolName + " created successfully" -ForegroundColor Green
    }
    else{
        Write-Host "`t AppPool " + $appPoolName + " already exists" -ForegroundColor Blue
    }
}

1 Ответ

1 голос
/ 01 мая 2020

У вас четвертая опечатка if().
Кроме того, ваш код работает должным образом.

  • Он немедленно запускает пул приложений. Это можно проверить из CLI и IIS Management GUI.
  • Если параметры пользователя / пароля верны в том смысле, что пользователь существует, а пароль точен, то для этих параметров будет установлен идентификатор пула. Это можно проверить в IIS Management GUI.

. Я бы рекомендовал указать модули, от которых зависит ваш код, с помощью оператора #Requires.

#Requires -RunAsAdministrator
#Requires -Modules WebAdministration

Function Create-AppPools(
    $appPoolName = "TestPool2", 
    $appPoolDotNetVersion = "v4.0", 
    $managedPipelineMode = "Integrated", 
    $startMode = "OnDemand", 
    $userName, 
    $password
) {
    if (!$appPoolName) {
        return;
    }

    Write-Host " "

    #navigate to the app pools root
    cd IIS:\AppPools\

    #check if the app pool exists
    if (!(Test-Path $appPoolName -pathType container)) {
        Write-Host "`t Creating AppPool: " + $appPoolName
        #create the app pool
        $appPool = New-Item $appPoolName
        if ($appPoolDotNetVersion) {
            $appPool | Set-ItemProperty -Name "managedRuntimeVersion" -Value $appPoolDotNetVersion
        }
        if ($managedPipelineMode) {
            $appPool | Set-ItemProperty -Name "managedPipelineMode" -Value $managedPipelineMode
        }
        if ($startMode) {
            $appPool | Set-ItemProperty -Name "startMode" -Value $startMode
        }
        if ($userName -and $password) {
            $apppool | Set-ItemProperty -Name processmodel -value @{userName = $userName; password = $password; identitytype = 3 }
        }
        else {
            $apppool | Set-ItemProperty -Name "ProcessModel.IdentityType" -value  3
        }
        Write-Host "`t`t AppPool: " + $appPoolName + " created successfully" -ForegroundColor Green
    }
    else {
        Write-Host "`t AppPool " + $appPoolName + " already exists" -ForegroundColor Blue
    }
}

Create-AppPools
...