Jump to content

BOfH_666

Expert Member
  • Gesamte Inhalte

    2.101
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von BOfH_666

  1. 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?
  2. 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
  3. 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.
  4. 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
  5. 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.
  6. 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.
  7. 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.
  8. Steht doch aber da ... "/S /v /qn" anhängen und gut ist ...
  9. 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 }
  10. 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
  11. Ist "env" nicht ein reservierter Name, den man nicht für eigene Variablen benutzen kann?
  12. 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.
  13. 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>
  14. Ich würde als Dateierweiterung für die CSV-Dateien ".csv" empfehlen. Ich würde als Delimiter ";" (das Semikolon) empfehlen. .... und man könnte noch -Force dranhängen.
  15. Du weißt, dass Du beide Aktionen zusammen in der Schleife laufen lassen kannst? N' Tipp zu den Kommentaren: Die cmdlets von Powershell sind ziemlich "sprechend". Jeder der Powershell kennt, weiß, was Get-ADComputer oder Copy-Item oder Get-CimInstance macht. Das brauchst Du also nicht umbedingt zu kommentieren. Da wäre dann im Zweifel eher eine Information hilfreich, warum Du eine Aktion machst, wie Du sie machst, wenn das nciht sowieso offensichtlich ist.
  16. Vielleicht teilst Du das Script mit der Community und markierst das dann entsprechend als die Lösung. Das hilft anderen, die das gleiche oder ein ähnliches Problem haben, die Lösung etwas schneller zu finden.
  17. Die WMI und CIM cmdlets liefern üblicherweise eine Property PSComputerName mit. Wenn Du die im Select-Object mit angibst, sollte's passen ...
  18. Nur ganz nebenbei bemerkt ... ein ausreichend aktuelles Betriebssystem mit ausreichend aktueller Powershell-Version vorausgesetzt, wäre es empfehlenswert, statt Get-WmiObject -Class win32_operatingsystem | Select-Object -Property LastBootUpTime lieber Get-CimInstance -ClassName CIM_OperatingSystem | Select-Object -Property LastBootUpTime zu benutzen. So erledigt die Powershell die nötige Konvertierung von selbst.
  19. Verschachtelte Schleife brauchst Du eigentlich nicht unbedingt. Du kannst mit dem Statement -in oder -contains prüfen, ob ein einzelnes Element in einem Array enthalten ist. Das sollte flotter gehen als ein nested loop.
  20. Den Hinweis von Lee_Dailey schon probiert .... ? https://stackoverflow.com/questions/54901996/powershell-performance
  21. Die Verfügbarkeit einzelner cmdlets hängt nicht nur von der Powershell-Version ab, sondern auch von der Windows-Version auf der die Powershell läuft. Wenn Du Dir die Dokumentation auf den Microsoft-Seiten anschaust, hast Du immer auf der Linken Seite die Liste der cmdlets und darüber ein Suchfeld und die für die aktuell angezeigte Seite gültige Version von Windows oder Powershell. Wenn Du z.B. nach Install-Module suchst, findest Du standardmäßig erstmal die Dokumentation für Powershell Version 6. Wenn Du jetzt versuchst, die entsprechende Hilfe für die Version 3 aufzurufen, bekommst Du die Meldung, dass diese Seite nicht für die Version 3 verfügbar ist.
  22. Hallo RRX, na dann erstmal willkommen im MCSEBoard Scripting Forum. Wenn Du, wie Du schreibst, Dich mit C/C++ auskennst, kannst Du Dir bestimmt denken, dass man so einen über 1100 Zeilen langen Code-Batzen nicht mal eben so debuggen kann. Ich denke, das geht deutlich über die Möglichkeiten dieses Forums hinaus. Ich empfehle Dir, Dich an den Author dieses Scripts zu wenden und ihn um entsprechenden Support zu bitten.
  23. Och komm .... so lang wir uns nich fetzen ... sowas muss auch mal drin sein.
×
×
  • Neu erstellen...