Files
qmi-cloud-tf-modules/win-common/scripts/qdt-demo/sqlserver.ps1
Manuel Romero 5af36dfd40 qdt demo
2020-12-17 11:07:04 +01:00

77 lines
4.7 KiB
PowerShell

Write-Host "--- Installing SQL Server Express...."
$ProgressPreference = 'SilentlyContinue'
choco install --no-progress sql-server-express -ia "/SECURITYMODE=SQL /SAPWD=Qlik1234" -y #--version=2017.20190916
choco install --no-progress sql-server-management-studio -y
# $ENV:PATH="$ENV:PATH;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn"
$ENV:PATH="$ENV:PATH;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn"
New-Item -ItemType Directory -Force -Path C:\Temp | Out-Null
New-Item -ItemType Directory -Force -Path C:\Samples | Out-Null
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Set-Location c:\Temp
# write-log "Installing AdventureWorks"
# Invoke-WebRequest -Uri https://github.com/Microsoft/sql-server-samples/releases/download/adventureworks/AdventureWorks-oltp-install-script.zip -OutFile c:\Temp\AdventureWorks-oltp-install-script.zip
# C:\ProgramData\chocolatey\tools\7z.exe x AdventureWorks-oltp-install-script.zip -oC:\Samples\AdventureWorks\
# cd C:\Samples\AdventureWorks
# SQLCMD.exe -S localhost\SQLEXPRESS -E -i C:\Samples\AdventureWorks\instawdb.sql
Write-Host "Installing AdventureWorksDW"
Invoke-WebRequest -Uri https://github.com/Microsoft/sql-server-samples/releases/download/adventureworks/AdventureWorksDW-data-warehouse-install-script.zip -OutFile c:\Temp\AdventureWorksDW-data-warehouse-install-script.zip
C:\ProgramData\chocolatey\tools\7z.exe x c:\Temp\AdventureWorksDW-data-warehouse-install-script.zip -oC:\Samples\AdventureWorksDW
Set-Location C:\Samples\AdventureWorksDW
Write-Output "SET QUOTED_IDENTIFIER ON
go
" > C:\Samples\AdventureWorksDW\instawdbdw2.sql
cat C:\Samples\AdventureWorksDW\instawdbdw.sql >> C:\Samples\AdventureWorksDW\instawdbdw2.sql
& "C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.exe" -S localhost\SQLEXPRESS -E -i C:\Samples\AdventureWorksDW\instawdbdw2.sql
Write-Host "Installing AdventureWorksLT"
Invoke-WebRequest -Uri https://github.com/Microsoft/sql-server-samples/releases/download/adventureworks/AdventureWorksLT2019.bak -OutFile c:\Temp\AdventureWorksLT2019.bak
Write-Output "USE [master]
RESTORE DATABASE [AdventureWorksLT2019]
FROM DISK = N'c:\Temp\AdventureWorksLT2019.bak'
WITH FILE = 1,
MOVE N'AdventureWorksLT2012_Data' TO N'C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS\MSSQL\DATA\AdventureWorksLT2019.mdf',
MOVE N'AdventureWorksLT2012_Log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS\MSSQL\DATA\AdventureWorksLT2019_log.ldf',
NOUNLOAD, STATS = 5
GO
"> C:\Temp\AdventureWorksLT2019.sql
& "C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.exe" -S localhost\SQLEXPRESS -E -i C:\Temp\AdventureWorksLT2019.sql
#choco install sql2012.nativeclient
& "C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.exe" -S localhost\SQLEXPRESS -E -Q "Create Login qmi with PASSWORD=N'Qlik1234', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF;"
& "C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.exe" -S localhost\SQLEXPRESS -E -Q "EXEC master..sp_addsrvrolemember @loginame = N'qmi', @rolename = N'sysadmin';"
#sqlcmd.exe -S localhost\SQLEXPRESS -E -d master -Q "EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', REG_DWORD, 2"
Restart-Service 'MSSQL$SQLEXPRESS'
#sqlcmd.exe -S localhost\SQLEXPRESS -E -d master -Q "xp_readerrorlog 0, 1, N'Server is listening on'"
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Install-Module -Name SqlServer -Force
Import-Module "SqlServer"
# Modify TCP/IP properties to enable an IP address
# https://stackoverflow.com/questions/9138172/enable-tcp-ip-remote-connections-to-sql-server-express-already-installed-databas
Get-CimInstance -Namespace root/Microsoft/SqlServer/ComputerManagement15 -ClassName ServerNetworkProtocol -Filter "InstanceName = 'SQLEXPRESS' and ProtocolName = 'Tcp'" |Invoke-CimMethod -Name SetEnable
$properties = Get-CimInstance -Namespace root/Microsoft/SqlServer/ComputerManagement15 -ClassName ServerNetworkProtocolProperty -Filter "InstanceName='SQLEXPRESS' and ProtocolName = 'Tcp' and IPAddressName='IPAll'"
$properties | Where-Object { $_.PropertyName -eq 'TcpPort' } | Invoke-CimMethod -Name SetStringValue -Arguments @{ StrValue = '1433' }
$properties | Where-Object { $_.PropertyName -eq 'TcpPortDynamic' } | Invoke-CimMethod -Name SetStringValue -Arguments @{ StrValue = '' }
# Restart SQL Server
Restart-Service 'MSSQL$SQLEXPRESS'
#Enabling SQL Server Ports
Write-Host "Opening firewall port 1433"
New-NetFirewallRule -DisplayName "SQL Server" -Direction Inbound -Protocol TCP -LocalPort 1433 -Action allow
Write-Host "--- SQL Server Express Completed"