summaryrefslogtreecommitdiff
path: root/ansible/scripts/setup-websql.ps1
diff options
context:
space:
mode:
authorheqnx <root@heqnx.com>2025-07-14 11:54:51 +0300
committerheqnx <root@heqnx.com>2025-07-14 11:54:51 +0300
commitb1ca188b8a16a49b79cd18ae39261fe9c666edf1 (patch)
tree2c1ec57694b79332c3017bf73b47521632a9602b /ansible/scripts/setup-websql.ps1
parent21de19d2573b802d93cd0a9af739ca2937e28b66 (diff)
downloadansible-active-directory-range-b1ca188b8a16a49b79cd18ae39261fe9c666edf1.tar.gz
ansible-active-directory-range-b1ca188b8a16a49b79cd18ae39261fe9c666edf1.zip
working iis + mssql setup
Diffstat (limited to 'ansible/scripts/setup-websql.ps1')
-rw-r--r--ansible/scripts/setup-websql.ps1112
1 files changed, 67 insertions, 45 deletions
diff --git a/ansible/scripts/setup-websql.ps1 b/ansible/scripts/setup-websql.ps1
index 9f5db5c..7865091 100644
--- a/ansible/scripts/setup-websql.ps1
+++ b/ansible/scripts/setup-websql.ps1
@@ -1,6 +1,7 @@
param (
[string]$DomainName = "contoso.com",
- [string]$SvcUsername = "svc_websql01",
+ #[string]$SvcUsername = "svc_websql01",
+ [string]$SvcUsername = "svc_mssql02",
[string]$SvcPassword = "Svc1234!"
)
@@ -13,7 +14,69 @@ $wwwroot3 = "C:\inetpub\wwwroot3"
Start-Transcript -Path $logFile -Append
-# --- IIS Setup ---
+try {
+ New-Item -Path "C:\setup\media" -ItemType "Directory" -Force
+ @"
+;SQL Server Configuration File
+[OPTIONS]
+IACCEPTSQLSERVERLICENSETERMS="True"
+ACTION="Install"
+ENU="True"
+QUIET="True"
+QUIETSIMPLE="False"
+UpdateEnabled="False"
+ERRORREPORTING="False"
+USEMICROSOFTUPDATE="False"
+FEATURES=SQLENGINE,FULLTEXT
+UpdateSource="MU"
+HELP="False"
+INDICATEPROGRESS="False"
+X86="False"
+INSTALLSHAREDDIR="C:\Program Files\Microsoft SQL Server"
+INSTALLSHAREDWOWDIR="C:\Program Files (x86)\Microsoft SQL Server"
+INSTANCENAME="SQLEXPRESS"
+SQMREPORTING="False"
+INSTANCEID="SQLEXPRESS"
+RSINSTALLMODE="DefaultNativeMode"
+INSTANCEDIR="C:\Program Files\Microsoft SQL Server"
+AGTSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE"
+AGTSVCSTARTUPTYPE="Automatic"
+COMMFABRICPORT="0"
+COMMFABRICNETWORKLEVEL="0"
+COMMFABRICENCRYPTION="0"
+MATRIXCMBRICKCOMMPORT="0"
+SQLSVCSTARTUPTYPE="Automatic"
+FILESTREAMLEVEL="0"
+ENABLERANU="False"
+SQLCOLLATION="SQL_Latin1_General_CP1_CI_AS"
+SQLSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE"
+SAPWD="$SvcPassword"
+SQLSYSADMINACCOUNTS="BUILTIN\Administrators"
+ADDCURRENTUSERASSQLADMIN="True"
+TCPENABLED="1"
+NPENABLED="0"
+BROWSERSVCSTARTUPTYPE="Disabled"
+RSSVCSTARTUPTYPE="manual"
+FTSVCACCOUNT="NT Service\MSSQLFDLauncher"
+"@ | Out-File "C:\setup\sql_conf.ini"
+
+ Start-Process -FilePath "C:\setup\SQL2019-SSEI-Expr.exe" -ArgumentList "/configurationfile=C:\setup\sql_conf.ini /IACCEPTSQLSERVERLICENSETERMS /MEDIAPATH=C:\setup\media /QUIET /HIDEPROGRESSBAR" -Wait
+ Set-ItemProperty -Path "HKLM:\Software\Microsoft\Microsoft SQL Server\MSSQL15.SQLEXPRESS\MSSQLServer\SuperSocketNetLib\Tcp\IPAll" -Name "TcpPort" -Value "1433" -Force
+ Restart-Service -Name "MSSQL`$SQLEXPRESS"
+ New-NetFirewallRule -DisplayName "SQLServer default instance" -Direction Inbound -LocalPort 1433 -Protocol TCP -Action Allow
+
+ $env:Path += ";C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn"
+ SqlCmd -E -Q "CREATE LOGIN [$NetBiosName\$SvcUsername] FROM WINDOWS"
+ SqlCmd -E -Q "SP_ADDSRVROLEMEMBER '$NetBiosName\$SvcUsername', 'SYSADMIN'"
+
+ SqlCmd -E -Q "ALTER LOGIN sa ENABLE"
+ SqlCmd -E -Q "ALTER LOGIN sa WITH PASSWORD = '$SvcPassword', CHECK_POLICY=OFF"
+ Write-Host "[INFO] Added $NetBiosName\$SvcUsername as MSSQL login and sysadmin"
+ Write-Host "[INFO] Enabled SA login"
+} catch {
+ Write-Host "[ERR] SQL Server setup failed"
+}
+
try {
Install-WindowsFeature -Name Web-Server -IncludeManagementTools
Install-WindowsFeature -Name Web-Asp-Net45
@@ -22,7 +85,6 @@ try {
Write-Host "[ERR] Failed to install IIS and ASP.NET"
}
-# Upload form content
@"
using System;
using System.IO;
@@ -83,7 +145,6 @@ public partial class UploadPage : Page
</configuration>
"@ | Out-File "$wwwroot1\Web.config" -Force
-# Default site - port 80
try {
New-WebSite -Name "MyASPXSite" -Port 80 -PhysicalPath $wwwroot1 -ApplicationPool "DefaultAppPool"
Set-ItemProperty "IIS:\AppPools\DefaultAppPool" -Name processModel -Value @{userName="$SvcUsername";password="$SvcPassword";identityType=3}
@@ -94,7 +155,6 @@ try {
Write-Host "[ERR] Failed to create site 1"
}
-# ACLs for wwwroot1
try {
$svcRule = New-Object System.Security.AccessControl.FileSystemAccessRule("$DomainName\$SvcUsername", "Modify", "ContainerInherit,ObjectInherit", "None", "Allow")
$acl = Get-Acl $wwwroot1
@@ -105,7 +165,6 @@ try {
Write-Host "[ERR] Failed to set ACL for $wwwroot1"
}
-# Second site - port 8080
try {
Copy-Item $wwwroot1 -Destination $wwwroot2 -Recurse -Force
New-WebAppPool -Name "DefaultAppPool2"
@@ -122,42 +181,6 @@ try {
Write-Host "[ERR] Failed to create site 2"
}
-# SQL Server Express setup
-try {
- New-Item -Path "C:\setup\media" -ItemType "Directory" -Force
- @"
-;SQL Server Configuration File
-[OPTIONS]
-IACCEPTSQLSERVERLICENSETERMS="True"
-ACTION="Install"
-ENU="True"
-QUIET="True"
-FEATURES=SQLENGINE,FULLTEXT
-INSTANCENAME="SQLEXPRESS"
-SQLSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE"
-SQLSYSADMINACCOUNTS="BUILTIN\Administrators"
-ADDCURRENTUSERASSQLADMIN="True"
-TCPENABLED="1"
-NPENABLED="0"
-SAPWD="$SvcPassword"
-"@ | Out-File "C:\setup\sql_conf.ini"
-
- Start-Process -FilePath "C:\setup\SQL2019-SSEI-Expr.exe" -ArgumentList "/configurationfile=C:\setup\sql_conf.ini /IACCEPTSQLSERVERLICENSETERMS /MEDIAPATH=C:\setup\media /QUIET" -Wait
- Set-ItemProperty -Path "HKLM:\Software\Microsoft\Microsoft SQL Server\MSSQL15.SQLEXPRESS\MSSQLServer\SuperSocketNetLib\Tcp\IPAll" -Name "TcpPort" -Value "1433"
- Restart-Service -Name "MSSQL`$SQLEXPRESS"
- New-NetFirewallRule -DisplayName "SQLServer 1433" -Direction Inbound -LocalPort 1433 -Protocol TCP -Action Allow
-
- $env:Path += ";C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn"
- SqlCmd -E -Q "CREATE LOGIN [$NetBiosName\$SvcUsername] FROM WINDOWS"
- SqlCmd -E -Q "SP_ADDSRVROLEMEMBER '$NetBiosName\$SvcUsername', 'SYSADMIN'"
- SqlCmd -E -Q "ALTER LOGIN sa ENABLE"
- SqlCmd -E -Q "ALTER LOGIN sa WITH PASSWORD = '$SvcPassword', CHECK_POLICY=OFF"
- Write-Host "[INFO] SQL Server installed/configured"
-} catch {
- Write-Host "[ERR] SQL Server setup failed"
-}
-
-# Third site - port 9090 with upload + SQL query page
try {
Copy-Item $wwwroot1 -Destination $wwwroot3 -Recurse -Force
New-WebAppPool -Name "SqlQueryAppPool"
@@ -165,7 +188,6 @@ try {
Set-ItemProperty "IIS:\AppPools\SqlQueryAppPool" -Name processModel -Value @{userName="$SvcUsername";password="$SvcPassword";identityType=3}
New-NetFirewallRule -DisplayName "HTTP (9090)" -Direction Inbound -Protocol TCP -LocalPort 9090 -Action Allow
- # SQL Query Page
@"
<%@ Page Language="C#" Debug="true" %>
<%@ Import Namespace="System.Data" %>
@@ -191,7 +213,7 @@ try {
litResults.Text = "<table border='1'><tr>";
foreach (DataColumn col in dt.Columns)
{
- litResults.Text += $"<th>{col.ColumnName}</th>";
+ litResults.Text += string.Format("<th>{0}</th>", col.ColumnName);
}
litResults.Text += "</tr>";
@@ -200,7 +222,7 @@ try {
litResults.Text += "<tr>";
foreach (var item in row.ItemArray)
{
- litResults.Text += $"<td>{item}</td>";
+ litResults.Text += string.Format("<td>{0}</td>", item);
}
litResults.Text += "</tr>";
}