-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathsetup.ps1
139 lines (111 loc) · 3.89 KB
/
setup.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# -------------------------------------------------------------------------
# Author: James Levell
# Date: 2016-09-14
# Version: 1.0
# Comment: Configures the base client
# History: R1 2016-09-14 Levell James Initial Build
# R2 2020-04-09 Levell James Updated for new laptop
# --------------------------------------------------------------------------
Clear-Host
#Verify if admin permission, returns true or false
Function Test-Admin
{
([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")
}
#install coco lately requirment for installing additional software
Function Install-Requirments
{
Invoke-WebRequest https://chocolatey.org/install.ps1 -UseBasicParsing | Invoke-Expression
Start-Sleep -Seconds 10
choco install chocolatey-core.extension
choco upgrade chocolatey-core.extension
choco upgrade all
}
#Installs the additional software
Function Install-Software
{
#support
choco install TeamViewer -iy
#runtimes
choco install javaruntime -iy
#browser
choco install Firefox -iy
choco install googlechrome -iy
choco install microsoft-edge-insider-dev -iy
#medien
choco install vlc -iy
choco install spotify -iy
choco install audacity -iy
choco install gimp -iy
#utilities
choco install dropbox -iy
choco install googledrive -iy
choco install putty -iy
choco install filezilla -iy
choco install visualstudiocode -iy
choco install azure-data-studio -iy
choco install winscp -iy
choco install citrix-receiver -iy
choco install git -iy
choco install jdownloader -iy
choco install notepadplusplus.install -iy
choco install openvpn -iy
#games
choco install steam -iy
}
#installs all updates
Function Install-Updates
{
Install-PackageProvider -Name NuGet -force
Install-Module PSWindowsUpdate -Force
Add-WUServiceManager -ServiceID 7971f918-a847-4430-9279-4a52d1efe18d -Confirm:$false
Get-WUInstall -MicrosoftUpdate -Install -AcceptAll -AutoReboot
Get-WUInstall -WindowsUpdate -Install -AcceptAll -AutoReboot
}
#installs all optional features
Function Install-OptionalFeatures
{
Enable-WindowsOptionalFeature -FeatureName Windows-Defender-ApplicationGuard -All -Online -NoRestart
Enable-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V -All -Online -NoRestart
Enable-WindowsOptionalFeature -FeatureName TelnetClient -All -Online -NoRestart
Enable-WindowsOptionalFeature -FeatureName Microsoft-Windows-Subsystem-Linux -All -Online -NoRestart
}
#Main Function which configures the client
Function Set-Client
{
param (
[Parameter(Mandatory=$true)]
$Hostname = ""
)
$date = get-date -format 'ddMMyyyy'
$path = "c:\temp"
$logFile = $path + "\" + $date + ".txt"
New-Item -Path $path -ItemType Directory -ErrorAction SilentlyContinue
Write-host "Start Logging" >> $logFile
Start-Transcript -Path $logFile
if($PSVersionTable.PSVersion.Major -ge 5)
{
Write-Host "powershell version test passed" -ForegroundColor Green
if(Test-Admin)
{
Write-Host "adminpermission found, continue to run the script" -ForegroundColor Green
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force
Rename-Computer -NewName $Hostname
Install-Requirments
Install-Software
Install-Updates
Install-OptionalFeatures
}
else
{
Write-Host "you do not have administrator permission please rerun the script using them" -ForegroundColor Red
}
}
else
{
Write-Host "not correct version of powershell installed. Requirement is 5 or greater" -ForegroundColor Red
}
Write-Host "Set the executionpolicy to a usefull value" -ForegroundColor Yellow
Stop-Transcript
explorer $path
}