Last active 1619348060

A windows startup cmd script, and bash script to execute it on vultr. installs all the things i think are useful to have on a new windows server

Revision 4e3243fd9c7e078218ee276fee3752c1e6aa02be

windows-init.bat Raw
1powershell -Command "iwr https://github.com/PowerShell/PowerShell/releases/download/v7.1.3/PowerShell-7.1.3-win-x64.msi -OutFile c:\powershell.msi"
2msiexec /i c:\powershell.msi /quiet
3
4"C:\Program Files\PowerShell\7\pwsh" -Command "Invoke-WebRequest https://swupdate.openvpn.org/community/releases/openvpn-install-2.4.11-I601-Win10.exe -OutFile c:\openvpn-setup.exe"
5c:\openvpn-setup.exe /S
6"C:\Program Files\PowerShell\7\pwsh" -Command "set-service -name OpenVPNService -StartupType Automatic"
7net start OpenVPNService
8netsh advfirewall firewall add rule name="3389" dir=in action=allow protocol=tcp localport=3389
9
10"C:\Program Files\PowerShell\7\pwsh" -Command "Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0"
11"C:\Program Files\PowerShell\7\pwsh" -Command "Install-Module -Force OpenSSHUtils -Scope AllUsers"
12"C:\Program Files\PowerShell\7\pwsh" -Command "New-ItemProperty -Path 'HKLM:\SOFTWARE\OpenSSH' -Name DefaultShell -Value 'C:\Program Files\PowerShell\7\pwsh.exe' -PropertyType String -Force"
13net start sshd
14net stop sshd
15"C:\Program Files\PowerShell\7\pwsh" -Command "echo 'Subsystem powershell c:/progra~1/powershell/7/pwsh.exe -sshs -NoLogo' >> c:\programdata\ssh\sshd_config"
16"C:\Program Files\PowerShell\7\pwsh" -Command "echo 'PubkeyAuthentication yes' >> c:\programdata\ssh\sshd_config"
17"C:\Program Files\PowerShell\7\pwsh" -Command "echo 'PasswordAuthentication no' >> c:\programdata\ssh\sshd_config"
18net start sshd
19netsh advfirewall firewall add rule name="vpn 22" dir=in action=allow protocol=tcp localport=22
20set authkeysurl=
21"C:\Program Files\PowerShell\7\pwsh" -Command "iwr %authkeysurl% -OutFile c:\programdata\ssh\administrators_authorized_keys"
22rem https://superuser.com/a/1605117
23"C:\Program Files\PowerShell\7\pwsh" -Command "$acl = Get-Acl C:\ProgramData\ssh\administrators_authorized_keys; $acl.SetAccessRuleProtection($true, $false); $administratorsRule = New-Object system.security.accesscontrol.filesystemaccessrule('Administrators','FullControl','Allow'); $systemRule = New-Object system.security.accesscontrol.filesystemaccessrule('SYSTEM','FullControl','Allow'); $acl.SetAccessRule($administratorsRule); $acl.SetAccessRule($systemRule); $acl | Set-Acl"
24
25"C:\Program Files\PowerShell\7\pwsh" -Command "iwr -useb get.scoop.sh | iex; scoop install git; scoop update; scoop bucket add extras; scoop install chromium rclone"