Jump to content

BOfH_666

Expert Member
  • Gesamte Inhalte

    2.056
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von BOfH_666

  1. OK, Du benutzt also nicht mein Codebeispiel. Na das erklärt schon ein wenig. Wenn Du meinen Code benutzen wolltest, bräuchtest Du die Logdatei nicht vorher aufwändig zerteilen, sondern könntest sie komplet verfüttern. Dafür müsstest Du allerdings VORHER bei Deinem nächsten Copyjob mit robocopy den Aufruf von robocopy so anpassen, dass robocopy entsprechend große Jobs nicht mehr in GB oder TB angibt, sondern in Bytes. Das hatte ich ja oben shcon beschrieben. .... soviel dazu. Wenn Du jetzt mit Deinem Code weitermachen möchtest, hast Du verschiedene Möglichkeiten. Eine einfachere wäre z.B., die Zeile einfach an den Leerstellen aufzusplitten und dann einfach das 5. Element auszugeben. So hier: ($logdatei -split "\s+")[4]
  2. Du hast das Talent, mich zu verwirren. Hattest Du nicht vorhin geschrieben, dass es auch mit Deiner "Logdate" funktioniert? Was wird denn ausgegeben? Bitte immer daran denken, dass wir (ich) Deinen Bildschirm nicht sehen können (kann). Es wäre also hilfreich, zu sehen, welchen Code genau Du benutzt hast, welche Fehlermeldungen Du evtl. bekommen hast und vielleicht welche Ausgabe Du erhalten hast und wie sich diese zur erwarteten Ausgabe unterscheidet.
  3. ??? Wenn's schon funktioniert, brauchst Du doch nix mehr umbiegen!? Falls doch nicht: Wer hat denn den robocopy-Befehl so eingerichtet, dass er Daten von einem NAS auf's nächste schiebt? Dem sagst Du, er soll als weitere Option an die Kommandozeile ein "/BYTES" anhängen - das wars. Damit würde robocopy nicht mehr "KB" oder "MB" oder "GB" angeben, sondern immer nur Bytes. Und das rechnet der Code immer in "MB" um.
  4. OK ... das sieht wirklich nicht nach großem Erfolg aus. .... .... aber dafür hast Du ja uns ... ... ich hab grad mal gesucht, ich hatte mal eine Funktion gebaut, die robocopy benutzt, um die Anzahl der Dateien und Unterodner in einem gegebenen Verzeichnis und deren Gesamtgröße ermittelt. Daraus hier dann der SChnipsel um die Werte aus dem Log zu fräsen: $logdatei | Where-Object {"$_" -match "(Dateien|Files\s)\:\s+(\d+)\s"} | Out-Null $AnzahlDateien = "{0,9:0,0}" -f [INT]$Matches[2] $logdatei | Where-Object {"$_" -match "(Verzeich\.|Dirs\s)\:\s+(\d+)\s"} | Out-Null $AnzahlUnterOrdner = "{0,10:0,0}" -f [INT]$Matches[2] $Groesse = "{0,12:n2}" -f [math]::Round((($logdatei | Where-Object {$_ -match "Bytes"}).trim().split(" ")[1]) / 1MB , 2) #endregion #region Erzeugen des Ausgabeobjekts [PSCustomObject]@{ "Subfolders" = $AnzahlUnterOrdner "FileCount" = $AnzahlDateien "Size (MB)" = $Groesse } Probier ob's passt ... es sollte mit deutschem und englishem robocopy log klar kommen Edit: Achso ... was ich noch vergessen habe .... wichtig!!! damit das funktioniert, musst Du robocopy mit dem SChalter /bytes aufrufen!!!!
  5. Vielleicht zeigst Du erstmal, was Du bisher hast. Nicht dass wir Dir jetzt eine Powershell-Lösung anbieten, Du aber mit Erlang unterwegs bist ... oder so ...
  6. Hast Du mal danach gesucht? Schau Dir mal diesen Thread und besonders das Code-Beispiel von Richard Muller an ... der ist bei solchen AD-Theman normalerweise richtig gut. https://social.technet.microsoft.com/Forums/en-US/35edd1cb-6972-4fae-9dde-126c1eb9e747/how-to-work-with-a-csv-with-blank-fields?forum=winserverpowershell
  7. Sowas gibt's? ... neeee Wenn Du in einer normalen 64-bit-Powershell-Konsole den Befehl Install-Module aufrufst, dann wird ganz normal im Ordner "C:\Program Files" installiert.
  8. Ich hab's grad mal versucht nachzuvollziehen. In meiner "Test-Maschine" funktioniert das ohne Probleme. Nur wurde bei mir nicht in "C:\Program Files (x86)" installiert, sondern normal wie alle anderen 64-bit-Programme in "C:\Program Files". Bei Dir scheint das anders zu sein. Hast Du ne Ahnung warum?
  9. Ich hab selbst keine Erfahrung damit, aber hast Du mal in die Doku geschaut? Online-Doku: Azure Active Directory. Da steht auch, dass das Modul über die Powershell Gallery verfügbar ist. Es ist also auf einem aktuellen Windows nicht notwendig, erst etwas runterzuladen. Ein einfaches in einer mit erhöhten Rechten gestarteten Powershell-Konsole Install-Module -Name MSOnline .. sollte eigentlich genügen.
  10. Was willst Du denn eigentlich erreichen? Wäre vielleicht ein Dateiexport eine Lösung? Man kann übrigens kopieren ... einfach <Strg>+<c> drücken ...
  11. Wenn es um eine gute Übersicht geht, finde ich Out-GridView immer sehr hilfreich. Da kann man dann sogar in den Ergenissen noch filtern, wenn man mag.
  12. ... und bei korrekt gewährten Zugriffrechten ist das auch gar nicht nötig. Alles andere wäre ein unmögliches, unprofessionelles Gefrickel. Um HImmels Willen, fang nicht mit sowas an, bitte.
  13. Laufwerkmapping -> Gruppenrichtlinien!!?? Die sind dafür gemacht!
  14. 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?
  15. 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.
  16. 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() }
  17. Na was ist denn nun der Fehler? Ohne Fehlermeldung oder wenigstens eine Erklärung, was genau nicht funktioniert, kann Dir keiner helfen.
  18. 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?
  19. 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.
  20. 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.
  21. Moin, sollen wir jetzt für Dich so eine Batch schreiben oder suchen oder was ist Deine konkrete Frage?
  22. Doch doch .... tut er. ... gerade eben getestet.
  23. Ich hoffe, Du bist nicht zu sehr enttäuscht. Aber ich bin ja noch jung und lernfähig ( und lernwillig )
  24. Mit dem Code hast Du doch schon nur die Nachnamen .... Du kannst mehrere Properties mit Komma getrennt angeben.
×
×
  • Neu erstellen...