Jump to content

BOfH_666

Expert Member
  • Gesamte Inhalte

    2.041
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von BOfH_666

  1. Hmmm .... klingt ulkig. Ich glaub, ich schließ mich jetzt zahni und testperson an ... Haben die PC-Namen in der Text-Datei keine eindeutigen Namen? Wenn es PC-Namen in einer Domain sein sollten, sollten sie das aber haben. Vielleicht zeigst Du einfach mal ein bissl mehr von Deinem restlichen Code und/oder sagst, was Du am Ende erreichen möchtest .... vielelciht hast Du Dich in etwas verrannt und es gibt eine viel einfachere Lösung. Ganz einfach .... Du iterierst mit einer foreach-Schleife über Deine Variable $Computers .... !?
  2. ... und wenn Du das auf dem Server der die Freigabe zur Verfügung stellt lokal ausführst? (Nur um sicher zu gehen ... Du führst das jeweils mit erhöhten Rechten aus, richtig? )
  3. icacls "\\192.168.10.100\Users$" /remove *S-1-1-0 /t /c .... und so auch nich?
  4. Meistens wenn's ein New-... gibt, gibt's auch ein Remove-..., Set-... und ein Get-.... 1..5 | ForEach-Object{ New-Variable -Name "PC_number_$_" -Value $(Get-Random -Minimum 10 -Maximum 100 ) } 1..5 | ForEach-Object{ Get-Variable -Name PC_Number_$_ }
  5. Sehr oft wenn es eine Methode Get...() und Set...() gibt, gibt häufig auch Methoden wie Add....() und Remove...(). Eine, wie ich finde, ziemlich gute Übersicht findest Du hier. Powershell Praxis Datei- und Verzeichnisberechtigungen. Ich persönlich finde die Berechtigungspflege mit Powershell alles andere als intuitiv und elegant gelöst. Ich verwende, wenn nötig, das bewährte Tool icacls.
  6. Noch besser wäre in so einem Fall sogar Get-ADUser -Filter "GivenName -eq 'olga'" -Properties * ... immer so weit wie möglich "links" filtern. Das geht schneller und ist weniger "Stress" für's AD.
  7. Supi ... genau das meinte ich. Ich bin stolz auf Dich!
  8. Hmmm ... was ich eignetlich meinte ist, wenn robocopy ein paar Bytes kopiert, gibt es die Gesamtmenge in Bytes an. Sind es einige Kilobytes, hast Du in der Ausgabe die Agabe "xx k", sind es ein paar Megabytes, zeigt die Ausgabe "xx m" .... usw. Das ist das Standardverhalten, wenn man nix explizit angibt. Wenn Du jetzt aber nur die Zahl "wegfängst", weißt Du nicht wirklich, wieviel Daten kopiert wurden. Es könnten 2 Bytes sein oder 2 Terrabyte.
  9. Hmmmm ... bist Du Dir wirklich sicher? Wenn ich Deine Beispiel-Logdaten richtig interpretiere, die Du am Anfang gepostet hattest, hast Du dort 2TB von insgesamt 5.99TB kopiert. In der Ausgabe, die Du hier oben zeigst, steht 0GB. Bist Du sicher, dass das so zusammenpasst, wie Du Dir das vorstellst? Deshalb hätte mein Code die kopierten Bytes immer als Bytes entgegengenommen und selbst in MB umgerechnet. Damit könntest Du die automatische "Zusammenfassung" größerer Dateimengen von robocopy umgehen.
  10. 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]
  11. 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.
  12. ??? 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.
  13. 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!!!!
  14. 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 ...
  15. 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
  16. 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.
  17. 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?
  18. 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.
  19. Was willst Du denn eigentlich erreichen? Wäre vielleicht ein Dateiexport eine Lösung? Man kann übrigens kopieren ... einfach <Strg>+<c> drücken ...
  20. 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.
  21. ... 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.
  22. Laufwerkmapping -> Gruppenrichtlinien!!?? Die sind dafür gemacht!
  23. 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?
×
×
  • Neu erstellen...