Jump to content

BOfH_666

Expert Member
  • Gesamte Inhalte

    2.042
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von BOfH_666

  1. Ist es wirklich so schwer, Code auch als Code zu formatieren? Eine kleine Erklärung, was Du geändert hast, um das gewünschte Ergebnis zu erhalten, wäre hilfreich gewesen. Irre ich mich oder hast Du überhaupt nix geändert?
  2. Dann lass uns doch bitte an Deiner Lösung teilhaben. Wenn wiedermal jemand danach sucht, wüsste er oder sie bestimmt gerne, was die Lösung war.
  3. Du störst nicht - dafür ist das Forum ja da. Wenn ich keinen Spass dran hätte, wär ich nicht mehr hier und würde nicht mehr antworten. ich werd ja nicht gezwungen. Wenn das Script nicht das erwartete Ergebnis liefert, muss man eben rauskriegen, warum nicht. Gib doch einfach einmal vor der Änderung und einmal nach der Änderung die Eigenschaft als text aus, um die es Dir geht. Also so: $fileName ="*.lnk" $folder = "P:\" [string]$from = "\B\Braun\" [string]$to = "\G\Gelb\" $list = Get-ChildItem -Path $folder -Filter $fileName -Recurse | Where-Object { $_.Attributes -ne "Directory"} | Select-Object -ExpandProperty FullName ForEach($lnk in $list) { $obj = New-Object -ComObject WScript.Shell $link = $obj.CreateShortcut($lnk) [string]$path = $link.TargetPath Write-Host "Pfad vorher: '$($path)'" [string]$path = [string]$path.Replace($from.tostring(),$to.ToString()) Write-Host "Pfad nachher: '$($path)'" $link.TargetPath = [string]$path $link.Save() }
  4. Na was ist denn nun der Fehler? Ohne Fehlermeldung oder wenigstens eine Erklärung, was genau nicht funktioniert, kann Dir keiner helfen.
  5. Ganz schön frech, einfach in einem anderen Forum zu fragen. Soziale Kompetenz ist scheinbar ein knappes Gut heutzutage. Bitte formatiere Deinen Code als Code hier im Forum. "... macht nicht, was es soll ... " ist keine valide Fehlerbeschreibung. Wir kennen Dein System nicht und können Deinen Bildschirm nicht shen. Gibt es eine Fehlermeldung? Wenn ja - hier posten, bitte! (idealerweise auch als code formatiert) Wenn es keine Fehlermeldung gibt, woran erkennst Du dass es nicht das tut, was es soll?
  6. OK, dann also ein paar generelle Tipps. Ich würde empfehlen nicht nach Batch oder cmd zu suchen sondern Powershell. Batch / cmd sind ziemlich obsolet und für viele Aufgaben nicht funktionsreich genug. Mit Powershell bist Du viel besser dran. Dann würde ich vermulich auch eher in english suchen. Man bekommt einfach mehr Ergebnisse - also sowas wie "change target of windows *.lnk file". Ich erhalte da schon mit dem erstn Treffer etwas Vielversprechendes. Alle Foren, die ich kenne, lassen Dich, ohne dass Du wenigstens einen kleinen Schnipsel eigenen Code lieferst, tendenziell eher wegtreten. Solltest Du das evtl. beruflich benötigen, würde ich Dir dringend empfehlen, die die Grundlagen von Powershell anzueignen. In der Windows-Welt kommt man sowieso nicht mehr drumherum und es schadet nie etwas Neues zu lernen ... auch wenn man es vielleicht seltener braucht.
  7. Hmmm .... das heißt also, dass Du noch nicht woanders danach gesucht hast, oder? Ich hatte den Zweck dieses Forum eher so verstanden, dass man bei konreten Problemen, die man mit einem Script hat, dass man selbst geschreiben hat oder gerade schreibt, fragen kann, wie man diese Probleme beseitigt oder umgeht. Ich habe so etwas bisher noch nie gebraucht und deshalb auch nichts Fertiges da und auch noch nie danach gesucht. Aber ich scripte ganz gern und wenn ich von Dir etwas sehen würde, könnte ich versuchen, es zu verbessern oder debuggen.
  8. Moin, sollen wir jetzt für Dich so eine Batch schreiben oder suchen oder was ist Deine konkrete Frage?
  9. Doch doch .... tut er. ... gerade eben getestet.
  10. Ich hoffe, Du bist nicht zu sehr enttäuscht. Aber ich bin ja noch jung und lernfähig ( und lernwillig )
  11. Mit dem Code hast Du doch schon nur die Nachnamen .... Du kannst mehrere Properties mit Komma getrennt angeben.
  12. Als Beispiel: (Get-Process -Name e* | ConvertTo-Csv -NoTypeInformation) -replace '"','' | Out-File -FilePath BlaKeks.csv -Encoding utf8
  13. Die Anführungszeichen sind im Standard für CSV quasi als Text-Erkenner festgelegt. Jedes Produkt, welches standard-konformes CSV verarbeiten kann, sollte damit umgehen können ... so wie die Powershell das macht. Dein Code kann so nicht funktionieren, weil Du die Anführungszeichen entfernen möchtest, obwohl die Datei schon geschrieben ist. Wenn es wirklich nicht anders geht, müsstest Du vielleicht die Daten mit Convertto-CSV ins CSV-Format umwandeln und vorm "wegschreiben" mit Out-File, die Gänsefüßchen entfernen. Ich würde mich aber eher mal mit dem "Lieferanten" eurer Datenbank unterhalten, warum kein standard-konformes CSV verarbeitet werden kann. Dieses "Gefrickel" macht Skripte nicht gerade robuster.
  14. Wenn Du gerade anfängst mit Powershell, lohnt es sich bestimmt, sich zuerst die Grundlagen anzueignen. Das geht kostenlos und gut strukturiert mit einem Video-Kurs in der Microsoft Virtual Academy: Geting Started with Powershell.
  15. Powershell arbeitet nicht so. Wenn Du Ergebnisse ausgeben willst, kannst Du die vorhandenen Format-cmdlets benutzen, oder Du müsstest Dich selbst um die grafische Aufbereitung kümmern. Was aber genaugenommen Unsinn ist. Eine übersichtliche Ausgabe von strukturierten Daten kannst Du mit Format-Table erhalten oder Du leitest die Ausgabe an ein Out-GridView weiter. Noch ein genereller Tip: Hier im Forum sieht es deutlich besser aus, wenn Du für die Formatierung von Code, die entsprechenden Optionen benutzt, die der Post-Editor vorsieht. Und wenn Du Code postest, den andere Leute lesen und vielleicht verstehen sollen, ist es höflicher und viel leichter verstädnlich, wenn Du keine Aliasse benutzt und den Code korrekt einrückst und umbrichst. Schau mal hier: Powershell Best Practice & Style Guide
  16. Großartig! Ich bin jetzt schon stolz auf Dich.
  17. Genau wegen solcher Fragen empfehle ich Dir dringend, die Grundlagen von Powershell zu erlernen. In welcher Konsole hast Du denn die Befehle bisher eingegeben? ... und gelegentlich kann man das ein oder andere auch einfach mal probieren und ein bissl mitarbeiten. Was denkst Du wie ich auf den Code gekommen bin? Der fließt mir auch nicht aus den Fingern. :-/ Und übernimm doch beim Zitieren nicht immer den kompletten Inhalt des Posts auf den Du Dich beziehst.
  18. Vielleicht nimmst Du Dir noch mal ein bissl Zeit, machst einen halben Schritt zurück und schaffst Dir erst mal die Grundlagen von Powershell drauf. Das erspart Dir eine Menge Frustration und verschwendete Zeit ... am Einfachsten geht das meiner Meinung nach mit einem kostenlosen Video-Kurs in der Microsoft Academy ... und da bekommst Du's vom Erfinder beigebracht ... https://mva.microsoft.com/en-us/training-courses/getting-started-with-powershell-3-0-jump-start-8276?l=r54IrOWy_2304984382 Hast Du meinen Code mal probiert?
  19. An dieser Stelle wäre ein wenig Powershell-Basis-Wissen hilfreich gewesen ... oder ein wenig Forschergeist ... dann kann man sowas auch selbst rauskriegen $BasisOU = 'OU=EU,OU=Local,DC=DTC,DC=intern' $CSVFile = 'C:\Scripte\Report\Users_without.csv' $OUList = Get-ADOrganizationalUnit -Filter * -SearchBase $BasisOU -SearchScope OneLevel | ForEach-Object -Process { Get-ADOrganizationalUnit -Filter "Name -eq 'Users'" -SearchBase $_.DistinguishedName | Select-Object -Property DistinguishedName } Foreach($OU in $OUList){ Get-Mailbox -ResultSize Unlimited -OrganizationalUnit $OU | Where-Object -FilterScript {$_.ArchiveDatabase -eq $null} | Select-Object -Property Name | Export-csv -Path $CSVFile -Delimiter ';' -Append -NoTypeInformation }
  20. Das ist mein letzter Kommentar zu diesem Thema. Sascha321, Du bekommst hier kostenlose Hilfe für Dein Problem von (meistens) Profis, die Dir immernoch versuchen zu helfen, obwohl Du die mehrfache Empfehlung, statt der veralteten Technologie CMD/Batch doch bitte die Powershell zu benutzen, ausschlägst/ignorierst. Solltest Du das Ganze beruflich machen und in Windows-Infrastrukturen unterwegs sein und nicht kurz vor der Rente stehen, wirst Du nicht mehr lange an Powershell vorbei kommen. Und es wird sich mit absoluter Sicherheit für Dich lohnen. Ich habe bereits Code gepostet, der mit klitzekleinen Änderungen alles enthält was Du brauchst. Vielleicht spielst Du einfach ein bissl damit. Wenn hier ein bissl guter Wille von Dir erkennbar wird, wird Dir normalerweise so lange geholfen, bis das Problem gelöst ist. Es bringt Dich nicht weiter, weder beruflich noch persönlich, hier wie ein Kleinkind zu bocken und die Leute, die Dir versuchen zu helfen, jetzt auch noch frech anzuranzen. Ich wünsche einen schönen Abend.
  21. Es ist definitiv möglich. Es gibt mit Sicherheit auch Kollegen hier, die das mit der veralteten und von Microsoft schon seit vielen vielen Jahren nicht weiterentwickelten Technologie cmd/batch können. Ich bleibe aber bei meiner Empfehlung das mit Powershell zu machen - einfacher und leichter zu pflegen, falls nötig.
  22. Wenn Acronis die cmd.exe starten kann, warum sollte es dann keine Powershell.exe starten können?
  23. Warum man sich 2018 immernoch mit der kruden Syntax von Batch beschäftigt, werde ich einfach nie verstehen. Wenn Du noch eine Weile in Windows-Infrastrukturen unterwegs sein möchtest, solltest Du Dir dringend Powershell mal ansehen. Es führt bei komplexeren Aufgaben quasi kein Weg dran vorbei. Mit Batch/CMD wirst Du ziemlich schnell an Grenzen stoßen.
  24. Wenn Du's doch mal mit Powershell probieren möchtest ... Get-CimInstance -ClassName CIM_LogicalDisk -OutVariable Disks switch ($Disks.VolumeName) { 'Backup' { 'Befehle für Laufwerksname "Backup"' break } 'Daten' { 'Befehle für Laufwerksname "Daten"' break } 'Windows_os' { 'Befehle für Laufwerksname "Windows_os"' break } default { 'Befehle die generell ausgeführt werden' break } }
  25. Die Frage ist etwas vage. Mit welcher Script-Technologie kennst Du Dich denn genug aus? bzw Wobei genau brauchst Du da Hilfe? Wenn ich frech sien wollte, würde ich sagen: ..... mit einem Script!! Wenn ich etwas empfehlen sollte, würde ich Powershell empfehlen.
×
×
  • Neu erstellen...