Das Problem ist die Save()
Methode im WScript.Shell
Verknüpfungsobjekt. Es scheint, dass für diesen API-Aufruf ANSI
Namen erforderlich sind, um die Datei zu erstellen [System.Text.Encoding]::Default
.
Hier ist jedoch eine Problemumgehung: Erstellen Sie eine Verknüpfung mit einem eindeutigen ANSI
Namen und benennen Sie sie dann wie folgt um:
$file = Get-ChildItem $MyInvocation.MyCommand.Path ### mcve $doel = "$env:USERPROFILE\Desktop\Test" ### mcve $locatie = $doel+"\Ω_archief "+$file.Name+".lnk" $locatieTemp = $locatie.Replace('\Ω_archief','\OMEGA_archief') $Shell = New-Object -ComObject ("WScript.Shell") $ShortCut = $Shell.CreateShortcut($locatieTemp) $ShortCut.TargetPath=$file.Fullname $Shortcut.Save() if (Test-Path $locatie) { Remove-Item $locatie } Move-Item -Path $locatieTemp $locatie ### or Rename-Item instead of Move-Item: # Rename-Item -Path $locatieTemp $(Split-Path $locatie -Leaf) ###
Beachten Sie, dass die ersten beiden Zeilen hinzugefügt wurden, um die Regeln für minimal, vollständig und überprüfbar (mcve) zu erfüllen.