readme angepasst das dateien nicht gelöscht werden dürfen und umlaute angepasst

This commit is contained in:
duffyduck 2025-12-22 09:59:04 +01:00
parent 3e53665bc7
commit 48d2323a47
4 changed files with 24 additions and 23 deletions

View File

@ -75,14 +75,14 @@ function Show-UserRemoveDialog {
param([array]$Users) param([array]$Users)
$form = New-Object System.Windows.Forms.Form $form = New-Object System.Windows.Forms.Form
$form.Text = "Freigabe entfernen - Benutzer auswählen" $form.Text = "Freigabe entfernen - Benutzer ausw$([char]0x00E4)hlen"
$form.Size = New-Object System.Drawing.Size(400, 400) $form.Size = New-Object System.Drawing.Size(400, 400)
$form.StartPosition = "CenterScreen" $form.StartPosition = "CenterScreen"
$form.FormBorderStyle = "FixedDialog" $form.FormBorderStyle = "FixedDialog"
$form.MaximizeBox = $false $form.MaximizeBox = $false
$label = New-Object System.Windows.Forms.Label $label = New-Object System.Windows.Forms.Label
$label.Text = "Freigabe entfernen für folgende Benutzer:" $label.Text = "Freigabe entfernen f$([char]0x00FC)r folgende Benutzer:"
$label.Location = New-Object System.Drawing.Point(10, 15) $label.Location = New-Object System.Drawing.Point(10, 15)
$label.Size = New-Object System.Drawing.Size(360, 20) $label.Size = New-Object System.Drawing.Size(360, 20)
$form.Controls.Add($label) $form.Controls.Add($label)
@ -99,7 +99,7 @@ function Show-UserRemoveDialog {
} }
$selectAllBtn = New-Object System.Windows.Forms.Button $selectAllBtn = New-Object System.Windows.Forms.Button
$selectAllBtn.Text = "Alle auswählen" $selectAllBtn.Text = "Alle ausw$([char]0x00E4)hlen"
$selectAllBtn.Location = New-Object System.Drawing.Point(10, 310) $selectAllBtn.Location = New-Object System.Drawing.Point(10, 310)
$selectAllBtn.Size = New-Object System.Drawing.Size(100, 25) $selectAllBtn.Size = New-Object System.Drawing.Size(100, 25)
$selectAllBtn.Add_Click({ $selectAllBtn.Add_Click({
@ -154,7 +154,7 @@ function Remove-FreigabePermission {
Set-Acl -Path $TargetPath -AclObject $acl Set-Acl -Path $TargetPath -AclObject $acl
return $true return $true
} catch { } catch {
Write-Warning "Fehler beim Entfernen der Berechtigung für $QualifiedUserName : $_" Write-Warning "Fehler beim Entfernen der Berechtigung f$([char]0x00FC)r $QualifiedUserName : $_"
return $false return $false
} }
} }
@ -166,7 +166,7 @@ function Remove-UserShortcut {
[string]$BasePath [string]$BasePath
) )
# SamAccountName aus QualifiedName extrahieren (für Ordnerpfad) # SamAccountName aus QualifiedName extrahieren (fuer Ordnerpfad)
$samAccountName = if ($QualifiedUserName -match '\\') { $samAccountName = if ($QualifiedUserName -match '\\') {
$QualifiedUserName.Split('\')[1] $QualifiedUserName.Split('\')[1]
} else { } else {
@ -199,7 +199,7 @@ function Remove-UserShortcut {
Remove-Item -Path $shortcut.FullName -Force Remove-Item -Path $shortcut.FullName -Force
} }
} catch { } catch {
Write-Warning "Fehler beim Prüfen der Verknüpfung: $($shortcut.Name)" Write-Warning "Fehler beim Pr$([char]0x00FC)fen der Verkn$([char]0x00FC)pfung: $($shortcut.Name)"
} }
} }
@ -223,7 +223,7 @@ try {
if (-not $freigabeInfo -or $freigabeInfo.Users.Count -eq 0) { if (-not $freigabeInfo -or $freigabeInfo.Users.Count -eq 0) {
[System.Windows.Forms.MessageBox]::Show( [System.Windows.Forms.MessageBox]::Show(
"Für dieses Element wurden keine Freigaben über das Kontextmenü erstellt.", "F$([char]0x00FC)r dieses Element wurden keine Freigaben $([char]0x00FC)ber das Kontextmen$([char]0x00FC) erstellt.",
"Keine Freigaben", "Keine Freigaben",
[System.Windows.Forms.MessageBoxButtons]::OK, [System.Windows.Forms.MessageBoxButtons]::OK,
[System.Windows.Forms.MessageBoxIcon]::Information [System.Windows.Forms.MessageBoxIcon]::Information
@ -253,7 +253,7 @@ try {
$remainingUsers = @($freigabeInfo.Users | Where-Object { $_ -notin $removedUsers }) $remainingUsers = @($freigabeInfo.Users | Where-Object { $_ -notin $removedUsers })
Save-FreigabeInfo -TargetPath $Path -Users $remainingUsers Save-FreigabeInfo -TargetPath $Path -Users $remainingUsers
$message = "Freigaben entfernt für:`n" + ($removedUsers -join "`n") $message = "Freigaben entfernt f$([char]0x00FC)r:`n" + ($removedUsers -join "`n")
if ($errors.Count -gt 0) { if ($errors.Count -gt 0) {
$message += "`n`nFehler:`n" + ($errors -join "`n") $message += "`n`nFehler:`n" + ($errors -join "`n")

View File

@ -127,7 +127,7 @@ function Show-UserSelectionDialog {
param([array]$Users) param([array]$Users)
$form = New-Object System.Windows.Forms.Form $form = New-Object System.Windows.Forms.Form
$form.Text = "Benutzer auswählen - Freigabe" $form.Text = "Benutzer ausw$([char]0x00E4)hlen - Freigabe"
$form.Size = New-Object System.Drawing.Size(450, 500) $form.Size = New-Object System.Drawing.Size(450, 500)
$form.StartPosition = "CenterScreen" $form.StartPosition = "CenterScreen"
$form.FormBorderStyle = "FixedDialog" $form.FormBorderStyle = "FixedDialog"
@ -319,7 +319,7 @@ try {
Save-FreigabeInfo -TargetPath $Path -UserName $selectedUser.QualifiedName Save-FreigabeInfo -TargetPath $Path -UserName $selectedUser.QualifiedName
[System.Windows.Forms.MessageBox]::Show( [System.Windows.Forms.MessageBox]::Show(
"Freigabe erfolgreich erstellt!`n`nBenutzer: $($selectedUser.DisplayName)`nVerknüpfung: $shortcutPath`nUNC-Pfad: $uncPath", "Freigabe erfolgreich erstellt!`n`nBenutzer: $($selectedUser.DisplayName)`nVerkn$([char]0x00FC)pfung: $shortcutPath`nUNC-Pfad: $uncPath",
"Freigabe erfolgreich", "Freigabe erfolgreich",
[System.Windows.Forms.MessageBoxButtons]::OK, [System.Windows.Forms.MessageBoxButtons]::OK,
[System.Windows.Forms.MessageBoxIcon]::Information [System.Windows.Forms.MessageBoxIcon]::Information

View File

@ -39,13 +39,13 @@ function Get-ScriptDirectory {
function Show-Menu { function Show-Menu {
Clear-Host Clear-Host
Write-Host "========================================" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan
Write-Host " Freigabe-Kontextmenü Installation" -ForegroundColor Cyan Write-Host " Freigabe-Kontextmen$([char]0x00FC) Installation" -ForegroundColor Cyan
Write-Host "========================================" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan
Write-Host "" Write-Host ""
Write-Host "[1] Installieren für aktuellen Benutzer" Write-Host "[1] Installieren f$([char]0x00FC)r aktuellen Benutzer"
Write-Host "[2] Installieren für alle Benutzer (Admin erforderlich)" Write-Host "[2] Installieren f$([char]0x00FC)r alle Benutzer (Admin erforderlich)"
Write-Host "[3] Deinstallieren für aktuellen Benutzer" Write-Host "[3] Deinstallieren f$([char]0x00FC)r aktuellen Benutzer"
Write-Host "[4] Deinstallieren für alle Benutzer (Admin erforderlich)" Write-Host "[4] Deinstallieren f$([char]0x00FC)r alle Benutzer (Admin erforderlich)"
Write-Host "[Q] Beenden" Write-Host "[Q] Beenden"
Write-Host "" Write-Host ""
} }
@ -54,14 +54,14 @@ function Get-LinkBasePath {
Add-Type -AssemblyName System.Windows.Forms Add-Type -AssemblyName System.Windows.Forms
$form = New-Object System.Windows.Forms.Form $form = New-Object System.Windows.Forms.Form
$form.Text = "Stammverzeichnis für Verknüpfungen" $form.Text = "Stammverzeichnis f$([char]0x00FC)r Verkn$([char]0x00FC)pfungen"
$form.Size = New-Object System.Drawing.Size(500, 180) $form.Size = New-Object System.Drawing.Size(500, 180)
$form.StartPosition = "CenterScreen" $form.StartPosition = "CenterScreen"
$form.FormBorderStyle = "FixedDialog" $form.FormBorderStyle = "FixedDialog"
$form.MaximizeBox = $false $form.MaximizeBox = $false
$label = New-Object System.Windows.Forms.Label $label = New-Object System.Windows.Forms.Label
$label.Text = "Stammverzeichnis für Benutzer-Verknüpfungsordner:" $label.Text = "Stammverzeichnis f$([char]0x00FC)r Benutzer-Verkn$([char]0x00FC)pfungsordner:"
$label.Location = New-Object System.Drawing.Point(10, 20) $label.Location = New-Object System.Drawing.Point(10, 20)
$label.Size = New-Object System.Drawing.Size(460, 20) $label.Size = New-Object System.Drawing.Size(460, 20)
$form.Controls.Add($label) $form.Controls.Add($label)
@ -78,7 +78,7 @@ function Get-LinkBasePath {
$browseBtn.Size = New-Object System.Drawing.Size(75, 25) $browseBtn.Size = New-Object System.Drawing.Size(75, 25)
$browseBtn.Add_Click({ $browseBtn.Add_Click({
$folderBrowser = New-Object System.Windows.Forms.FolderBrowserDialog $folderBrowser = New-Object System.Windows.Forms.FolderBrowserDialog
$folderBrowser.Description = "Stammverzeichnis auswählen" $folderBrowser.Description = "Stammverzeichnis ausw$([char]0x00E4)hlen"
if ($folderBrowser.ShowDialog() -eq "OK") { if ($folderBrowser.ShowDialog() -eq "OK") {
$textBox.Text = $folderBrowser.SelectedPath $textBox.Text = $folderBrowser.SelectedPath
} }
@ -121,7 +121,7 @@ function Install-ContextMenu {
if ($ForAllUsers) { if ($ForAllUsers) {
if (-not (Test-Administrator)) { if (-not (Test-Administrator)) {
throw "Admin-Rechte erforderlich für Installation für alle Benutzer!" throw "Admin-Rechte erforderlich f$([char]0x00FC)r Installation f$([char]0x00FC)r alle Benutzer!"
} }
$regBase = "HKLM:\SOFTWARE\Classes" $regBase = "HKLM:\SOFTWARE\Classes"
$configPath = "$env:ProgramData\FreigabeKontextmenue" $configPath = "$env:ProgramData\FreigabeKontextmenue"
@ -202,7 +202,7 @@ function Uninstall-ContextMenu {
if ($ForAllUsers) { if ($ForAllUsers) {
if (-not (Test-Administrator)) { if (-not (Test-Administrator)) {
throw "Admin-Rechte erforderlich für Deinstallation für alle Benutzer!" throw "Admin-Rechte erforderlich f$([char]0x00FC)r Deinstallation f$([char]0x00FC)r alle Benutzer!"
} }
$regBase = "HKLM:\SOFTWARE\Classes" $regBase = "HKLM:\SOFTWARE\Classes"
$configPath = "$env:ProgramData\FreigabeKontextmenue" $configPath = "$env:ProgramData\FreigabeKontextmenue"
@ -234,7 +234,7 @@ function Uninstall-ContextMenu {
} }
Write-Host "Deinstallation erfolgreich!" -ForegroundColor Green Write-Host "Deinstallation erfolgreich!" -ForegroundColor Green
Write-Host "Hinweis: Bestehende Freigaben und Verknüpfungen wurden NICHT entfernt." -ForegroundColor Yellow Write-Host "Hinweis: Bestehende Freigaben und Verkn$([char]0x00FC)pfungen wurden NICHT entfernt." -ForegroundColor Yellow
} }
if ($Install -or $Uninstall) { if ($Install -or $Uninstall) {
@ -268,7 +268,7 @@ if ($Install -or $Uninstall) {
} }
"2" { "2" {
if (-not (Test-Administrator)) { if (-not (Test-Administrator)) {
Write-Host "Bitte als Administrator ausführen!" -ForegroundColor Red Write-Host "Bitte als Administrator ausf$([char]0x00FC)hren!" -ForegroundColor Red
} else { } else {
$basePath = Get-LinkBasePath $basePath = Get-LinkBasePath
if ($basePath) { if ($basePath) {
@ -283,7 +283,7 @@ if ($Install -or $Uninstall) {
} }
"4" { "4" {
if (-not (Test-Administrator)) { if (-not (Test-Administrator)) {
Write-Host "Bitte als Administrator ausführen!" -ForegroundColor Red Write-Host "Bitte als Administrator ausf$([char]0x00FC)hren!" -ForegroundColor Red
} else { } else {
Uninstall-ContextMenu -ForAllUsers $true Uninstall-ContextMenu -ForAllUsers $true
} }

View File

@ -68,3 +68,4 @@ powershell -ExecutionPolicy Bypass -File "C:\Pfad\zu\Install-FreigabeKontextmenu
- Netzlaufwerke werden automatisch als UNC-Pfade aufgelöst - Netzlaufwerke werden automatisch als UNC-Pfade aufgelöst
- Pro Benutzer wird ein Unterordner im Stammverzeichnis erstellt - Pro Benutzer wird ein Unterordner im Stammverzeichnis erstellt
- Nur über dieses Tool erstellte Freigaben werden beim Entfernen angezeigt - Nur über dieses Tool erstellte Freigaben werden beim Entfernen angezeigt
- **Wichtig:** Die Skripte werden nicht kopiert, sondern direkt aus dem Installationsordner verknüpft. Der Ordner darf nach der Installation nicht verschoben oder gelöscht werden!