Update auf Ui
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,4 +2,5 @@ test*
|
|||||||
*.log
|
*.log
|
||||||
.history/
|
.history/
|
||||||
OOSU10.exe
|
OOSU10.exe
|
||||||
|
logs/
|
||||||
|
|
||||||
|
|||||||
315
config.ps1
Normal file
315
config.ps1
Normal file
@@ -0,0 +1,315 @@
|
|||||||
|
# Enthält konfigurationen für das Script
|
||||||
|
|
||||||
|
# Software
|
||||||
|
|
||||||
|
$toRemove = @('Clipchamp.Clipchamp_yxz26nhyzhsrt', 'Microsoft.549981C3F5F10_8wekyb3d8bbwe', 'Microsoft.BingNews_8wekyb3d8bbwe', 'Microsoft.BingWeather_8wekyb3d8bbwe', 'Microsoft.GetHelp_8wekyb3d8bbwe',
|
||||||
|
'Microsoft.MicrosoftOfficeHub_8wekyb3d8bbwe', 'Microsoft.MicrosoftSolitaireCollection_8wekyb3d8bbwe', 'Micorosoft.MicrosoftStickyNotes_8wekyb3d8bbwe', 'Microsoft.People_8wekyb3d8bbwe',
|
||||||
|
'Microsoft.PowerAutomateDesktop_8wekyb3d8bbwe', 'Microsoft.Todos_8wekyb3d8bbwe', 'Microsoft.Windows.Photos_8wekyb3d8bbwe', 'Microsoft.WindowsMaps_8wekyb3d8bbwe',
|
||||||
|
'Microsoft.WindowsSoundRecorder_8wekyb3d8bbwe', 'Microsoft.WindowsAlarms_8wekyb3d8bbwe', 'Microsoft.YourPhone_8wekyb3d8bbwe', 'Microsoft.ZuneMusic_8wekyb3d8bbwe', 'Microsoft.ZuneVideo_8wekyb3d8bbwe',
|
||||||
|
'MicrosoftCorporationII.QuickAssist_8wekyb3d8bbwe', 'MicrosoftTeams_8wekyb3d8bbwe', 'MicrosoftTeams_8wekyb3d8bbwe', 'Microsoft.OneDrive', 'microsoft.windowscommunicationsapps_8wekyb3d8bbwe', 'CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc')
|
||||||
|
|
||||||
|
$toInstall = @('7zip.7zip', 'VideoLAN.VLC', 'SumatraPDF.SumatraPDF', 'Microsoft.VisualStudioCode', 'Bitwarden.Bitwarden', 'Mozilla.Firefox', 'IrfanSkiljan.IrfanView', 'Microsoft.PowerToys',
|
||||||
|
'Joplin.Joplin', 'WireGuard.WireGuard', 'Devolutions.RemoteDesktopManager', 'TeamViewer.TeamViewer', 'NickeManarin.ScreenToGif', 'JanDeDobbeleer.OhMyPosh', 'WiresharkFoundation.Wireshark', 'Famatech.AdvancedIPScanner',
|
||||||
|
'yt-dlp.yt-dlp'.'Audacity.Audacity', 'ffmpeg')
|
||||||
|
|
||||||
|
$toInstallOpt = @('Element.Element', 'Discord.Discord', 'Corsair.iCUE.4', 'Valve.Steam', 'GOG.Galaxy', 'TeXstudio.TeXstudio', 'MiKTeX.MiKTeX', 'Citrix.Workspace', 'Nvidia.GeForceExperience', 'Mojang.MinecraftLauncher',
|
||||||
|
'Elgato.StreamDeck', 'REALiX.HWiNFO', '9P4CLT2RJ1RS', 'Microsoft.SQLServerManagementStudio', 'Soundboard', 'VMware.WorkstationPro')
|
||||||
|
|
||||||
|
# Deinstalliert den Crap
|
||||||
|
function RemoveSoftware {
|
||||||
|
Read-Host "BLA"
|
||||||
|
$wingetResult = New-Object System.Collections.Generic.List[System.Object]
|
||||||
|
foreach ($utility in $toRemove) {
|
||||||
|
Try {
|
||||||
|
winget uninstall -e $utility
|
||||||
|
$wingetResult.Add("$node`n")
|
||||||
|
Start-Sleep -s 6
|
||||||
|
Wait-Process winget -Timeout 90 -ErrorAction SilentlyContinue
|
||||||
|
}
|
||||||
|
Catch {
|
||||||
|
Write-Host "Paket $utility konnte nicht deinstalliert werden. " -ForegroundColor red
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$wingetResult.ToArray()
|
||||||
|
$wingetResult | ForEach-Object { $_ } | Out-Host
|
||||||
|
# Popup after finished
|
||||||
|
$ButtonType = [System.Windows.MessageBoxButton]::OK
|
||||||
|
if ($wingetResult -ne "") {
|
||||||
|
$Messageboxbody = "Deinstallierter Crap `n$($wingetResult)"
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$Messageboxbody = "Kein Crap deinstalliert."
|
||||||
|
}
|
||||||
|
$MessageIcon = [System.Windows.MessageBoxImage]::Information
|
||||||
|
|
||||||
|
[System.Windows.MessageBox]::Show($Messageboxbody, $AppTitle, $ButtonType, $MessageIcon)
|
||||||
|
}
|
||||||
|
|
||||||
|
# Installiert die Default Software
|
||||||
|
function InstallSoftware {
|
||||||
|
# Winget config installieren.
|
||||||
|
if (-not(Test-Path -Path '~\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json' -PathType leaf)) {
|
||||||
|
Write-Host "Lege Winget config an." -ForegroundColor Blue
|
||||||
|
try {
|
||||||
|
New-Item -Path "~\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json" -ItemType SymbolicLink -Value "~/.winconfig/configs/winget/settings.json" | Out-Null
|
||||||
|
Write-Host "Winget config erfolgreich verlinkt." -ForegroundColor Green
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
Write-Host "Probleme beim verlinken der Wignet configt" -ForegroundColor Red
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (CheckForLink(~\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json) -eq $False) {
|
||||||
|
Write-Host "Lege Winget config an." -ForegroundColor Blue
|
||||||
|
Remove-Item "~\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json"
|
||||||
|
try {
|
||||||
|
New-Item -Path "~\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json" -ItemType SymbolicLink -Value "~/.winconfig/configs/winget/settings.json" | Out-Null
|
||||||
|
Write-Host "Winget config erfolgreich verlinkt." -ForegroundColor Green
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
Write-Host "Probleme beim verlinken der Wignet configt" -ForegroundColor Red
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# Software installieren.
|
||||||
|
foreach ($utility in $toInstall) {
|
||||||
|
$ergebnis = winget list --id -e $utility
|
||||||
|
if ($ergebnis -eq "Es wurde kein installiertes Paket gefunden, das den Eingabekriterien entspricht.") {
|
||||||
|
Try {
|
||||||
|
winget install -e --id $utility --silent
|
||||||
|
# Killt Programme die nach der Installation automatisch die UI starten. Ätzend!
|
||||||
|
if ($utility -eq 'Famatech.AdvancedIPScanner' ) {
|
||||||
|
Start-Sleep -Seconds 5
|
||||||
|
taskkill /IM advanced_ip_scanner.exe | Out-Null
|
||||||
|
|
||||||
|
}
|
||||||
|
elseif ($utility -eq 'Microsoft.PowerToys') {
|
||||||
|
Start-Sleep -Seconds 5
|
||||||
|
taskkill /IM PowerToys.Settings.exe | Out-Null
|
||||||
|
}
|
||||||
|
elseif ($utility -eq 'ffmpeg') {
|
||||||
|
Write-Host "Installiere ffmpeg..." -ForegroundColor Blue
|
||||||
|
try {
|
||||||
|
curl.exe -L https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-essentials.7z -o ~/.winconfig/ffmpeg.7z
|
||||||
|
& "C:\Program Files\7-Zip\7z.exe" e ~/.winconfig/ffmpeg.7z -o"c:\Program Files\ffmpeg\"
|
||||||
|
Remove-Item ~/.winconfig/ffmpeg.7z
|
||||||
|
Write-Host "ffmpeg wurde erfolgreich installiert." -ForegroundColor Green
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
Write-Host "Es ist ein Fehler bei der Installation von ffmpeg auftreten. Bitte das Log durchsuchen." -ForegroundColor Red
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Catch {
|
||||||
|
Write-Host "Paket $utility konnte nicht installiert werden. " -ForegroundColor Red
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Write-Host "Programm $utility bereits installiert" -ForegroundColor Green
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# OOShutup10 herunterladen und config reinrendern.
|
||||||
|
Write-Host "Lade OOshutup10 herunter bitte warten..." -ForegroundColor Blue
|
||||||
|
Try {
|
||||||
|
curl.exe -s "https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe" -o OOSU10.exe
|
||||||
|
Write-Host "OOshutup10 erfolgreich heruntergeladen." -ForegroundColor Green
|
||||||
|
Write-Host "Versuche OOshutup10 config einzulesen..." -ForegroundColor Blue
|
||||||
|
./OOSU10.exe $HOME\.winconfig\configs\ooshutup10\ooshutup10.cfg /quiet
|
||||||
|
Write-Host "OOshutup10 config erfolgreich eingelesen." -ForegroundColor Green
|
||||||
|
}
|
||||||
|
Catch {
|
||||||
|
Write-Host "Problem beim herunterladen von OOshutup 10." -ForegroundColor Red
|
||||||
|
}
|
||||||
|
Write-Host "Richte Powershell und Terminal ein..." -ForegroundColor Blue
|
||||||
|
# Fonts installieren.
|
||||||
|
$LocalPath = "~/.winconfig/fonts/"
|
||||||
|
$FONTS = 0x14
|
||||||
|
$objShell = New-Object -ComObject Shell.Application
|
||||||
|
$objFolder = $objShell.Namespace($FONTS)
|
||||||
|
$Fontdir = Get-ChildItem $LocalPath
|
||||||
|
foreach ($File in $Fontdir) {
|
||||||
|
Write-Host "Versuche Schriftart $File zu installieren ..." -ForegroundColor Blue
|
||||||
|
Try {
|
||||||
|
if ((Test-Path "C:\Windows\Fonts\$File") -eq $False) {
|
||||||
|
$objFolder.CopyHere($File.fullname, 0x10)
|
||||||
|
}
|
||||||
|
Write-Host "Schriftart $File erfolgreich installiert." -ForegroundColor Green
|
||||||
|
}
|
||||||
|
Catch {
|
||||||
|
Write-Host "Probleme beim installieren der Schriftart $File" -ForegroundColor Red
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# Windows Terminal Settings
|
||||||
|
Write-Host "Richte Windows Terminal config ein..." -ForegroundColor Blue
|
||||||
|
if (CheckForLink(~\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json) -eq $False) {
|
||||||
|
Try {
|
||||||
|
Remove-Item "~\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json" ; New-Item -Path "~\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json" -ItemType SymbolicLink -Value "~/.winconfig/configs/terminal/settings.json" | Out-Null
|
||||||
|
Write-Host "Windows Terminal config erfolgreich eingerichtet" -ForegroundColor Green
|
||||||
|
}
|
||||||
|
Catch {
|
||||||
|
Write-Host "Fehler beim einrichten der Windows Terminal config." -ForegroundColor Red
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# Winfetch installieren & konfigurieren
|
||||||
|
|
||||||
|
if (Get-Module -ListAvailable -Name winfetch) {
|
||||||
|
Write-Host "Winfetch ist bereits installiert." -ForegroundColor Blue
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Write-Host "Installiere und konfiguriere Winfetch..." -ForegroundColor Blue
|
||||||
|
Try {
|
||||||
|
Install-Script winfetch
|
||||||
|
Write-Host "Winfetch erfolgreich installiert." -ForegroundColor Green
|
||||||
|
if ((Test-Path ~/.config/winfetch -PathType Leaf) -eq $True) {
|
||||||
|
Write-Host "Lösche default config..." -ForegroundColor Blue
|
||||||
|
Remove-Item -Recurse -Force ~/.config/winfetch
|
||||||
|
}
|
||||||
|
Write-Host "Lege Winfetch config Ordner an..." -ForegroundColor Blue
|
||||||
|
mkdir ~/.config/winfetch | Out-Null
|
||||||
|
Write-Host "Winfetch config Ordner erfolgreich angelegt!" -ForegroundColor Green
|
||||||
|
Try {
|
||||||
|
New-Item -Path "~/.config/winfetch/config.ps1" -ItemType SymbolicLink -Value "~/.winconfig/configs/winfetch/config.ps1" | Out-Null
|
||||||
|
Write-Host "Winfetch config sauber gelinkt." -ForegroundColor Green
|
||||||
|
}
|
||||||
|
Catch {
|
||||||
|
Write-Host "Probleme beim verlinken der Winfetch config" -ForegroundColor Red
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Catch {
|
||||||
|
Write-Host "Probleme beim installieren von Winfetch" -ForegroundColor Red
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (CheckForLink(~/.config/winfetch/config.ps1) -eq $False) {
|
||||||
|
Remove-Item "~/.config/winfetch/config.ps1"
|
||||||
|
New-Item -Path "~/.config/winfetch/config.ps1" -ItemType SymbolicLink -Value "~/.winconfig/configs/winfetch/config.ps1" | Out-Null
|
||||||
|
}
|
||||||
|
# Powershell Profile Datei erzeugen
|
||||||
|
Write-Host "Löschen des default Powershell profiles..." -ForegroundColor Blue
|
||||||
|
if ((Test-Path "~/Documents/PowerShell/profile.ps1" -PathType Leaf) -eq $True) {
|
||||||
|
if (CheckForLink(~/Documents/PowerShell/profile.ps1) -eq $False) {
|
||||||
|
Remove-Item -Force "~/Documents/PowerShell/profile.ps1"
|
||||||
|
Write-Host "Powershell config ~/Documents/PowerShell/profile.ps1 erfolgreich gelöscht." -ForegroundColor Green
|
||||||
|
Try {
|
||||||
|
New-Item -Path "~/Documents/PowerShell/profile.ps1" -ItemType SymbolicLink -Value "~/.winconfig/profile.ps1" | Out-Null
|
||||||
|
Write-Host "Powershell config ~/Documents/PowerShell/profile.ps1 erfolgreich verlinkt."
|
||||||
|
}
|
||||||
|
Catch {
|
||||||
|
Write-Host "Probleme beim verlinken der Powershell config ~/Documents/PowerShell/profile.ps1 " -ForegroundColor Red
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((Test-Path "~/Documents/WindowsPowerShell/profile.ps1" -PathType Leaf) -eq $True) {
|
||||||
|
if (CheckForLink(~/Documents/WindowsPowerShell/profile.ps1) -eq $False) {
|
||||||
|
Remove-Item -Force "~/Documents/WindowsPowerShell/profile.ps1"
|
||||||
|
Write-Host "Powershell config ~/Documents/WindowsPowerShell/profile.ps1 erfolgreich gelöscht." -ForegroundColor Green
|
||||||
|
Try {
|
||||||
|
New-Item -Path "~/Documents/WindowsPowerShell/profile.ps1" -ItemType SymbolicLink -Value "~/.winconfig/profile.ps1" | Out-Null
|
||||||
|
Write-Host "Powershell config ~/Documents/WindowsPowerShell/profile.ps1 erfolgreich verlinkt."
|
||||||
|
}
|
||||||
|
Catch {
|
||||||
|
Write-Host "Probleme beim verlinken der Powershell config ~/Documents/WindowsPowerShell/profile.ps1" -ForegroundColor Red
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((Test-Path "~/Documents/WindowsPowerShell/Microsoft.PowerShell_profile.ps1" -PathType Leaf) -eq $True) {
|
||||||
|
if (CheckForLink("~/Documents/WindowsPowerShell/Microsoft.PowerShell_profile.ps1") -eq $True) {
|
||||||
|
Remove-Item -Force "~/Documents/WindowsPowerShell/Microsoft.PowerShell_profile.ps1"
|
||||||
|
Write-Host "Powershell ~/Documents/WindowsPowerShell/Microsoft.PowerShell_profile.ps1 config erfolgreich gelöscht." -ForegroundColor Green
|
||||||
|
Try {
|
||||||
|
New-Item -Path "~\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1" -ItemType SymbolicLink -Value "~/.winconfig/profile.ps1" | Out-Null
|
||||||
|
Write-Host "Powershell config ~/Documents/WindowsPowerShell/Microsoft.PowerShell_profile.ps1 erfolgreich verlinkt."
|
||||||
|
}
|
||||||
|
Catch {
|
||||||
|
Write-Host "Probleme beim verlinken der Powershell config ~/Documents/WindowsPowerShell/Microsoft.PowerShell_profile.ps1 ." -ForegroundColor Red
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# Powershell Modul für Updates
|
||||||
|
if (Get-Module -ListAvailable -Name PSWindowsUpdate) {
|
||||||
|
Write-Hoste "Windows Update Powershell Modul ist bereits installiert." -ForegroundColor Blue
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
|
Write-Host "Beginne mit der Insallation des Powershell Update Modul..." -ForegroundColor Blue
|
||||||
|
Try {
|
||||||
|
Install-Module -Name PSWindowsUpdate -Force
|
||||||
|
Write-Host "Powershell update Modul erfolgreich installiert..." -ForegroundColor Green
|
||||||
|
}
|
||||||
|
Catch {
|
||||||
|
Write-Host "Fehler beim installieren des Powershell update Modul." -ForegroundColor Red
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Read-Host "Bitte das Terminal / Powershell neu starten damit die Aenderungen uebernommen werden."
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
# Funktion um optionale Software zu insatllieren
|
||||||
|
function InstallSoftwareOpt {
|
||||||
|
foreach ($utility in $toInstallOpt) {
|
||||||
|
$ergebnis = winget list --id -e $utility
|
||||||
|
if ($ergebnis -eq "Es wurde kein installiertes Paket gefunden, das den Eingabekriterien entspricht.") {
|
||||||
|
$decision = $Host.UI.PromptForChoice("$utility", "Soll $utility installiert werden?" , $choices, 1)
|
||||||
|
if ($decision -eq 0) {
|
||||||
|
if (-Not $utility -eq 'Soundboard') {
|
||||||
|
Write-Host "Installiere $utility"
|
||||||
|
winget install -e --id $utility --silent
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Invoke-WebRequest -UseBasicParsing -Uri "https://www.leppsoft.com/soundpad/de/download/64/20230101-SZQED1RN/" `
|
||||||
|
-UserAgent "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:108.0) Gecko/20100101 Firefox/108.0" `
|
||||||
|
-Headers @{
|
||||||
|
"Accept" = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"
|
||||||
|
"Accept-Language" = "de,en-US;q=0.7,en;q=0.3"
|
||||||
|
"Accept-Encoding" = "gzip, deflate, br"
|
||||||
|
"Referer" = "https://www.leppsoft.com/soundpad/de/download/64/20230101-U1KGSLJC/Soundpad_x64-3.4.10.msi"
|
||||||
|
"Upgrade-Insecure-Requests" = "1"
|
||||||
|
"Sec-Fetch-Dest" = "document"
|
||||||
|
"Sec-Fetch-Mode" = "navigate"
|
||||||
|
"Sec-Fetch-Site" = "same-origin"
|
||||||
|
"Sec-Fetch-User" = "?1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$decision = $Host.UI.PromptForChoice('WSL', 'Soll WSL mit Debian 11 installiert werden?' , $choices, 1)
|
||||||
|
if ($decision -eq 0) {
|
||||||
|
Write-Host "Installiere WSL"
|
||||||
|
wsl --install
|
||||||
|
Write-Host "Installiere Debian"
|
||||||
|
wsl --install -d Debian
|
||||||
|
Read-Host "Computer muss neugestartet werden!"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
# Funktion um Windows zu debloaten
|
||||||
|
fucntion DebloatWindows {
|
||||||
|
Write-Host "Beginne das Windows zu debloaten und hardening auszuführen..." - -ForegroundColor Blue
|
||||||
|
debloatwindows
|
||||||
|
# Windows Explorer Einrichten
|
||||||
|
New-Item -Path "HKCU:\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" -Value "" -Force
|
||||||
|
Set-Itemproperty -path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'Hidden' -value '00000001'
|
||||||
|
Set-Itemproperty -path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'HideFileExt' -value '00000000'
|
||||||
|
Set-Itemproperty -path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CabinetState' -Name 'FullPath' -value '00000001'
|
||||||
|
Remove-ItemProperty -path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'TaskbarSi'
|
||||||
|
New-ItemProperty -path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'TaskbarSi' -value '0000001' -PropertyType DWORD
|
||||||
|
Write-Host "Starte Explorer neu um änderungen zu übernehmen"
|
||||||
|
Get-Process explorer | Stop-Process
|
||||||
|
}
|
||||||
|
|
||||||
|
# Funktion um zu prüfen ob die config Files schon vorhanden sind.
|
||||||
|
function CheckForLink ($Path) {
|
||||||
|
|
||||||
|
if (((Get-Item $Path).LinkType -eq "SymbolicLink")) {
|
||||||
|
Return $True
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Return $False
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -36,7 +36,7 @@ P069 +
|
|||||||
P009 -
|
P009 -
|
||||||
P010 -
|
P010 -
|
||||||
P015 -
|
P015 -
|
||||||
P068 -
|
P068 +
|
||||||
P016 -
|
P016 -
|
||||||
A001 +
|
A001 +
|
||||||
A002 +
|
A002 +
|
||||||
@@ -92,16 +92,6 @@ P058 -
|
|||||||
P059 -
|
P059 -
|
||||||
P060 -
|
P060 -
|
||||||
P061 -
|
P061 -
|
||||||
P071 -
|
|
||||||
P072 -
|
|
||||||
P073 -
|
|
||||||
P074 -
|
|
||||||
P075 -
|
|
||||||
P076 -
|
|
||||||
P077 -
|
|
||||||
P078 -
|
|
||||||
P079 -
|
|
||||||
P080 -
|
|
||||||
P024 -
|
P024 -
|
||||||
S001 +
|
S001 +
|
||||||
S002 +
|
S002 +
|
||||||
@@ -157,6 +147,22 @@ E005 -
|
|||||||
E013 -
|
E013 -
|
||||||
E014 -
|
E014 -
|
||||||
E006 -
|
E006 -
|
||||||
|
F002 +
|
||||||
|
F014 +
|
||||||
|
F015 +
|
||||||
|
F016 +
|
||||||
|
F001 +
|
||||||
|
F003 +
|
||||||
|
F004 +
|
||||||
|
F005 +
|
||||||
|
F007 +
|
||||||
|
F008 +
|
||||||
|
F009 +
|
||||||
|
F006 -
|
||||||
|
F010 -
|
||||||
|
F011 -
|
||||||
|
F012 -
|
||||||
|
F013 -
|
||||||
Y001 +
|
Y001 +
|
||||||
Y002 +
|
Y002 +
|
||||||
Y003 +
|
Y003 +
|
||||||
@@ -190,12 +196,12 @@ W010 -
|
|||||||
W009 -
|
W009 -
|
||||||
P017 -
|
P017 -
|
||||||
W006 -
|
W006 -
|
||||||
W008 +
|
W008 -
|
||||||
M006 +
|
M006 +
|
||||||
M011 +
|
M011 -
|
||||||
M010 -
|
M010 -
|
||||||
O003 -
|
O003 -
|
||||||
O001 -
|
O001 +
|
||||||
S012 -
|
S012 -
|
||||||
S013 -
|
S013 -
|
||||||
S014 -
|
S014 -
|
||||||
@@ -215,6 +221,6 @@ M016 +
|
|||||||
M017 -
|
M017 -
|
||||||
M018 -
|
M018 -
|
||||||
M019 -
|
M019 -
|
||||||
M020 -
|
M020 +
|
||||||
M021 +
|
M023 +
|
||||||
N001 -
|
N001 -
|
||||||
|
|||||||
344
install.ps1
344
install.ps1
@@ -1,320 +1,62 @@
|
|||||||
# Log starten
|
## Fragt nach Admin Rechten.
|
||||||
Start-Transcript -Path $HOME/.winconfig/run.log
|
|
||||||
|
|
||||||
# Einbinden der debloat.ps1
|
|
||||||
. .\debloat.ps1
|
|
||||||
|
|
||||||
## Fragt nach Admin Rechten.
|
|
||||||
if (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
|
if (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
|
||||||
$arguments = "& '" + $myinvocation.mycommand.definition + "'"
|
$arguments = "& '" + $myinvocation.mycommand.definition + "'"
|
||||||
Start-Process powershell -Verb runAs -ArgumentList $arguments
|
Start-Process powershell -Verb runAs -ArgumentList $arguments
|
||||||
Break
|
Break
|
||||||
}
|
}
|
||||||
|
|
||||||
# Funktion um zu prüfen ob die config Files schon vorhanden sind.
|
# Log starten
|
||||||
function CheckForLink ($Path) {
|
if ((Test-Path $HOME/.winconfig/logs) -eq $False){
|
||||||
|
New-Item $HOME/.winconfig/logs
|
||||||
|
}
|
||||||
|
Start-Transcript -Path $HOME/.winconfig/logs/run.log
|
||||||
|
|
||||||
if (((Get-Item $Path).LinkType -eq "SymbolicLink")) {
|
# Menü laden
|
||||||
Return $True
|
$inputXML = Get-Content "menu\menu.xaml"
|
||||||
}
|
[void][System.Reflection.Assembly]::LoadWithPartialName('presentationframework')
|
||||||
else {
|
[xml]$XAML = $inputXML
|
||||||
Return $False
|
$reader = (New-Object System.Xml.XmlNodeReader $xaml)
|
||||||
|
try { $Form = [Windows.Markup.XamlReader]::Load( $reader ) }
|
||||||
|
catch [System.Management.Automation.MethodInvocationException] {
|
||||||
|
Write-Warning "We ran into a problem with the XAML code. Check the syntax for this control..."
|
||||||
|
write-host $error[0].Exception.Message -ForegroundColor Red
|
||||||
|
If ($error[0].Exception.Message -like "*button*") {
|
||||||
|
write-warning "Ensure your <button in the `$inputXML does NOT have a Click=ButtonClick property. PS can't handle this`n`n`n`n"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch {
|
||||||
|
Write-Host "Unable to load Windows.Markup.XamlReader. Double-check syntax and ensure .net is installed."
|
||||||
|
}
|
||||||
|
|
||||||
|
$xaml.SelectNodes("//*[@Name]") | ForEach-Object { Set-Variable -Name "WPF$($_.Name)" -Value $Form.FindName($_.Name) }
|
||||||
|
|
||||||
|
# Einbinden der debloat.ps1
|
||||||
|
. .\debloat.ps1
|
||||||
|
|
||||||
# Konfig für die prompts
|
# Konfig für die prompts
|
||||||
$choices = New-Object Collections.ObjectModel.Collection[Management.Automation.Host.ChoiceDescription]
|
$choices = New-Object Collections.ObjectModel.Collection[Management.Automation.Host.ChoiceDescription]
|
||||||
$choices.Add((New-Object Management.Automation.Host.ChoiceDescription -ArgumentList '&Yes'))
|
$choices.Add((New-Object Management.Automation.Host.ChoiceDescription -ArgumentList '&Yes'))
|
||||||
$choices.Add((New-Object Management.Automation.Host.ChoiceDescription -ArgumentList '&No'))
|
$choices.Add((New-Object Management.Automation.Host.ChoiceDescription -ArgumentList '&No'))
|
||||||
|
|
||||||
## Konfig für die Software
|
|
||||||
$toRemove = @('Clipchamp.Clipchamp_yxz26nhyzhsrt', 'Microsoft.549981C3F5F10_8wekyb3d8bbwe', 'Microsoft.BingNews_8wekyb3d8bbwe', 'Microsoft.BingWeather_8wekyb3d8bbwe', 'Microsoft.GetHelp_8wekyb3d8bbwe',
|
|
||||||
'Microsoft.MicrosoftOfficeHub_8wekyb3d8bbwe', 'Microsoft.MicrosoftSolitaireCollection_8wekyb3d8bbwe', 'Micorosoft.MicrosoftStickyNotes_8wekyb3d8bbwe', 'Microsoft.People_8wekyb3d8bbwe',
|
|
||||||
'Microsoft.PowerAutomateDesktop_8wekyb3d8bbwe', 'Microsoft.Todos_8wekyb3d8bbwe', 'Microsoft.Windows.Photos_8wekyb3d8bbwe', 'Microsoft.WindowsMaps_8wekyb3d8bbwe',
|
|
||||||
'Microsoft.WindowsSoundRecorder_8wekyb3d8bbwe', 'Microsoft.WindowsAlarms_8wekyb3d8bbwe', 'Microsoft.YourPhone_8wekyb3d8bbwe', 'Microsoft.ZuneMusic_8wekyb3d8bbwe', 'Microsoft.ZuneVideo_8wekyb3d8bbwe',
|
|
||||||
'MicrosoftCorporationII.QuickAssist_8wekyb3d8bbwe', 'MicrosoftTeams_8wekyb3d8bbwe', 'MicrosoftTeams_8wekyb3d8bbwe', 'Microsoft.OneDrive', 'microsoft.windowscommunicationsapps_8wekyb3d8bbwe', 'CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc')
|
|
||||||
$toInstall = @('7zip.7zip', 'VideoLAN.VLC', 'SumatraPDF.SumatraPDF', 'Microsoft.VisualStudioCode', 'Bitwarden.Bitwarden', 'Mozilla.Firefox', 'IrfanSkiljan.IrfanView', 'Microsoft.PowerToys',
|
|
||||||
'Joplin.Joplin', 'WireGuard.WireGuard', 'Devolutions.RemoteDesktopManager', 'TeamViewer.TeamViewer', 'NickeManarin.ScreenToGif', 'JanDeDobbeleer.OhMyPosh', 'WiresharkFoundation.Wireshark', 'Famatech.AdvancedIPScanner',
|
|
||||||
'yt-dlp.yt-dlp'.'Audacity.Audacity','ffmpeg')
|
|
||||||
$toInstallOpt = @('Element.Element', 'Discord.Discord', 'Corsair.iCUE.4', 'Valve.Steam', 'GOG.Galaxy', 'TeXstudio.TeXstudio', 'MiKTeX.MiKTeX', 'Citrix.Workspace', 'Nvidia.GeForceExperience', 'Mojang.MinecraftLauncher',
|
|
||||||
'Elgato.StreamDeck', 'REALiX.HWiNFO', '9P4CLT2RJ1RS', 'Microsoft.SQLServerManagementStudio', 'Soundboard','VMware.WorkstationPro')
|
|
||||||
|
|
||||||
# Menü konfiguration
|
$WPFremove.Add_Click({
|
||||||
function Show-Menu {
|
# Crap deinstallieren
|
||||||
param (
|
Start-Process powershell.exe -Verb RunAs -ArgumentList "-command Start-Transcript ~/.winconfig/logs/winget-remove.log -Append; . ./config.ps1 ; RemoveSoftware | Out-Host" -WindowStyle Normal
|
||||||
[string]$Title = 'Software installation'
|
})
|
||||||
)
|
$WPFinstall.Add_Click({
|
||||||
Clear-Host
|
# Software installieren
|
||||||
Write-Host "================ $Title ================"
|
Start-Process powershell.exe -Verb RunAs -ArgumentList "-command Start-Transcript ~/.winconfig/logs/winget-install.log -Append; . ./config.ps1 ; InstallSoftware | Out-Host" -WindowStyle Normal
|
||||||
|
})
|
||||||
Write-Host "1: Remove unwanted"
|
$WPFinstallop.Add_Click({
|
||||||
Write-Host "2: Installiere Software"
|
# Optionale Software installieren
|
||||||
Write-Host "3: Installiere optionale Software"
|
Start-Process powershell.exe -Verb RunAs -ArgumentList "-command Start-Transcript ~/.winconfig/logs/winget-installopt.log -Append; . ./config.ps1 ; InstallSoftwareOpt | Out-Host" -WindowStyle Normal
|
||||||
Write-Host "4: Konfiguriere Windows"
|
})
|
||||||
Write-Host "Q: Beenden"
|
$WPFinstallop.Add_Click({
|
||||||
}
|
# Optionale Software installieren
|
||||||
do {
|
Start-Process powershell.exe -Verb RunAs -ArgumentList "-command Start-Transcript ~/.winconfig/logs/winget-debloat.log -Append; . ./config.ps1 ; DebloatWindows | Out-Host" -WindowStyle Normal
|
||||||
Show-Menu
|
})
|
||||||
$selection = Read-Host "Bitte Aufgabe auswählen"
|
|
||||||
switch ($selection) {
|
|
||||||
'1' {
|
|
||||||
# Crap deinstallieren
|
|
||||||
foreach ($utility in $toRemove) {
|
|
||||||
Try {
|
|
||||||
winget uninstall --id $utility
|
|
||||||
}
|
|
||||||
Catch {
|
|
||||||
Write-Host "Paket $utility konnte nicht deinstalliert werden. " -ForegroundColor red
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} '2' {
|
|
||||||
# Winget config installieren.
|
|
||||||
if (-not(Test-Path -Path '~\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json' -PathType leaf)) {
|
|
||||||
Write-Host "Lege Winget config an." -ForegroundColor Blue
|
|
||||||
try {
|
|
||||||
New-Item -Path "~\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json" -ItemType SymbolicLink -Value "~/.winconfig/configs/winget/settings.json" | Out-Null
|
|
||||||
Write-Host "Winget config erfolgreich verlinkt." -ForegroundColor Green
|
|
||||||
}
|
|
||||||
catch {
|
|
||||||
Write-Host "Probleme beim verlinken der Wignet configt" -ForegroundColor Red
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (CheckForLink(~\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json) -eq $False) {
|
|
||||||
Write-Host "Lege Winget config an." -ForegroundColor Blue
|
|
||||||
Remove-Item "~\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json"
|
|
||||||
try {
|
|
||||||
New-Item -Path "~\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json" -ItemType SymbolicLink -Value "~/.winconfig/configs/winget/settings.json" | Out-Null
|
|
||||||
Write-Host "Winget config erfolgreich verlinkt." -ForegroundColor Green
|
|
||||||
}
|
|
||||||
catch {
|
|
||||||
Write-Host "Probleme beim verlinken der Wignet configt" -ForegroundColor Red
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
# Software installieren.
|
|
||||||
foreach ($utility in $toInstall) {
|
|
||||||
$ergebnis = winget list --id -e $utility
|
|
||||||
if ($ergebnis -eq "Es wurde kein installiertes Paket gefunden, das den Eingabekriterien entspricht.") {
|
|
||||||
Try {
|
|
||||||
winget install -e --id $utility --silent
|
|
||||||
# Killt Programme die nach der Installation automatisch die UI starten. Ätzend!
|
|
||||||
if ($utility -eq 'Famatech.AdvancedIPScanner' ) {
|
|
||||||
Start-Sleep -Seconds 5
|
|
||||||
taskkill /IM advanced_ip_scanner.exe | Out-Null
|
|
||||||
|
|
||||||
}
|
$Form.ShowDialog() | out-null
|
||||||
elseif ($utility -eq 'Microsoft.PowerToys') {
|
Stop-Transcript
|
||||||
Start-Sleep -Seconds 5
|
|
||||||
taskkill /IM PowerToys.Settings.exe | Out-Null
|
|
||||||
}
|
|
||||||
elseif ($utility -eq 'ffmpeg'){
|
|
||||||
Write-Host "Installiere ffmpeg..." -ForegroundColor Blue
|
|
||||||
try {
|
|
||||||
curl.exe -L https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-essentials.7z -o ~/.winconfig/ffmpeg.7z
|
|
||||||
& "C:\Program Files\7-Zip\7z.exe" e ~/.winconfig/ffmpeg.7z -o"c:\Program Files\ffmpeg\"
|
|
||||||
Remove-Item ~/.winconfig/ffmpeg.7z
|
|
||||||
Write-Host "ffmpeg wurde erfolgreich installiert." -ForegroundColor Green
|
|
||||||
}
|
|
||||||
catch {
|
|
||||||
Write-Host "Es ist ein Fehler bei der Installation von ffmpeg auftreten. Bitte das Log durchsuchen." -ForegroundColor Red
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Catch {
|
|
||||||
Write-Host "Paket $utility konnte nicht installiert werden. " -ForegroundColor Red
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Write-Host "Programm $utility bereits installiert" -ForegroundColor Green
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# OOShutup10 herunterladen und config reinrendern.
|
|
||||||
Write-Host "Lade OOshutup10 herunter bitte warten..." -ForegroundColor Blue
|
|
||||||
Try {
|
|
||||||
curl.exe -s "https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe" -o OOSU10.exe
|
|
||||||
Write-Host "OOshutup10 erfolgreich heruntergeladen." -ForegroundColor Green
|
|
||||||
Write-Host "Versuche OOshutup10 config einzulesen..." -ForegroundColor Blue
|
|
||||||
./OOSU10.exe $HOME\.winconfig\configs\ooshutup10\ooshutup10.cfg /quiet
|
|
||||||
Write-Host "OOshutup10 config erfolgreich eingelesen." -ForegroundColor Green
|
|
||||||
}
|
|
||||||
Catch {
|
|
||||||
Write-Host "Problem beim herunterladen von OOshutup 10." -ForegroundColor Red
|
|
||||||
}
|
|
||||||
Write-Host "Richte Powershell und Terminal ein..." -ForegroundColor Blue
|
|
||||||
# Fonts installieren.
|
|
||||||
$LocalPath = "~/.winconfig/fonts/"
|
|
||||||
$FONTS = 0x14
|
|
||||||
$objShell = New-Object -ComObject Shell.Application
|
|
||||||
$objFolder = $objShell.Namespace($FONTS)
|
|
||||||
$Fontdir = Get-ChildItem $LocalPath
|
|
||||||
foreach ($File in $Fontdir) {
|
|
||||||
Write-Host "Versuche Schriftart $File zu installieren ..." -ForegroundColor Blue
|
|
||||||
Try {
|
|
||||||
if ((Test-Path "C:\Windows\Fonts\$File") -eq $False) {
|
|
||||||
$objFolder.CopyHere($File.fullname, 0x10)
|
|
||||||
}
|
|
||||||
Write-Host "Schriftart $File erfolgreich installiert." -ForegroundColor Green
|
|
||||||
}
|
|
||||||
Catch {
|
|
||||||
Write-Host "Probleme beim installieren der Schriftart $File" -ForegroundColor Red
|
|
||||||
}
|
|
||||||
}
|
|
||||||
# Windows Terminal Settings
|
|
||||||
Write-Host "Richte Windows Terminal config ein..." -ForegroundColor Blue
|
|
||||||
if (CheckForLink(~\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json) -eq $False) {
|
|
||||||
Try {
|
|
||||||
Remove-Item "~\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json" ; New-Item -Path "~\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json" -ItemType SymbolicLink -Value "~/.winconfig/configs/terminal/settings.json" | Out-Null
|
|
||||||
Write-Host "Windows Terminal config erfolgreich eingerichtet" -ForegroundColor Green
|
|
||||||
}
|
|
||||||
Catch {
|
|
||||||
Write-Host "Fehler beim einrichten der Windows Terminal config." -ForegroundColor Red
|
|
||||||
}
|
|
||||||
}
|
|
||||||
# Winfetch installieren & konfigurieren
|
|
||||||
|
|
||||||
if (Get-Module -ListAvailable -Name winfetch) {
|
|
||||||
Write-Host "Winfetch ist bereits installiert." -ForegroundColor Blue
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Write-Host "Installiere und konfiguriere Winfetch..." -ForegroundColor Blue
|
|
||||||
Try {
|
|
||||||
Install-Script winfetch
|
|
||||||
Write-Host "Winfetch erfolgreich installiert." -ForegroundColor Green
|
|
||||||
if ((Test-Path ~/.config/winfetch -PathType Leaf) -eq $True) {
|
|
||||||
Write-Host "Lösche default config..." -ForegroundColor Blue
|
|
||||||
Remove-Item -Recurse -Force ~/.config/winfetch
|
|
||||||
}
|
|
||||||
Write-Host "Lege Winfetch config Ordner an..." -ForegroundColor Blue
|
|
||||||
mkdir ~/.config/winfetch | Out-Null
|
|
||||||
Write-Host "Winfetch config Ordner erfolgreich angelegt!" -ForegroundColor Green
|
|
||||||
Try {
|
|
||||||
New-Item -Path "~/.config/winfetch/config.ps1" -ItemType SymbolicLink -Value "~/.winconfig/configs/winfetch/config.ps1" | Out-Null
|
|
||||||
Write-Host "Winfetch config sauber gelinkt." -ForegroundColor Green
|
|
||||||
}
|
|
||||||
Catch {
|
|
||||||
Write-Host "Probleme beim verlinken der Winfetch config" -ForegroundColor Red
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Catch {
|
|
||||||
Write-Host "Probleme beim installieren von Winfetch" -ForegroundColor Red
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (CheckForLink(~/.config/winfetch/config.ps1) -eq $False) {
|
|
||||||
Remove-Item "~/.config/winfetch/config.ps1"
|
|
||||||
New-Item -Path "~/.config/winfetch/config.ps1" -ItemType SymbolicLink -Value "~/.winconfig/configs/winfetch/config.ps1" | Out-Null
|
|
||||||
}
|
|
||||||
# Powershell Profile Datei erzeugen
|
|
||||||
Write-Host "Löschen des default Powershell profiles..." -ForegroundColor Blue
|
|
||||||
if ((Test-Path "~/Documents/PowerShell/profile.ps1" -PathType Leaf) -eq $True) {
|
|
||||||
if (CheckForLink(~/Documents/PowerShell/profile.ps1) -eq $False) {
|
|
||||||
Remove-Item -Force "~/Documents/PowerShell/profile.ps1"
|
|
||||||
Write-Host "Powershell config ~/Documents/PowerShell/profile.ps1 erfolgreich gelöscht." -ForegroundColor Green
|
|
||||||
Try {
|
|
||||||
New-Item -Path "~/Documents/PowerShell/profile.ps1" -ItemType SymbolicLink -Value "~/.winconfig/profile.ps1" | Out-Null
|
|
||||||
Write-Host "Powershell config ~/Documents/PowerShell/profile.ps1 erfolgreich verlinkt."
|
|
||||||
}
|
|
||||||
Catch {
|
|
||||||
Write-Host "Probleme beim verlinken der Powershell config ~/Documents/PowerShell/profile.ps1 " -ForegroundColor Red
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ((Test-Path "~/Documents/WindowsPowerShell/profile.ps1" -PathType Leaf) -eq $True) {
|
|
||||||
if (CheckForLink(~/Documents/WindowsPowerShell/profile.ps1) -eq $False) {
|
|
||||||
Remove-Item -Force "~/Documents/WindowsPowerShell/profile.ps1"
|
|
||||||
Write-Host "Powershell config ~/Documents/WindowsPowerShell/profile.ps1 erfolgreich gelöscht." -ForegroundColor Green
|
|
||||||
Try {
|
|
||||||
New-Item -Path "~/Documents/WindowsPowerShell/profile.ps1" -ItemType SymbolicLink -Value "~/.winconfig/profile.ps1" | Out-Null
|
|
||||||
Write-Host "Powershell config ~/Documents/WindowsPowerShell/profile.ps1 erfolgreich verlinkt."
|
|
||||||
}
|
|
||||||
Catch {
|
|
||||||
Write-Host "Probleme beim verlinken der Powershell config ~/Documents/WindowsPowerShell/profile.ps1" -ForegroundColor Red
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ((Test-Path "~/Documents/WindowsPowerShell/Microsoft.PowerShell_profile.ps1" -PathType Leaf) -eq $True) {
|
|
||||||
if (CheckForLink("~/Documents/WindowsPowerShell/Microsoft.PowerShell_profile.ps1") -eq $True) {
|
|
||||||
Remove-Item -Force "~/Documents/WindowsPowerShell/Microsoft.PowerShell_profile.ps1"
|
|
||||||
Write-Host "Powershell ~/Documents/WindowsPowerShell/Microsoft.PowerShell_profile.ps1 config erfolgreich gelöscht." -ForegroundColor Green
|
|
||||||
Try {
|
|
||||||
New-Item -Path "~\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1" -ItemType SymbolicLink -Value "~/.winconfig/profile.ps1" | Out-Null
|
|
||||||
Write-Host "Powershell config ~/Documents/WindowsPowerShell/Microsoft.PowerShell_profile.ps1 erfolgreich verlinkt."
|
|
||||||
}
|
|
||||||
Catch {
|
|
||||||
Write-Host "Probleme beim verlinken der Powershell config ~/Documents/WindowsPowerShell/Microsoft.PowerShell_profile.ps1 ." -ForegroundColor Red
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
# Powershell Modul für Updates
|
|
||||||
if (Get-Module -ListAvailable -Name PSWindowsUpdate) {
|
|
||||||
Write-Hoste "Windows Update Powershell Modul ist bereits installiert." -ForegroundColor Blue
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
|
|
||||||
Write-Host "Beginne mit der Insallation des Powershell Update Modul..." -ForegroundColor Blue
|
|
||||||
Try {
|
|
||||||
Install-Module -Name PSWindowsUpdate -Force
|
|
||||||
Write-Host "Powershell update Modul erfolgreich installiert..." -ForegroundColor Green
|
|
||||||
}
|
|
||||||
Catch {
|
|
||||||
Write-Host "Fehler beim installieren des Powershell update Modul." -ForegroundColor Red
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Read-Host "Bitte das Terminal / Powershell neu starten damit die Aenderungen uebernommen werden."
|
|
||||||
|
|
||||||
} '3' {
|
|
||||||
foreach ($utility in $toInstallOpt) {
|
|
||||||
$ergebnis = winget list --id -e $utility
|
|
||||||
if ($ergebnis -eq "Es wurde kein installiertes Paket gefunden, das den Eingabekriterien entspricht.") {
|
|
||||||
$decision = $Host.UI.PromptForChoice("$utility", "Soll $utility installiert werden?" , $choices, 1)
|
|
||||||
if ($decision -eq 0) {
|
|
||||||
if (-Not $utility -eq 'Soundboard') {
|
|
||||||
Write-Host "Installiere $utility"
|
|
||||||
winget install -e --id $utility --silent
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Invoke-WebRequest -UseBasicParsing -Uri "https://www.leppsoft.com/soundpad/de/download/64/20230101-SZQED1RN/" `
|
|
||||||
-UserAgent "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:108.0) Gecko/20100101 Firefox/108.0" `
|
|
||||||
-Headers @{
|
|
||||||
"Accept" = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"
|
|
||||||
"Accept-Language" = "de,en-US;q=0.7,en;q=0.3"
|
|
||||||
"Accept-Encoding" = "gzip, deflate, br"
|
|
||||||
"Referer" = "https://www.leppsoft.com/soundpad/de/download/64/20230101-U1KGSLJC/Soundpad_x64-3.4.10.msi"
|
|
||||||
"Upgrade-Insecure-Requests" = "1"
|
|
||||||
"Sec-Fetch-Dest" = "document"
|
|
||||||
"Sec-Fetch-Mode" = "navigate"
|
|
||||||
"Sec-Fetch-Site" = "same-origin"
|
|
||||||
"Sec-Fetch-User" = "?1"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$decision = $Host.UI.PromptForChoice('WSL', 'Soll WSL mit Debian 11 installiert werden?' , $choices, 1)
|
|
||||||
if ($decision -eq 0) {
|
|
||||||
Write-Host "Installiere WSL"
|
|
||||||
wsl --install
|
|
||||||
Write-Host "Installiere Debian"
|
|
||||||
wsl --install -d Debian
|
|
||||||
Read-Host "Computer muss neugestartet werden!"
|
|
||||||
}
|
|
||||||
} '4' {
|
|
||||||
Write-Host "Beginne das Windows zu debloaten und hardening auszuführen..." - -ForegroundColor Blue
|
|
||||||
# Windows Explorer Einrichten
|
|
||||||
New-Item -Path "HKCU:\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" -Value "" -Force
|
|
||||||
Set-Itemproperty -path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'Hidden' -value '00000001'
|
|
||||||
Set-Itemproperty -path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'HideFileExt' -value '00000000'
|
|
||||||
Set-Itemproperty -path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CabinetState' -Name 'FullPath' -value '00000001'
|
|
||||||
Remove-ItemProperty -path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'TaskbarSi'
|
|
||||||
New-ItemProperty -path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'TaskbarSi' -value '0000001' -PropertyType DWORD
|
|
||||||
Write-Host "Starte Explorer neu um änderungen zu übernehmen"
|
|
||||||
Get-Process explorer | Stop-Process
|
|
||||||
}
|
|
||||||
}
|
|
||||||
pause
|
|
||||||
}
|
|
||||||
until ($selection -eq 'q')
|
|
||||||
Stop-Transcript
|
|
||||||
@@ -1,9 +1,8 @@
|
|||||||
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Width="800" Height="400">
|
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Width="800" Height="400" Title="Winconfig UI">
|
||||||
<Grid Width="800" Height="600" Background="#6d6466">
|
<Grid Width="800" Height="600" Background="#6d6466">
|
||||||
<Button Content="Remove Bloatware" HorizontalAlignment="Left" VerticalAlignment="Top" Width="300" Margin="30,100,0,0" Name="remove" Height="50" Background="#e3dbdb"/>
|
<Button Content="Remove Bloatware" HorizontalAlignment="Left" VerticalAlignment="Top" Width="300" Margin="30,100,0,0" Name="remove" Height="50" Background="#e3dbdb"/>
|
||||||
<Button Content="Install Sofware" HorizontalAlignment="Right" VerticalAlignment="Top" Width="300" Margin="554.5,100,30,0" Name="install" Height="50" Background="#e3dbdb"/>
|
<Button Content="Install Sofware" HorizontalAlignment="Right" VerticalAlignment="Top" Width="300" Margin="0,100,30,0" Name="install" Height="50" Background="#e3dbdb"/>
|
||||||
<Button Content="Install Optional Software" HorizontalAlignment="Left" VerticalAlignment="Top" Width="300" Margin="30,201,0,0" Name="Installopt" Height="50" Background="#e3dbdb"/>
|
<Button Content="Install Optional Software" HorizontalAlignment="Left" VerticalAlignment="Top" Width="300" Margin="30,201,0,0" Name="Installopt" Height="50" Background="#e3dbdb"/>
|
||||||
<Button Content="Configure Windows" HorizontalAlignment="Right" VerticalAlignment="Top" Width="300" Margin="500,200,30,0" Name="configure" Height="50" Background="#e3dbdb"/>
|
<Button Content="Configure Windows" HorizontalAlignment="Right" VerticalAlignment="Top" Width="300" Margin="0,200,30,0" Name="configure" Height="50" Background="#e3dbdb"/>
|
||||||
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Top" TextWrapping="Wrap" Text="Winconfig UI" Margin="0,17,0,0" Name="text" FontSize="32"/>
|
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Top" TextWrapping="Wrap" Text="Winconfig UI" Margin="0,17,0,0" Name="text" FontSize="32"/>
|
||||||
<Button Content="Fix Clipboard " HorizontalAlignment="Left" VerticalAlignment="Top" Width="100" Height="30" Margin="352.5,297,0,0" Name="Fix" Background="#e3dbdb"/>
|
|
||||||
</Grid></Window>
|
</Grid></Window>
|
||||||
Reference in New Issue
Block a user