Jump to content

Tmax

Members
  • Content Count

    6
  • Joined

  • Last visited

Everything posted by Tmax

  1. Hallo Martin, der 1. Preis geht an dich. In der Tat geht es, wenn man auf dem Server das Framework hochzieht. Einen großen Dank auch an Jan, für die Script Korrektur!!! Ih beide habt uns sehr geholfen Grüße Oliver Ja, das machen wir schon..
  2. #modify variables accordingly $fileName ="*.mrk" $folder = "C:\Users\ojohn\Documents\Powershell" [string]$from = "C:\Users\ojohn\Documents\Ziel\" [string]$to = "C:\Users\ojohn\Documents\Ziel1\" $list = Get-ChildItem -Path $folder -Filter $fileName -Recurse | Where-Object { $_.Attributes -ne "Directory"} | select -ExpandProperty FullName ForEach($lnk in $list) { #create the shortcut object $WshShell = New-Object -ComObject WScript.Shell #program the shortcut will open [string]$lnkTarget = (Get-Item $lnk).Target write $lnkTarget $lnkTarget = ($lnkTarget).Replace($from,$to) write $lnkTarget } Ausgeführt: C:\Users\ojohn\Documents\Ziel\1.mrk C:\Users\ojohn\Documents\Ziel1\1.mrk C:\Users\ojohn\Documents\Ziel\2.mrk C:\Users\ojohn\Documents\Ziel1\2.mrk C:\Users\ojohn\Documents\Ziel\3.mrk C:\Users\ojohn\Documents\Ziel1\3.mrk C:\Users\ojohn\Documents\Ziel\4.mrk C:\Users\ojohn\Documents\Ziel1\4.mrk C:\Users\ojohn\Documents\Ziel\5.mrk C:\Users\ojohn\Documents\Ziel1\5.mrk Wie gesagt, lokal funktioniert das Script, wenn wir das gleiche auf dem Server (Win2012R2) ausführen kommt kein Ergebnis.
  3. Ich gehe nicht davon aus, dass es daran liegt. Die Verknüpfungsdatei ist also .symlink Datei erstellt worden. Diese hat ihren ursprüngliche Dateierweiterung behalten, sprich *.mrk
  4. Wenn das gesammte Script ausgeführt wird, kommt auch was raus. Der Befehl einzeln klappt nicht.
  5. Hallo Jan, in der Tat ist die Zeile $obj = New-Object -ComObject WScript.Shell überflüssig. Das Script haben wir aus bereits bestehenden Codezeilen zusammen gebaut. Daher können wir leider nicht jede Zeile wirklich erklären *Dummy mode on* Das Komische ist eben, dass wir zum gewünschten Ergebnis kommen, wenn wir das auf ner W10 Kiste laufen lassen. Warum hier Objekte in Strings umgewandelt werden, kann ich dir leider aus oben genannten Grund nicht sagen. Vielleicht kommen wir mit deiner Hilfe aber trotzdem zu einer Lösung.
  6. Hallo liebe Leser, aktuell haben wir folgendes Problem, wir hatten per Script in einer Ordnerstruktur nach Dateien mit der Endung *.mrk suchen lassen. Diese wurden dann in einem Ordner verschoben und danach erstellte das Script an dem Ursprungsort der jeweiligen Datei eine Verknüpfung mit dem neuen Ziel der Datei. Leider ist und bei der Angabe des Laufwerksbuchstabens im Zielpfad ein Fehler unterlaufen. Nun befinden sich alle *.mrk Dateien zwar an ihrem neuen Ort, die erstellten Verknüpfungen gehen aber leider nicht. Jetzt versuchen wir mithilfe eines anderen Scriptes die Pfad in jeder gefundenen Verknüpfung auszulesen und mit einem neuen, geänderten Pfad wieder zu speichern. Das klappt wunderbar im Test auf einem Windows 10 Client. Wenn wir dieses Script aber auf einem Windows 2012 R2 Server ausführen, werden ab einem bestimmten Punkt keine Schritte mehr abgearbeitet und die Verknüpfungen erhalten als Ziel "Computer" und gehen somit nicht. Wir brauchen hier eure Unterstützung! Hier erst einmal das Script: #modify variables accordingly $fileName ="*.mrk" $folder = "C:\Users\Doe\Documents\Powershell" [string]$from = "C:\Users\Doe\Documents\Ziel\" [string]$to = "C:\Users\Doe\Documents\Ziel1\" $list = Get-ChildItem -Path $folder -Filter $fileName -Recurse | Where-Object { $_.Attributes -ne "Directory"} | select -ExpandProperty FullName $obj = New-Object -ComObject WScript.Shell ForEach($lnk in $list) { #create the shortcut object $WshShell = New-Object -ComObject WScript.Shell [string]$path = (Get-Item $lnk).DirectoryName write $path [string]$name = (Get-Item $lnk).Name.Replace(".mrk",".lnk") write $name $Shortcut = $WshShell.CreateShortcut("$($path)\$($name)") #program the shortcut will open [string]$lnkTarget = (Get-Item $lnk).Target write $lnkTarget $lnkTarget = ($lnkTarget).Replace($from,$to) write $lnkTarget $Shortcut.TargetPath = $lnkTarget #save the modifications $Shortcut.Save() write " " Remove-Item $lnk } Ab der Zeile 19 ([string]$lnkTarget = (Get-Item $lnk).Target) geht nichts mehr. Das System findet wohl .Target nicht. Wie gesagt, das Script funktioniert einwandfrei auf einem Windows 10 System. Weiß hier jemand, woran das liegen kann? Vielen, vielen Dank im Voraus Grüße Oliver
×
×
  • Create New...