diff --git a/README.md b/README.md
index 111aa83..0e9c065 100644
--- a/README.md
+++ b/README.md
@@ -1,11 +1,10 @@
# Winconfig
-
+
Aktuelle Windows config. Analog zu meiner [zshconfig](https://git.susa.pw/Tim/zshconfig).
Die Idee hinter diesem Script ist eine Windows 11 installation
-so zu konfingurieren wie ich es mag. Es werden Einstellungen
-am Explorer verändert, unnötige Software entfernt und nützliche Software installiert.
+so zu konfingurieren wie ich es mag. Windows wird konfiguriert, unnötige Software entfernt und nützliche Software installiert.
## Installation
@@ -16,79 +15,29 @@ Danach das repo clonen:
Jetzt nach belieben die ExecutionPolicy setzen. Zum Beispiel:
Set-ExecutionPolicy Unrestricted
-
## Usage
Das aufrufen der install.ps1 öffnet ein Menü das verschiedene Optionen bietet.
-### Remove unwanted
+### Remove Bloatware
-Deinstalliert den default crap. Pakete können in dem Array $toRemove eingetragen werden.
+Deinstalliert alles mögliche an default bloatware.
-### Installiere Software
+### Install Software
-Hier wid Software installiert die auch auf jeden Windows Computer benutzen möchte. Am Ende der Installation
-startet das Programm [Shut Up Windows 10](https://www.oo-software.com/de/shutup10) damit ich es direkt konfigurieren kann.
-Diese Software kann im Array $toInstall angepasst werden.
+Bei diesem Schritt wird einiges an Software und konfiguriert.
+Es werden auch Standards wie das Termin konfiguriert:
-### Installiere optionale Software
+
-Hier wird Software installiert, die nicht auf jeden Rechner den ich nutze installiert wird. Um flexibel zu bleiben fragt das Skript
+Zusätzlich werden diverse default Settings im Windows gesetzt.
+### Install Optional Software
+
+Hier wird Software installiert die nicht auf jeden Rechner den ich nutze installiert wird. Um flexibel zu bleiben fragt das Skript
bei jedem Tool einzeln nach ob eine Installation gewünsch ist oder nicht.
-Diese Software kann im Array $toInstallOpt angepasst werden.
-Es wird WSL mit Debian installiert. Falls diese Funktion benutzen werden soll muss
-zwingend ein Neustart durchgeführt werden.
-
-### Konfiguriere Windows
-
-Hier werden Windows Einstellungen modifiziert.
-- Ausgeblendete Dateien im Explorer anzeigen.
-- Dateinamen Erweiterungen im Explorer anzeigen.
-- Vollständigen Pfad im Explorer anzeigen.
-- Erweitertest Kontextmenü im Explorer.
-- Optionale Installation eines Powershell CMDlets um Windows Updates zu installieren.
-- Größe der Taskbar festlegen.
-
-Außerdem wird die Datei config.ps1 als Terminal Startup geladen. Diese lädt direkt nach dem Start functions.ps1 und
-aliases.ps1. In der functions.ps1 können Powershell Funktionen hinterlegt werden die dann bei jedem Start verfügbar sind.
-In der aliases.ps1 können aliase für das Terminal hinterlegt werden. Diese Datei wird nach der functions.ps1 geladen
-damit die Funktionen aus dieser geladen werden können. So wird die Update funktion als Alias "update" hinzugefügt.
-Damit kann das komplette System geupdatet werden.
-
-
-### Update System
-
-Dieser Programmpunkt updatet alle Winget Pakete, installiert alle Windows Updates und aktuallisert auch alle Powershell CMDlets.
-
-## Nützliche commands
-
-### Winget
-#### Logfiles
-%LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir
-Man kann --verbose-logs winget command hängen um detailiertere Logs zu erhalten.
-#### Zeige alle Software an
-winget list
-
-## To do
-Noch ist dieses Repo nicht vollendet. Es fehlen noch folgende Fähigkeiten:
-
-### Fehlende Software
-Es gibt eine Handvoll Software für die kein Winget Paket verfügbar ist. Die Gründe dafür sind unterschiedlich.
-- [Battl.net Client](https://www.blizzard.com/de-de/apps/battle.net/desktop)
-- [Filezilla Client](https://filezilla-project.org/index.php)
-- [MySQL Workbench](https://www.mysql.com/products/workbench/)
-- [MSI Afterburner](https://www.msi.com/Landing/afterburner/graphics-cards)
-
-### Diverses
-- Prüfen ob Installationsort einzelner Software angepasst werden soll.
-- Falls winget irgendwann prüfen kann ob Software bereits installiert ist muss diese Abfrage angepasst werden.
-- Falls winget irgendwann Ergebnisse von Abfragen sauber in Select-Object abfragbar macht muss die Namensbildung angepasst werden.
-- Terminal hübsch machen. Für weitere Infos siehe [diesen Guide](https://dev.to/ansonh/customize-beautify-your-windows-terminal-2022-edition-541l).
-- Prüfen inwieweit es möglich ist die Settings von Software automatisiert anzupassen.
-- Anlage von aliases für das Terminal (update, modify).
-- Beim Starten vom Terminal Winfetch starten.
-- Winget Config syncen.
+### Configure Windows
+Hardening von Windows. Modiefizierte Version [von diesen](https://github.com/simeononsecurity/Windows-Optimize-Harden-Debloat) großartigen repo.
diff --git a/config.ps1 b/config.ps1
index b00f159..dba663c 100644
--- a/config.ps1
+++ b/config.ps1
@@ -10,14 +10,13 @@ $toRemove = @('Clipchamp.Clipchamp_yxz26nhyzhsrt', 'Microsoft.549981C3F5F10_8wek
$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', 'OBSProject.OBSStudio')
+ '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')
+ 'Elgato.StreamDeck', 'REALiX.HWiNFO', '9P4CLT2RJ1RS', 'Microsoft.SQLServerManagementStudio', 'Soundboard', 'VMware.WorkstationPro', 'OBSProject.OBSStudio')
# Deinstalliert den Crap
-function RemoveSoftware {
- Read-Host "BLA"
+function RemoveSoftware {
$wingetResult = New-Object System.Collections.Generic.List[System.Object]
foreach ($utility in $toRemove) {
Try {
@@ -242,6 +241,15 @@ function InstallSoftware {
}
}
Read-Host "Bitte das Terminal / Powershell neu starten damit die Aenderungen uebernommen werden."
+ # 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
@@ -289,18 +297,9 @@ function InstallSoftwareOpt {
}
# Funktion um Windows zu debloaten
-fucntion DebloatWindows {
+function 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.
diff --git a/install.ps1 b/install.ps1
index 8772c79..133b429 100644
--- a/install.ps1
+++ b/install.ps1
@@ -4,12 +4,13 @@ if (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdenti
Start-Process powershell -Verb runAs -ArgumentList $arguments
Break
}
+Set-Location $HOME/.winconfig
# Log starten
if ((Test-Path $HOME/.winconfig/logs) -eq $False){
- New-Item $HOME/.winconfig/logs
+ New-Item $HOME/.winconfig/logs/
}
-Start-Transcript -Path $HOME/.winconfig/logs/run.log
+Start-Transcript -Path $HOME/.winconfig/logs/run.log | out-null
# Menü laden
$inputXML = Get-Content "menu\menu.xaml"
@@ -31,31 +32,30 @@ catch {
$xaml.SelectNodes("//*[@Name]") | ForEach-Object { Set-Variable -Name "WPF$($_.Name)" -Value $Form.FindName($_.Name) }
# Einbinden der debloat.ps1
-. .\debloat.ps1
+#. .\debloat.ps1
# Konfig für die prompts
-$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 '&No'))
+#$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 '&No'))
$WPFremove.Add_Click({
# Crap deinstallieren
- Start-Process powershell.exe -Verb RunAs -ArgumentList "-command Start-Transcript ~/.winconfig/logs/winget-remove.log -Append; . ./config.ps1 ; RemoveSoftware | Out-Host" -WindowStyle Normal
+ Start-Process powershell.exe -Verb RunAs -ArgumentList "-command Start-Transcript ~/.winconfig/logs/winget-remove.log -Append | out-null; . ./config.ps1 ; RemoveSoftware | Out-Host" -WindowStyle Normal
})
$WPFinstall.Add_Click({
# Software installieren
- Start-Process powershell.exe -Verb RunAs -ArgumentList "-command Start-Transcript ~/.winconfig/logs/winget-install.log -Append; . ./config.ps1 ; InstallSoftware | Out-Host" -WindowStyle Normal
+ Start-Process powershell.exe -Verb RunAs -ArgumentList "-command Start-Transcript ~/.winconfig/logs/winget-install.log -Append | out-null; . ./config.ps1 ; InstallSoftware | Out-Host" -WindowStyle Normal
})
- $WPFinstallop.Add_Click({
+$WPFinstallopt.Add_Click({
# Optionale Software installieren
- Start-Process powershell.exe -Verb RunAs -ArgumentList "-command Start-Transcript ~/.winconfig/logs/winget-installopt.log -Append; . ./config.ps1 ; InstallSoftwareOpt | Out-Host" -WindowStyle Normal
+ Start-Process powershell.exe -Verb RunAs -ArgumentList "-command Start-Transcript ~/.winconfig/logs/winget-installopt.log -Append | out-null; . ./config.ps1 ; InstallSoftwareOpt | Out-Host" -WindowStyle Normal
})
- $WPFinstallop.Add_Click({
- # Optionale Software installieren
- Start-Process powershell.exe -Verb RunAs -ArgumentList "-command Start-Transcript ~/.winconfig/logs/winget-debloat.log -Append; . ./config.ps1 ; DebloatWindows | Out-Host" -WindowStyle Normal
+$WPFconfigure.Add_Click({
+ # Windows debloating
+ Start-Process powershell.exe -Verb RunAs -ArgumentList "-command Start-Transcript ~/.winconfig/logs/winget-debloat.log -Append | out-null; . ./config.ps1 ; DebloatWindows | Out-Host" -WindowStyle Normal
})
-
$Form.ShowDialog() | out-null
Stop-Transcript
diff --git a/menu/menu.xaml b/menu/menu.xaml
index 06a4708..e1927b9 100644
--- a/menu/menu.xaml
+++ b/menu/menu.xaml
@@ -1,8 +1,8 @@
-
+
-
+
\ No newline at end of file
diff --git a/ui.png b/ui.png
new file mode 100644
index 0000000..b787378
Binary files /dev/null and b/ui.png differ