Crie sites a partir de um arquivo csv e permissões de pasta

1

Eu tenho um arquivo csv que contém 10 configurações diferentes de sites.

Eu criei o script abaixo para automatizar a criação deles. Quando testo o script, ele é executado com sucesso, mas estou pensando se esse é o melhor design para automatizar a criação de sites. Meu uso do loop e as instruções if / else estão corretas?

Espero que alguém possa analisar e me informar se esse script parece ser bom.

Também gostaria de saber se existe uma maneira de definir permissões diferentes em diferentes diretórios virtuais? Por exemplo, se eu tivesse uma pasta usada para uploads e downloads, existe uma maneira, por meio de um script do powershell, de definir permissões de leitura / gravação para esse diretório virtual?

Obrigado!

#populate array object with contents from webservers.csv file
$webObjects = Import-Csv c:\iis\webservers.csv

ForEach ($obj in $webObjects) {

$name = $obj.WebSiteName
$path = $obj.Path
$vPath = $obj.VirtualDirectory
$appPool = $obj.AppPoolName
$appPoolId = $obj.appPoolIdentity
$dotNetVersion = $obj.DotNetVersion
$port = $obj.Port

#new website path
if ( ! (Test-Path $path)) {
    New-Item -type directory -path $path
} else {
    Write-Host "The path already exists." -BackgroundColor Blue -ForegroundColor White
}

    #new website virtual path
if ( ! (Test-Path $vPath)) {
    New-Item -type directory -path $vPath
} else {
    Write-Host "The path already exists." -BackgroundColor Blue -ForegroundColor White
}

#New application pool
if ( ! (Test-Path "iis:\appPools\$appPool")) {
    New-WebAppPool  $appPool
} else {
    Write-Host "This application pool already exists." -BackgroundColor Blue -ForegroundColor White
}

if (Test-Path "iis:\appPools\$appPool") {
    Set-ItemProperty IIS:\AppPools\$appPool managedRuntimeVersion $dotNetVersion
} else {
    Write-Host "This application pool does not exist." -BackgroundColor Blue -ForegroundColor White
}

#New website
if ( ! (Test-Path "iis:\Sites\$name")) { 
    New-WebSite -Name $name -PhysicalPath $path -ApplicationPool $appPool -Port $port
} else {
    Write-Host "A website with the name $name at $path already exists."  -BackgroundColor Blue -ForegroundColor White
}


#New virtual directory
if ( ! (Test-Path $vPath)) { 
    New-WebVirtualDirectory -Site $name -Name $name -PhysicalPath -$vPath
} else {
    Write-Host "A virtual directory with the name $name at $vPath already exists." -BackgroundColor Blue -ForegroundColor White
}

}

    
por SkyeBoniwell 18.05.2015 / 20:19

0 respostas