Erstellen von Websites aus einer CSV-Datei und Ordnerberechtigungen

Erstellen von Websites aus einer CSV-Datei und Ordnerberechtigungen

Ich habe eine CSV-Datei, die 10 verschiedene Website-Konfigurationen enthält.

Ich habe das folgende Skript erstellt, um ihre Erstellung zu automatisieren. Wenn ich das Skript teste, läuft es erfolgreich, aber ich frage mich, ob dies das beste Design ist, um die Website-Erstellung zu automatisieren. Ist meine Verwendung der Schleife und der if/else-Anweisungen richtig?

Ich hoffe, dass jemand es überprüfen und mir mitteilen kann, ob dieses Skript gut aussieht.

Ich würde auch gerne wissen, ob es eine Möglichkeit gibt, für verschiedene virtuelle Verzeichnisse unterschiedliche Berechtigungen festzulegen. Wenn ich beispielsweise einen Ordner habe, der für Uploads und Downloads verwendet wird, gibt es dann eine Möglichkeit, über ein Powershell-Skript Lese-/Schreibberechtigungen für dieses virtuelle Verzeichnis festzulegen?

Danke!

#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
}

}

verwandte Informationen