Jump to content

BOfH_666

Expert Member
  • Gesamte Inhalte

    2.096
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von BOfH_666

  1. .. auch wenn Du das im Moment vielleicht nicht so siehst, wir versuchen Dir hier alle zu helfen. Und das meistens sogar, wenn wir die Anforderung für sinnlos halten. Wenn ich mich richtig erinnere, hattest Du geschrieben, dass Du in Deinem Script die Rechtevererbung aufbrichst und die vorgefundenen Rechte quasi manuell wieder neu einfügst. Warum lässt Du die Berechtigung die Dich stört, an dieser Stelle nicht einfach weg? Oder - ein weiterer Ansatz - wenn Dir die Standard-Berechtigungen im Pfad $ENV:PROGRAMFILES nicht zusagen, nimm doch einfach einen anderen Pfad dessen Rechte Du explizit vergibst bzw. kontrollierst. Es ist ja nicht zwingend nötig, ein Programm zwingend im Programmverzeichnis zu installieren.
  2. Alles klar ... dann weiß ich jetzt Bescheid ... der ganze Aufwand für keinen messbaren technischen Mehrwert. SCNR :D :) ;) :cool: :p
  3. ... und genau da ist meine Erfahrung eine ganz andere - ganz allgemein und besonders in Foren wie diesem hier. Ich frage IMMER erst mal nach dem Mehrwert. Wenn das Angeforderte weder die Leistung noch die Sicherheit verbessert, wozu dann den ganzen Aufwand betreiben? Gerade Anforderungen aus dem "nicht-technischen" Management sind nach meiner Erfahrung gerne mal pure Verschwendung von Zeit und Energie. Nur weil etwas technisch möglich ist, ist es noch lange nicht sinnvoll. Und gerade bei Berechtigungsanpassungen sind mir schon das ein oder andere mal die Nebenwirkungen später wieder auf die Füße gefallen. Also denn ... ich drück die Daumen! ;) :)
  4. Hmmm .... ich kann das leider nicht nachvollziehen, da ich so eine Gruppe bei mir nicht finden kann. Aber was willst Du denn eigentlich erreichen? Warum willst Du denn diese spezielle zugriffsberechtigte Gruppe entfernen? Meistens sind diese Rechte ja aus einem bestimmten Grund gewährt. Vielleicht kannst Du hier auch mal einen Auszug aus Deinen ACLs posten. Eventuell erkennt ja jemand das Problem. Übrigens kannst Du das hier: $ACL = Get-Acl $LocalInstDir $ACEs=(Get-Acl $LocalInstDir).Access so etwas verkürzen ... $ACL = Get-Acl $LocalInstDir $ACEs=($ACL).Access ... dann brauch die Abrage nicht zweimal laufen. ;)
  5. Vielleicht noch eine generelle Empfehlung für die Zukunft: Fast ausnahmslos alle Powershell cmdlets kommen mit einer "eingebauten" Hilfe, die fast immer auch wirklich hilfreich ist. Wenn Du Dir unsicher bist, oder einfach wissen möchtest, wie man ein cmdlet benutzt, solltest Du die komplette Hilfe für dieses cmdlet lesen - inklusive der mitgelieferten Beispiele! Get-Help Remove-Mailbox -Full ... oder ... wird auch gern genommen: Get-Help Remove-Mailbox -ShowWindow
  6. ... ich bin bisher davon ausgegangen, dass er das schon lange ist .... sollte ich seine Tipps in Zukunft doch lieber kritisch hinterfragen und verifizieren?? :D :schreck:
  7. geht alles ... probier ma das hier $Start = Get-Date $Duration = New-TimeSpan -Minutes 5 Do{ Start-Sleep -Seconds 1 $ElapsedTime = New-TimeSpan -Start $Start -End $(Get-Date) $Time = "{0:D2}:{1:D2}" -f $ElapsedTime.Minutes, $ElapsedTime.Seconds Write-Progress $Time } While((Get-date) -lt ($Start + $Duration))
  8. ... Probieren geht über Studieren. Versuch's einfach mal - es geht bestimmt nix kaputt. ;) :cool: :thumb1: :jau:
  9. So kannst Du mit Powershell die Anfangsbuchstaben der Unterverzeichnisse des von Dir anzugebenden Verzeichnisses ermitteln ... und dann weiterbenutzen, wie Du möchtest ... Get-ChildItem -Directory -Path 'Dein Startverzeichnis' | Select-Object -Property Name,@{Name='Initial';Expression={$_.Name.Substring(0,1).ToLower()}}
  10. OK ... dann solltest Du Dir das Leben einfacher machen!! :D :D Schau mal hier: https://blogs.technet.microsoft.com/heyscriptingguy/2015/11/25/introducing-the-powershell-excel-module-2/ Man muss das Rad ja nicht immer wieder neu erfinden. ;) :cool: :thumb1:
  11. .... ohne Dir zu nahe treten zu wollen ... wie wär's wenn Du mit etwas anfängst, was Dich nicht überfordert? z.B. könnte ich mir vorstellen, dass es vermutlich erst mal einfacher wäre, die von Dir benötigten Daten zu ermitteln und sie in eine CSV-Datei zu exportieren. Powershell kann gut mit solchen strukturierten Daten umgehen und ein CSV-Export macht die Daten auch für Excel verwertbar.
  12. Du kannst die Variable auf jeden Fall erst benutzen, wenn Du sie definiert/gefüllt hast.
  13. Du würdest Dir selbst und uns allen einen riesen Gefallen tun, wenn Du den Code, den Du hier postest auch als Code formatierst und Deinen Code entsprechend korrekt einrückst. Du möchtest in Deinen Schleifen über eine Variable $Infos iterieren, hast diese Variable aber nirgendwo in dem Code, den Du gepostest hast, definiert oder gefüllt.
  14. Ooops ... hab ich tatsächlich übersehen, sorry. Aber ich bekomme schon Fehler beim Umbenennen der Tabellenblätter ... ich vermute mal einen Tippfehler. Erzeugt werden die Tabellenblätter ab, bc und de und umbenannt werden sollen ab, bc und cd.
  15. Woher hast Du die Methode '*.SaveAs()'? $excel = new-object -comobject excel.application $excel | Get-Member | Where-Object -FilterScript {$_.MemberType -eq 'Method' -and $_.Name -like 'save*'} ... bei mir gibt es die gar nicht. Ausgabe: TypeName: System.__ComObject#{000208d5-0000-0000-c000-000000000046} Name MemberType Definition ---- ---------- ---------- Save Method void Save (Variant) SaveWorkspace Method void SaveWorkspace (Variant)
  16. .... und noch mal eine Verständnis-Nachfrage von mir: Im Betreff fragst Du nach Dateien, die älter sind als 5 Minuten. Dann fragst Du nach Dateien, die in der letzten Stunde neu erstellt wurden und am Schluss fragst Du nach Dateien, die z.B. aus dem aktuellen Jahr sind. :) :D ;) :schreck: Vielleicht solltest Du die erwünschten Rahmenbedingungen erst mal konkret festlegen!? :cool:
  17. Ginge auch Powershell? $Limit = Get-Date '01.01.2017' Get-ChildItem -Path 'C:\sample' -Filter '*.csv' | Where-Object -Property LastWriteTime -Value $Limit -GE
  18. Um die Datenmenge zu begrenzen, die Du die Pipeline entlang schickst. Wenn Du bereits bei der "Datenerhebung" nur relevante Daten extrahierst, sparst Du Prozessorleistung und Speicherplatz und beschleunigst im Idealfall Deine Abfragen/Scripte deutlich. Flexibler und mächtiger ist aber "Where-Object", weshalb man häufig nicht wirklich drumherum kommt.
  19. Hmmm ... da wirst Du wohl alle direkt einzeln prüfen müssen. Also "Get-ADUSer -Filter *" und dann in der Property "MemberOf" prüfen, ob die von Dir gesuchte Gruppe da ist bzw. nicht da ist.
  20. Yep ... das hatte ich aber erst bemerkt, als ich die Antwort auf diesen Post hier schon geschrieben hatte ... :D
  21. Huch ... hier isses ja nochma mit Bild ... also denn nochmal: Das klingt nach einer Aufgabe für das gute alte "icacls" und da im Speziellen die Option "/remove". Du kannst das Ganze natürlich auch gern aus einem Powershell-Skript heraus aufrufen.
  22. Das Bild kann ich leider nicht sehen, aber das klingt nach einer Aufgabe für das gute alte "icacls" und da im Speziellen die Option "/remove". Du kannst das Ganze natürlich auch gern aus einem Powershell-Skript heraus aufrufen.
  23. Weil wir neugierig sind und jetzt wissen wollen, ob es hilft, das cmdlet direkt auf einem DC abzufeuern. :D ;) :cool: :thumb1: :jau: :wink2:
  24. OK - aber es geht ja gar nicht um ein AD-Cmdlet und spätestens der DCLocator sollte doch dann den lokal verfügbaren DC finden, oder? ... na ma kukn, was magheinz'ns Experimente am Montag ergeben. :thumb1: ;) :D
  25. Keine Ahnung - aber ich gehe erst mal davon aus. .... würde ja Sinn machen eine lokal verfügbare Ressource nicht noch "aufwändig" irgendwo anders zu suchen. Supi Idee eigentlich - hast Du mal versucht, das Ganze direkt oder per Remoting auf einem DC laufen zu lassen. Funktioniert es dann?
×
×
  • Neu erstellen...