diff --git a/tiNGrundpaketClient.txt b/tiNGrundpaketClient.txt index 69227ad..ba753e1 100644 --- a/tiNGrundpaketClient.txt +++ b/tiNGrundpaketClient.txt @@ -1,64 +1,99 @@ -#Windows 11 Pro Client Boxstarter Script: Grundpaket und Konfiguration (c) Tüit GmbH -#TODO: Defaultprograms for Datatypes, Install all Updates (not only critical) +# Windows 11 Pro Client Boxstarter Script: Grundpaket und Konfiguration (c) Tüit GmbH +# Erweiterungen: Vollständige Updates, Schnellstart deaktivieren, LibreOffice, Bugfix, Admin aktivieren, Firefox Default, Logging, Abschlussbericht + +#----------------Logging starten------------------------ +$LogFile = "C:\temp\setup-log-$(Get-Date -Format yyyy-MM-dd_HH-mm-ss).txt" +Start-Transcript -Path $LogFile -Append +Write-Host "Logging gestartet. Alle Ausgaben werden in $LogFile gespeichert." #----------------Setting Variables------------------------ +# Hostname abfragen (Pflichtfeld) +do { + $dHostname = Read-Host 'Input desired Hostname (required)' +} until ($dHostname -ne "") -#Other Variables -$dHostname = Read-Host 'Input desired Hostname (Default: Keep current hostname)' -if($dHostname -eq ""){$dHostname = [Net.Dns]::GetHostName()} +#---------------Helper Functions-------------------------- +$SuccessInstalls = @() +$FailedInstalls = @() + +function Install-ChocoPackage { + param([string]$pkg) + choco install $pkg -y --cacheLocation="c:\temp" + if ($LASTEXITCODE -eq 0) { + Write-Host "[$pkg] erfolgreich installiert." + $SuccessInstalls += $pkg + } else { + Write-Host "FEHLER: [$pkg] konnte nicht installiert werden!" -ForegroundColor Red + $FailedInstalls += $pkg + } +} + +function removeApp { + Param ([string]$appName) + Write-Output "Trying to remove $appName" + Get-AppxPackage $appName -AllUsers | Remove-AppxPackage -ErrorAction SilentlyContinue + Get-AppXProvisionedPackage -Online | Where-Object DisplayName -like $appName | Remove-AppxProvisionedPackage -Online -ErrorAction SilentlyContinue +} #---------------Configure Chocolatey and Environment------------------------------- choco features enable -n=allowGlobalConfirmation choco feature enable -n=allowEmptyChecksums -New-Item -ErrorAction Ignore -Path "C:\" -Name "temp" -ItemType "directory"` +New-Item -ErrorAction Ignore -Path "C:\" -Name "temp" -ItemType "directory" #----------------Configure Windows------------------------ -#Set Hostname -Write-Host "Setting Hostname to $dHostname": +# Set Hostname +Write-Host "Setting Hostname to $dHostname" Rename-Computer -NewName "$dHostname" -Force -#Enable RemoteDesktop + +# Enable RemoteDesktop Enable-RemoteDesktop -#Remove annoying Windows Stuff + +# Remove annoying Windows Stuff Disable-GameBarTips -#Set Taskbar to Lock and put it to the bottom and show all icons + +# Taskbar Optionen 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 + +# Explorer Optionen Set-WindowsExplorerOptions -EnableShowFullPathInTitleBar -#Disable IPv6 + +# 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 + +# Zeitserver einstellen net time /setsntp:"0.de.pool.ntp.org" +# Schnellstart deaktivieren +Write-Host "Schnellstart wird deaktiviert..." +reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Power" /v HiberbootEnabled /t REG_DWORD /d 0 /f + +# Lokalen Administrator aktivieren +Write-Host "Lokalen Administrator aktivieren..." +net user Administrator /active:yes + #---------------Install important Windows Packages--------------- -#Install all critical OS Updates -Install-WindowsUpdate -AcceptEula -GetUpdatesFromMS -choco install javaruntime -y --cacheLocation="c:\temp" +# Install all Updates (inkl. optionale Updates, MicrosoftUpdate, Autoreboot) +Write-Host "Starte Windows Update (alle Updates inkl. optional)..." +Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot #---------------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='" +Install-ChocoPackage "javaruntime" +Install-ChocoPackage "vlc" +Install-ChocoPackage "7zip" +Install-ChocoPackage "firefox" +Install-ChocoPackage "greenshot" +Install-ChocoPackage "thunderbird" +Install-ChocoPackage "openvpn-connect" +Install-ChocoPackage "rustdesk --params '\"/config: host=rd.tueit.de,key=udW7BhgOOwFypZX4KKGMBORO4EG6+MvsPVEmY99F4UA=\"'" +Install-ChocoPackage "libreoffice-fresh" + +# Firefox als Standard-Browser setzen +Write-Host "Setze Firefox als Standardbrowser..." +Start-Process -FilePath "C:\Program Files\Mozilla Firefox\firefox.exe" -ArgumentList "--setDefaultBrowser" -Wait #---------------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*" @@ -73,18 +108,15 @@ $applicationList = @( "*Facebook*" "*Keeper*" "*.EclipseManager" - "ActiproSoftwareLLC.562882FEEB491" # Code Writer + "ActiproSoftwareLLC.562882FEEB491" "*DolbyAccess*" "*disney*" "*HiddenCityMysteryofShadows*" "*Dell*" "*Dropbox*" - "*Facebook*" - "*Keeper*" "*McAfee*" "*Minecraft*" "*Twitter*" - "*outlook*" "*onedrive*" "*onenote*" @@ -103,7 +135,7 @@ $applicationList = @( "Microsoft.OneDriveSync" "Microsoft.People" "Microsoft.SkypeApp" - "Microsoft.MicrosoftSolitaireCollection" + "Microsoft.MicrosoftSolitaireCollection" "Microsoft.Wallet" "Microsoft.WindowsFeedbackHub" "Microsoft.WindowsMaps" @@ -112,8 +144,29 @@ $applicationList = @( "Microsoft.Zune*" "MicrosoftTeams" "*WebExperience*" -); +) foreach ($app in $applicationList) { removeApp $app -} \ No newline at end of file +} + +#---------------Abschlussbericht--------------------- +Write-Host "`n========== ABSCHLUSSBERICHT ==========" +Write-Host "Erfolgreich installierte Pakete:" +if ($SuccessInstalls.Count -gt 0) { + $SuccessInstalls | ForEach-Object { Write-Host " - $_" } +} else { + Write-Host " (keine)" +} + +Write-Host "`nFehlgeschlagene Pakete:" +if ($FailedInstalls.Count -gt 0) { + $FailedInstalls | ForEach-Object { Write-Host " - $_" } +} else { + Write-Host " (keine)" +} +Write-Host "======================================" + +#----------------Logging beenden------------------------ +Stop-Transcript +Write-Host "Setup abgeschlossen. Logdatei: $LogFile" \ No newline at end of file