Jump to content

BOfH_666

Expert Member
  • Gesamte Inhalte

    2.036
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von BOfH_666

  1. Ja - das ist möglich. :) ;) :thumb1:
  2. Is jebont ;) ... kommt mit in meine Sammlung ... falls ich's doch mal brauchen kann ... :thumb1:
  3. Ein Tool, welches seit fast 13 Jahren nicht mehr aktualisiert wurde, würde mich ja erst mal stutzig machen .... ;) ... lässt man das wirklich noch auf aktuelle Installationen los?
  4. Du liest den Inhalt der Datei mit Get-Content ein. Dabei erhältst Du einen String. Den kannst Du zum Integer "casten" und kannst das dann mit Deinem $VarA.Matches.Count vergleichen. ... also ungefähr so [INT]$SavedCount = Get-Content -Path "Pfad\Flag.Txt" ... jetzt hast Du die vorher dort gespeicherte Anzahl in der Variablen $SavedCount und kannst damit weiterspielen. ;) ... was mir noch einfällt ... Du müsstest dann vielleicht noch das Datum der Datei Flag.txt mit beachten, damit Du nicht beim ersten Durchlauf des Tages den "Error-Count" mit dem Vortag vergleichst. ;)
  5. Hmmm ... Du bräuchtest dann wohl doch eine "Zählvariable". Die Kannst Du dann (pro Tag) auswerten und entsprechend reagieren. Oder Du schreibst - so wie Du es oben schon selbst angeregt hast - den "Zähler" in eine Datei und liest diesen dann aus. Was genau fehlt Dir denn für die Umsetzung der Zählvariable?
  6. Wenn es sowieso neu erzeugt wird, kann man es nicht einfach löschen / leeren, nachdem es "bearbeitet" / "gescannt" wurde?
  7. ... per Powershell so hier: If(Test-Connection -Count 1 -Quiet -ComputerName "RemoteComputer"){ Get-Service -Name "Service" -ComputerName "RemoteComputer" | Restart-Service -Force } ... wenn der Host "RemoteComputer" nicht erreichbar ist, wird auch kein Service neu gestartet. ;) :cool: :D <SCNR> Wenn Du das Ganze in ein Script packst und es "parametriesierst" (heißt das überhaupt so?), dann kann man es mit dem Zielcomputer als Parameter aufrufen und die Sache ist erledigt. ... sind wir mal heute nicht so ... (wer kennt noch "Timur und sein Trupp"?) Nur mal so als Startpunkt könnte das dann als Script im einfachsten Fall so aussehen: param( [Parameter(Position=0, Mandatory=$true)] [ValidateNotNullOrEmpty()] [System.String] $ComputerName ) If(Test-Connection -Count 1 -Quiet -ComputerName $ComputerName){ Get-Service -Name "Service" -ComputerName $ComputerName | Restart-Service -Force } Mit einem beliebigen Namen als Powershell-Script (*.ps1) abgespeichert und in einer mit Adminrechten gestarteten Konsole aufgerufen, fragt das Script sogar nach dem Computernamen und startet den Service neu, wenn der Computer erreichbar ist. Den Service-Namen müsstest Du dann im Script natürlich noch entsprechend anpassen. Fragen? Fragen! ;)
  8. Nur mal noch so aus Neugier: Wie groß ist das "Netzwerk", um das es hier geht?
  9. Na wer denn sonst? Soll sich der Domain-Admin oder Enterprise-Admin um die Clients kümmern? ;) Bei uns heißt die Gruppe "WorkstationAdmins"
  10. Das hatten wir schon! Nein! Das soll im Zweifelsfall der Helpdesk mit entsprechenden Rechten erledigen!
  11. Genaugenommen ist das mit Powershell ein "Zweizeiler". If(Test-Connection -Count 1 -Quiet -ComputerName "RemoteComputer"){ Get-Service -Name "Service" -ComputerName "RemoteComputer" | Restart-Service -Force } ... das ist aber weder fehlertolerant noch benutzerfreundlich ... das wäre dann Deine Aufgabe für die nähere Zukunft! :) :D ;) :cool: :thumb1: :p
  12. 1. zahni hat Recht. 2. Wenn die Software diesen Dienst braucht und nur nach einem Neustart des Dienstes korrekt funktioniert, ist es vermutlich der naheliegendste Ansatz das "zu automatisieren". Technologisch betrachtet ist das aber meiner Meinung nach ein ganz falscher Ansatz. Viel besser wäre, den Hersteller zu kontaktieren und ihn zu bitten, die korrekte Funktionalität ohne Dienste-Frickelei herzustellen. 3. Wenn Du wirklich anfangen möchtest zu scripten, solltest Du nicht mehr mit VBScript anfangen. Das wird meines Wissens nach nicht mehr weiterentwickelt. Viel moderner und einfacher und zukunftssicherer ist Powershell. Dafür findest Du bestimmt auch mehr aktuelle Sachen.
  13. Was Du nehmen könnstest, nennt sich "calculated Properties" ... könnte dann so aussehen: $folder = 'H:\' Get-ChildItem -Path $folder -Recurse | Select-Object -Property Attributes, Name, CreationTime,@{Name='Size';Expression={$_.Length / 1MB}} | Export-Csv -Path 'C:\tmp\ausgelesen_h_out.csv' -Delimiter ';' -NoTypeInformation -Encoding UTF8 (...ungetestet)
  14. .. 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.
  15. Alles klar ... dann weiß ich jetzt Bescheid ... der ganze Aufwand für keinen messbaren technischen Mehrwert. SCNR :D :) ;) :cool: :p
  16. ... 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! ;) :)
  17. 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. ;)
  18. 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
  19. ... 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:
  20. 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))
  21. ... Probieren geht über Studieren. Versuch's einfach mal - es geht bestimmt nix kaputt. ;) :cool: :thumb1: :jau:
  22. 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()}}
  23. 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:
  24. .... 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.
  25. Du kannst die Variable auf jeden Fall erst benutzen, wenn Du sie definiert/gefüllt hast.
×
×
  • Neu erstellen...