3 Replies Latest reply on May 9, 2018 1:48 PM by _Mel_

    Leerzeichen werden durch Unterstriche ersetzt

    Rookie

      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