﻿#Windows 11 Pro Client Boxstarter Script: Grundpaket und Konfiguration (c) Tüit GmbH
#TODO: Defaultprograms for Datatypes, Install all Updates (not only critical)

#----------------Setting Variables------------------------

#Other Variables
$dHostname = Read-Host 'Input desired Hostname (Default: Keep current hostname)'
if($dHostname -eq ""){$dHostname = [Net.Dns]::GetHostName()}

#---------------Configure Chocolatey and Environment-------------------------------
choco features enable -n=allowGlobalConfirmation
choco feature enable -n=allowEmptyChecksums
New-Item -ErrorAction Ignore -Path "C:\" -Name "temp" -ItemType "directory"`

#----------------Configure Windows------------------------
#Set Hostname
Write-Host "Setting Hostname to $dHostname":
Rename-Computer -NewName "$dHostname" -Force
#Enable RemoteDesktop
Enable-RemoteDesktop
#Remove annoying Windows Stuff
Disable-GameBarTips
#Set Taskbar to Lock and put it to the bottom and show all icons
Set-TaskbarOptions -Size Small -Dock Bottom -Combine Full -Lock
Set-TaskbarOptions -Size Small -Dock Bottom -Combine Full -AlwaysShowIconsOn
#Show Hidden Files, File Extensions, Systemfiles and Full-Path in Titlebar
Set-WindowsExplorerOptions -EnableShowFullPathInTitleBar
#Disable IPv6
Write-Host DisabledComponents registry key:
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters /v DisabledComponents /t REG_DWORD /d 0xFF /f
#Zeitserver einstellen
#reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers /v (Standard) /t REG_SZ /d 1 /f
#reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers /v 1 /t REG_SZ /d 0.de.pool.ntp.org /f
#reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers /v 2 /t REG_SZ /d 1.de.pool.ntp.org /f
net time /setsntp:"0.de.pool.ntp.org"

#---------------Install important Windows Packages---------------
#Install all critical OS Updates
Install-WindowsUpdate -AcceptEula -GetUpdatesFromMS
choco install javaruntime -y --cacheLocation="c:\temp"

#---------------Install Tueit Basic Software---------------------
choco install vlc -y --cacheLocation="c:\temp"
#choco install adobereader -y --cacheLocation="c:\temp"
choco install 7zip -y --cacheLocation="c:\temp"
choco install firefox -y --cacheLocation="c:\temp"
#choco install googlechrome -y --cacheLocation="c:\temp"
choco install greenshot -y --cacheLocation="c:\temp"
choco install thunderbird -y --cacheLocation="c:\temp"
#choco install pdf24 -y --cacheLocation="c:\temp"
choco install openvpn-connect -y --cacheLocation="c:\temp"
choco install rustdesk --params "'/config: host=rd.tueit.de,key=udW7BhgOOwFypZX4KKGMBORO4EG6+MvsPVEmY99F4UA='"

#---------------Remove junk---------------
function removeApp {
    Param ([string]$appName)
    Write-Output "Trying to remove $appName"
    Get-AppxPackage $appName -AllUsers | Remove-AppxPackage
    Get-AppXProvisionedPackage -Online | Where DisplayNam -like $appName | Remove-AppxProvisionedPackage -Online
}

$applicationList = @(
    "*MarchofEmpires*"
    "*Autodesk*"
    "*BubbleWitch*"
    "*garden*"
    "*hidden*"
    "*deezer*"
    "*phototastic*"
    "*tunein*"
    "king.com*"
    "G5*"
    "*Facebook*"
    "*Keeper*"
    "*.EclipseManager"
    "ActiproSoftwareLLC.562882FEEB491" # Code Writer
    "*DolbyAccess*"
    "*disney*"
    "*HiddenCityMysteryofShadows*"
    "*Dell*"
    "*Dropbox*"
    "*Facebook*"
    "*Keeper*"
    "*McAfee*"
    "*Minecraft*"
    "*Twitter*"

    "*outlook*"
    "*onedrive*"
    "*onenote*"
    "Microsoft.*advertising*"
    "Microsoft.*3D*"
    "Microsoft.Bing*"
    "Microsoft.Copilot*"
    "Microsoft.Getstarted"
    "Microsoft.Messaging"
    "Microsoft.MicrosoftOfficeHub"
    "Microsoft.MicrosoftStickyNotes"
    "Microsoft.Music*"
    "Microsoft.Office.OneNote"
    "Microsoft.Office.Sway"
    "Microsoft.OneConnect"
    "Microsoft.OneDriveSync"
    "Microsoft.People"
    "Microsoft.SkypeApp"
	"Microsoft.MicrosoftSolitaireCollection"
    "Microsoft.Wallet"
    "Microsoft.WindowsFeedbackHub"
    "Microsoft.WindowsMaps"
    "Microsoft.WindowsSoundRecorder"
    "microsoft.windowscommunicationsapps"
    "Microsoft.Zune*"
    "MicrosoftTeams"
    "*WebExperience*"
);

foreach ($app in $applicationList) {
    removeApp $app
}