From 9abe20138907c337db4e02e1f5f2bae1d89d780d Mon Sep 17 00:00:00 2001 From: duffyduck Date: Wed, 7 Jan 2026 16:08:28 +0100 Subject: [PATCH] WMI32_logicalDisk implementent for symbol signs --- Freigabe-Hinzufuegen.ps1 | 25 ++++--------------------- Freigabe-Launcher.cmd | 7 ------- 2 files changed, 4 insertions(+), 28 deletions(-) diff --git a/Freigabe-Hinzufuegen.ps1 b/Freigabe-Hinzufuegen.ps1 index 4389d05..5d26c25 100644 --- a/Freigabe-Hinzufuegen.ps1 +++ b/Freigabe-Hinzufuegen.ps1 @@ -26,54 +26,37 @@ function Get-Config { function Get-UNCPath { param([string]$LocalPath) - # DEBUG - $debugFile = "$env:TEMP\freigabe_unc_debug.txt" - "Input: $LocalPath" | Out-File $debugFile - # Wenn der Pfad bereits ein UNC-Pfad ist, direkt zurueckgeben if ($LocalPath -match '^\\\\') { - "Bereits UNC: $LocalPath" | Out-File $debugFile -Append return $LocalPath } $drive = Split-Path -Path $LocalPath -Qualifier $driveLetter = $drive.TrimEnd(':') $relativePath = $LocalPath.Substring($drive.Length) - "Drive: $drive, Letter: $driveLetter, RelPath: $relativePath" | Out-File $debugFile -Append # Methode 1: WMI - zuverlaessigste Methode fuer Netzlaufwerke $wmiDrive = Get-WmiObject -Class Win32_LogicalDisk -Filter "DeviceID='$drive'" -ErrorAction SilentlyContinue - "WMI LogicalDisk ProviderName: $($wmiDrive.ProviderName)" | Out-File $debugFile -Append if ($wmiDrive -and $wmiDrive.ProviderName) { - $result = Join-Path $wmiDrive.ProviderName $relativePath - "Result (WMI): $result" | Out-File $debugFile -Append - return $result + return Join-Path $wmiDrive.ProviderName $relativePath } # Methode 2: Get-PSDrive $psDrive = Get-PSDrive -Name $driveLetter -ErrorAction SilentlyContinue - "PSDrive DisplayRoot: $($psDrive.DisplayRoot)" | Out-File $debugFile -Append if ($psDrive -and $psDrive.DisplayRoot) { - $result = Join-Path $psDrive.DisplayRoot $relativePath - "Result (PSDrive): $result" | Out-File $debugFile -Append - return $result + return Join-Path $psDrive.DisplayRoot $relativePath } # Methode 3: Win32_MappedLogicalDisk (speziell fuer gemappte Laufwerke) $mappedDrive = Get-WmiObject -Class Win32_MappedLogicalDisk -Filter "DeviceID='$drive'" -ErrorAction SilentlyContinue - "WMI MappedLogicalDisk ProviderName: $($mappedDrive.ProviderName)" | Out-File $debugFile -Append if ($mappedDrive -and $mappedDrive.ProviderName) { - $result = Join-Path $mappedDrive.ProviderName $relativePath - "Result (MappedDisk): $result" | Out-File $debugFile -Append - return $result + return Join-Path $mappedDrive.ProviderName $relativePath } # Fallback: Lokales Laufwerk als Admin-Share $computerName = $env:COMPUTERNAME $adminShare = "\\$computerName\$driveLetter`$" - $result = Join-Path $adminShare $relativePath - "Result (Fallback): $result" | Out-File $debugFile -Append - return $result + return Join-Path $adminShare $relativePath } function Get-DomainUsers { diff --git a/Freigabe-Launcher.cmd b/Freigabe-Launcher.cmd index d9997b4..6dd590b 100644 --- a/Freigabe-Launcher.cmd +++ b/Freigabe-Launcher.cmd @@ -1,13 +1,6 @@ @echo off setlocal EnableDelayedExpansion -REM DEBUG: Zeige was ankommt -echo Argument 1: %~1 > "%TEMP%\freigabe_debug.txt" -echo Argument 2: %~2 >> "%TEMP%\freigabe_debug.txt" -echo Argument 3: %~3 >> "%TEMP%\freigabe_debug.txt" -echo Argument 4: %~4 >> "%TEMP%\freigabe_debug.txt" -echo Alle Args: %* >> "%TEMP%\freigabe_debug.txt" - set "action=%~1" set "filepath=%~2" set "scriptdir=%~dp0"