diff options
author | heqnx <root@heqnx.com> | 2025-07-14 11:54:51 +0300 |
---|---|---|
committer | heqnx <root@heqnx.com> | 2025-07-14 11:54:51 +0300 |
commit | b1ca188b8a16a49b79cd18ae39261fe9c666edf1 (patch) | |
tree | 2c1ec57694b79332c3017bf73b47521632a9602b /ansible/scripts/setup-websql.ps1 | |
parent | 21de19d2573b802d93cd0a9af739ca2937e28b66 (diff) | |
download | ansible-active-directory-range-main.tar.gz ansible-active-directory-range-main.zip |
Diffstat (limited to 'ansible/scripts/setup-websql.ps1')
-rw-r--r-- | ansible/scripts/setup-websql.ps1 | 112 |
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>"; } |