Powershell/Windows Server/Install-WacApp.ps1
2023-07-04 12:59:44 +02:00

45 lines
1.7 KiB
PowerShell

Function Install-WacApp {
[CmdletBinding(
SupportsShouldProcess = $true
)]
param (
[Parameter(Mandatory = $false)]
[ValidateNotNullOrEmpty()]
[ValidateSet("generate", "installed")]
[string]$CertOption = "generate",
[Parameter(Mandatory = $false)]
[ValidateNotNullOrEmpty()]
[int]$Port = 443
)
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$Output = (Join-Path $env:TEMP "WAC.msi")
$Logfile = (Join-Path $env:TEMP "WAC.txt")
Write-Host "Start Download to temp folder to $Output" -ForegroundColor Green
Invoke-WebRequest "https://aka.ms/WACDownload" -OutFile "$Output"
if ($CertOption -eq "generate") {
$msiArgs = @("/i", "$Output", "/qn", "/L*v", "$Logfile", "SME_PORT=$($Port)", "SSL_CERTIFICATE_OPTION=$($CertOption)")
}
elseif ($CertOption -eq "installed") {
$Thumbprint = Read-Host "Enter un certificate Thumbprint"
$msiArgs = @("/i", "$Output", "/qn", "/L*v", "$Logfile", "SME_PORT=$($Port)", "SME_THUMBPRINT=$($Thumbprint)", "SSL_CERTIFICATE_OPTION=$($CertOption)")
}
else {
return
}
Write-Host "Start Install WAC with port $Port, view logs at $Logfile" -ForegroundColor Green
Start-Process msiexec.exe -ArgumentList $msiArgs -Wait -PassThru -Verb "RunAs"
Write-Host "Create firewall rules for WAC access on any profiles" -ForegroundColor Green
New-NetFirewallRule -DisplayName "Allow Windows Admin Center" -Direction Outbound -profile Any -LocalPort $Port -Protocol TCP -Action Allow
New-NetFirewallRule -DisplayName "Allow Windows Admin Center" -Direction Inbound -profile Any -LocalPort $Port -Protocol TCP -Action Allow
}