Jump to content

BOfH_666

Expert Member
  • Gesamte Inhalte

    2.042
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von BOfH_666

  1. Hallo DotCom86, CSV steht für Comma Seperated Value. Das Standard-Trennzeichen ist also das Komma. Wenn Du ein anderes Trennzeichen verwenden möchtest, was in Deutschland gern mal empfehlenswert sein kann, weil eine Deutsche Version von Excel dann besser damit umgehen kann, musst Du dem cmdlet Import-CSV oder Export-CSV das jeweils durch den parameter -Delimiter ';' mitteilen. Es ist emfehlenswert, gerade als Anfänger, sich die Hilfe der cmdlets die man benutzt oder benutzen möchte immer komplett und inklusive der Beispiele durchzulesen. Unabhängig davon, würde ich Dir die Lektüre "The Unofficial PowerShell Best Practices and Style Guide" empfehlen.
  2. .... und noch ein Hinweis: Wenn Du das cmdlet Export-Csv studiert hast und das ausprobierst und Excel beim Öffnen der CSV-Datei ein bissl zickig ist, weil es ein Deutsches Excel ist und nicht mit dem Komma als Delimiter klarkommt, nimmst Du einfach -Delimiter ';' .... dann klappt das auch noch.
  3. Hmmm ... wenn Geschwindigkeit wirklich ein relevantes Thema sein sollte - einfach beide Varianten testen mit Measure-Command!
  4. Es gab mal eine Netscape-Navigator-Installations-Routine, die auch nicht bei 100% beendet war ... die ging einfach weiter ... Aber ist doch geil ... sag Deinem Chef, dass Du mindestens 110% Leistung ablieferst.
  5. Ich bin jetzt shcon stolz auf Dich. ... wenn Du der englishen Sprache einigermaßen mächtig bist, solltest Du Dir den Video-Kurs, den Dir verlinkt hatte, mal ansehen ... der verschafft einem schon einen guten Überblick und Du bekommst die Powershell vom Erfinder erklärt.
  6. Bist Du sicher? Vielleicht machst Du erst nochmal einen kleinen Schritt zurück und nimmst Dir ein wenig Zeit, um die Grundlagen von Powershell zu erlernen. Das erspart Dir bestimmt eine Menge verschwendeter Zeit, Missverständnisse und Frustration. Es ist bestimmt jenseits der Möglichkeiten eines solchen Forums, Dich Powershell zu lehren. Foreach-Object verarbeitet die über die Pipeline ( | ) weitergereichten Objekte ... eins nach dem anderen. Das jeweilige Object wird durch die Laufvariable ( $_ oder $PSItem ) repräsentiert. Und der gebräuchliste Weg, diese Verarbeitung durchzuführen, ist mit einem Scriptblock, der in geschweifte Klammern ( { ... } ) eingeschlossen ist. Dein Beispiel sollte also ungefähr so aussehen: Get-ADGroupMember -Identity 'BeekeeperBenutzer' | ForEach-Object {Get-ADUser -Identity $_ -Properties Title,department,telephonenumber,mobile,mail } Um die Ausgabe dann auf die gewünschten Attribute zu beschränken, leitet man die Ausgabe dann noch an ein Select-Object weiter und gibt nur die Properties an die man sehen möchte. Get-ADGroupMember -Identity 'BeekeeperBenutzer' | ForEach-Object {Get-ADUser -Identity $_ -Properties Title,department,telephonenumber,mobile,mail } | Select-Object -Property Name,Title,department,telephonenumber,mobile,mail Es gibt gute Bücher, die Dir die Grundlagen näher bringen können oder Turorials im Internet oder sogar kostenlose Video-Kurse in der Microsoft Virtual Academy - Getting Started with Powershell. Sehr empfehlenswert ist auch der Powershell Best Practices and Style Guide.
  7. Ich würde Dir empfehlen, die Gruppenmitglieder mittels Get-ADGroupMember zu ermitteln und nur diese dann per Pipe an ein Foreach-Object weiterzugeben und darin dann mittels Get-ADUser nur diese User aus dem AD zu saugen. Das sollte deutlich schneller gehen, als das ganze AD oder die ganze -SearchBase erst auszulesen und dann hinterher zu filtern. Das cmdlet Get-ADUser hat einen Parameter -Properties. Damit kannst Du, neben den per default ausgegebenen Attributen, weitere angeben, die Du ausgegeben haben möchtest. Welche es insgesamt gibt, kannst Du einfach ermitteln, in dem Du mal z.B. Deinen eigenen Account mit Get-ADUser -Identity 'UserName' -Properties * ausgibst. Unabhängig von all dem, ist es immer empfehlenswert, die Hilfe der cmdlets zu lesen, die Du benutzt bzw. benutzen möchtest ... komplett und inklusive der Beispiele.
  8. Genaugenommen brauchst Du nicht mal Get-ChildItem. Ein Remove-Item -Path "C:\Users\*\AppData\Local\Microsoft\Office\*" -Recurse -Force -ErrorAction SilentlyContinue würde alle Dateien und Unterordner des angegebenen Office-Ordners in allen User-Profilen löschen. ... ohne Nachfrage!!
  9. Na dann wird's aber Zeit für VSCode!! ... wenn ich mich nicht verguckt habe, gibt's da keine Alterseinschränkung!!
  10. Hmmm ... bei mir funktioniert es so ... $Content = Get-Content -Path C:\sample\hap_mobil.bin -Raw $Content -match '.*(v(?:\d+\.){1,3}\d+).*' $Matches[1] ... kommt mir jetzt irgendwie zu einfach vor ... man muss nich ma tricksen ... hab ich beim Speichern was falsch gemacht? Edit: Was mir grad noch eingefallen ist - Versionsnummern sehen ja nicht immer genau so aus, wie Du es oben beschrieben hast ... "v1.3" wäre vermutlich auch eine valide Versionsnummer genauso wie "v10.22.328.3578". Die alle kannst Du mit dem in meinem Code-Beispiel ergänzten regex-Pattern einfangen.
  11. hmmmm .... na dann ma kukn, ob sich FuSer nochmal meldet ...
  12. Na jetzt bin ich aber gespannt .... her damit!
  13. OK ... ich bin weit davon entfernt, ein Experte zu sein, aber wenn ich mich nicht irre, ist Binary nicht gleich Binary. Es könnte sich also als schwierig herausstellen, eine generelle Lösung zu präsentieren, die mit einer beliebigen Binär-Datei funktioniert. Wäre es Dir möglich, uns eine um sensible Daten bereinigte Beispiel-Datei zukommen zu lassen?
  14. Ich glaube, dass es hilfreich wäre, wenn Du uns sagen könntest, was es ist. Was es nicht ist, wissen wir ja jetzt schon. Vielleicht hilft Dir das hier ja schon ein Stück: Use PowerShell and Regular Expressions to Search Binary Data
  15. Korrekt compilierte Binaries haben normalerweise eine entsprechende Eigenschaft, die man mit Powershell ganz einfach auslesen kann .... hier als Beispiel die Explorer.exe .... Get-Item -Path C:\Windows\explorer.exe | Select-Object -ExpandProperty VersionInfo Format-Table -AutoSize Das funktioniert normalerweise mindestens mit allen *.exe und *.dll Binaries.
  16. Mal ein Tipp für die Zukunft: Wenn Du einen Beitrag loben möchtest, gib ihm doch einfach ein "Herz" oder einen "Pokal", anstatt ihn mit einer Antwort quasi wieder zu aktivieren, ohne wirklich etwas Konstruktives beizutragen. Danke
  17. Probier ma das hier: $groups = Get-ADGroup -Filter { Name -like "WSUS*" } $GroupList = foreach ($group in $groups) { [PSCustomObject]@{ Group = $group.name MemberCount = (Get-ADGroupMember -Identity $group.Name).count } } $GroupList | Sort-Object -Property MemberCount Wenn Du jetzt noch ein Select-Object -First 1 dran hängst, hast Du die Gruppe mit den wenigsten Mitgliedern.
  18. Wie sieht denn Dein Code bisher aus? Mal ganz abstrakt betrachtet, liest Du die Gruppen aus, ermittelst deren Mitgliederzahl mit der .count() - Methode, die jedes Array mitbringt, sortierst die 3 Gruppen nach dieser Anzahl und nimmst die erste oder letzte - je nach dem, wie rum Du sortiert hast.
  19. Hallo Barniff99, vielleicht fängst Du vorne an und erzählst uns die ganze Geschichte, dann brauchen wir uns auch nicht iterativ langsam rantasten sondern können vielleicht gleich mit einer passenden Lösung (oder sogar mehreren Optionen) dienen.
  20. Steht doch aber da ... "/S /v /qn" anhängen und gut ist ...
  21. OK, es geht natürlich auch mit Powershell $Source = 'D:\Quelle' $Destination = 'D:\Ziel' Get-ChildItem -Path $Source -Directory | ForEach-Object { New-Item -Path $Destination -Name $_.Name -ItemType Directory }
  22. Man kann doch aber bei robocopy angeben, dass es auch leere Unterordner mit kopieren soll, oder hab ich wieder was falsch verstanden? ... also statt robocopy /s eben robocopy /e
  23. Ist "env" nicht ein reservierter Name, den man nicht für eigene Variablen benutzen kann?
  24. Ja, das war mir schon klar. Aber selbst wenn die Gruppe in der Liste mit dabei ist, kannst Du die "Liste entfernen". Die Gruppe Domänen-Benutzer würde das normalerweise nicht betreffen ... das meinte ich. Ich weiß - kein guter Stil - aber manchmal braucht man sowas ja trotzdem.
  25. Wenns' was altes ist - könnte es sein, dass im Rest des Scriptes noch was Fehlerhaftes dabei ist? Normalerweise ist die Gruppe "Domänen-Benutzer" die primäre Gruppe eines jeden AD-Accounts und lässt sich nicht ohne Weiteres entfernen ... hilft das vielleicht weiter? <zwinker zwinker>
×
×
  • Neu erstellen...