Hallo zusammen,
bei folgendem Skript werden bei einer Ausführung (egal ob ExecuteEx oder CallScript) im DSM die Leerzeichen im Pfad durch Unterstriche ersetzt. Führt man das Script händisch aus, klappt es wunderbar.
#shell zur bearbeitung laden
$shell = new-object -com wscript.shell
#links abrufen
get-childitem -Path C:\Users\$OU-test\Desktop -filter *.lnk -recurse | foreach {
#link öffnen
$lnk = $shell.CreateShortcut($_.fullname)
Write-Verbose $lnk
#alten Pfad speichern
$oldpath= $lnk.TargetPath
Write-Verbose $oldpath
#alten pfad gegebenenfalls ersetzen
$newpath = $oldpath.Replace("U:\test1","U:\test2")
Write-Verbose $newpath
#neuen Pfad in geöffnetem Link einfügen
$lnk.TargetPath = $newpath
#Link speichern
$lnk.Save()
}
Das Script soll bei allen Links im Desktop Ordner des Users, bei denen im Zielpfad "U:\test1" vorkommt mit "U:\test2" ersetzen.
In den Ordnern gibt es allerdings Links mit dem Zielpfad "U:\test1\sehr lang".
Diese werden in "U:\test2\sehr_lang" umbenannt. Ist schonmal jemand auf dieses Problem gestoßen und kann mir sagen woran das liegt und vor allem ob man das irgendwie umgehen kann?
Vielen Dank für die Hilfe
Mischa