csv 파일 및 폴더 권한으로 웹사이트 만들기

csv 파일 및 폴더 권한으로 웹사이트 만들기

10개의 서로 다른 웹사이트 구성이 포함된 csv 파일이 있습니다.

생성을 자동화하기 위해 아래 스크립트를 만들었습니다. 스크립트를 테스트하면 성공적으로 실행되지만 이것이 웹 사이트 생성을 자동화하는 데 가장 적합한 디자인인지 궁금합니다. 루프와 if/else 문을 올바르게 사용하고 있습니까?

누군가가 이 스크립트를 검토하고 좋아 보이는지 알려줄 수 있기를 바랍니다.

또한 서로 다른 가상 디렉터리에 서로 다른 권한을 설정하는 방법이 있는지 알고 싶습니다. 예를 들어, 업로드 및 다운로드에 사용되는 폴더가 있는 경우 powershell 스크립트를 통해 해당 가상 디렉터리에 대한 읽기/쓰기 권한을 설정하는 방법이 있습니까?

감사해요!

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

}

관련 정보