スクリプトでMS SQL ServerとPostgreSQLをインストールしてみた

投稿者: | 10月 24, 2023

MS SQLとPostgreSQLの両方をサポートしているアプリが実は結構あって、どちらかをいれなきゃいけないんだけど、インストーラーをぽちぽちするのは面倒。特にMS SQLは結構面倒。なので、簡単にインストールができるスクリプトを作ってみた。

 

閑話休題

 

MS SQL Server 2022をサクッとスクリプトでインストール

SA認証を有効にしてある。

Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process

$ISOImagePath = "<ファイルサーバUNCパス>\SQLServer2022-x64-JPN.iso"
$SQLPassword = "<パスワード>"

write-host "Mouunting ISO image"
Mount-DiskImage -ImagePath $ISOImagePath
get-diskimage $ISOImagePath
$mountedDrive = (Get-DiskImage $ISOImagePath | Get-Volume).DriveLetter
$setupPath = $mountedDrive + ":\Setup.exe"

#Set-NetFirewallProfile -Profile Domain, Public, Private -Enabled False
$setupArgs = '/q /ACTION=Install /INSTANCENAME="MSSQLSERVER" /FEATURES=SQLEngine /SQLSVCACCOUNT="NT AUTHORITY\SYSTEM" /AGTSVCACCOUNT="NT AUTHORITY\SYSTEM" /SQLSYSADMINACCOUNTS="BUILTIN\Administrators" /IACCEPTSQLSERVERLICENSETERMS /TCPENABLED=1 /UPDATEENABLED="False" /SECURITYMODE=SQL /SAPWD="' + $SQLPassword + '"'
Start-Process -FilePath $setupPath -Argumentlist $setupArgs -NoNewWindow -Wait | Out-Null

write-host "Unmouunting ISO image"
Dismount-DiskImage -ImagePath $ISOImagePath

write-host "Done"
pause

 

PostgreSQL for Windowsをサクッとスクリプトでインストール

pgAdminは、別途入れるのでPostgreSQLのインストールオプションから外してある。また、Stackbuilderも外してある。

Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process

$postgresCommand = '<ファイルサーバUNCパス>\postgresql-15.4-1-windows-x64.exe'
$pgAdminCommand = '<ファイルサーバUNCパス>\pgadmin4-7.8-x64.exe'
$password = "<パスワード>"
$locale = "<ロケール>"

# Install PostgreSQL
Write-host "Installing PostgreSQL"
$postgresArgs = "--mode unattended --unattendedmodeui none --enable-components server,commandlinetools --disable-components pgAdmin,stackbuilder --superpassword `"$password`" --locale `"$locale`""
Start-Process -FilePath $postgresCommand -ArgumentList $postgresArgs -NoNewWindow -Wait

# Install pgAdmin4
Write-host "Installing pgAdmin4"
$pgAdminArgs = "/SP- /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /ALLUSERS"
Start-Process -FilePath $pgAdminCommand -ArgumentList $pgAdminArgs -NoNewWindow -Wait

Write-host "Done"
pause

まぁ、誰得なのかわからないが。。。

コメントを残す