Unter Win10 Alle aktiven nicht Windows Dienste anzeigen lassen und deren Dateiname als variable speichern
Hi, wie kann ich alle nicht von Windows stammenden Dienste und den jeweils dazugehörigen Dateinamen anzeigen lassen und den Dateiname als auslesbare Variable in einem Textdokument speichern? Für jeden dienst ein eigenes Dokument so dass ich die Variablen auslesen und die einzelnen Dienste alle per Batch beenden kann? wäre auch cool wenn mir jemand sagen kann wie ich das komplette Verzeichnis des Dienstes als Admin Löschen kann(falls es ein unerwünschter Dienst ist)
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 295513
Url: https://administrator.de/contentid/295513
Ausgedruckt am: 26.11.2024 um 16:11 Uhr
10 Kommentare
Neuester Kommentar
Cherio,
Damit handelst du dir also eventuelle Probleme ein ..
Und das Verzeichnis eines Dienstes löscht man nicht so einfach, sondern man sollte den Dienst erst vorher regulär deinstallieren (z.B. mit sc delete, oder wie oben mit PS).
fk
VMWare , Silicon Valley
wie kann ich alle nicht von Windows stammenden Dienste und den jeweils dazugehörigen Dateinamen anzeigen lassen und den Dateiname als auslesbare Variable in einem Textdokument speichern?
Mit Powershell z.B. kein Thema, obwohl das Schreiben in eine Textdatei hier überflüssig ist:# Alle nicht MS Dienste ermitteln
$non_ms_services = gwmi win32_service | %{Add-Member -InputObject $_ -MemberType NoteProperty -Name "FileItem" -Value ([regex]::match($_.PathName,'(?i)"?(.*?\.exe)').Groups.Value -replace '"','') -PassThru} | ?{(test-path $_.FileItem) -and ((get-item $_.FileItem).VersionInfo.LegalCopyright -notmatch 'Microsoft')}
# Alle nicht MS Dienste beenden und löschen
$non_ms_services | %{
$_.StopService()
$_.Delete()
}
und die einzelnen Dienste alle per Batch beenden kann?
Siehe oben, dir sei aber gesagt das es Dienste gibt die sich aus Sicherheitsgründen nicht beenden lassen, wie z.B. die der Virenscanner & Co.Damit handelst du dir also eventuelle Probleme ein ..
Und das Verzeichnis eines Dienstes löscht man nicht so einfach, sondern man sollte den Dienst erst vorher regulär deinstallieren (z.B. mit sc delete, oder wie oben mit PS).
fk
VMWare , Silicon Valley
Was hat der Explorer mit nicht MS Diensten zu tun ?
Naja, ich seh die nächste Frage hier schon kommen ...
Naja, ich seh die nächste Frage hier schon kommen ...
der post hier ist noch net erledigt
Dann schreib das doch auch nicht ...Wieso immer alles in Zwischenschritten in textdateien exportieren ???
Der Inhalt von Variablen und Objekten lässt sich doch in Powershell ohne diese alte Batchmanier ausfiltern.
Dazu gibt es doch das CMDLet where-object oder abgekürzt ?{}.
Wenn du also aus den Nicht MS-Diensten bestimmte herausfiltern willst machst du das folgendermaßen:
die erste Zeile von oben bleibt gleich, dann kommt das hier:
$excluded = @("Dienst1","Dienst2")
$non_ms_services | ?{$_.Name -notin $excluded}
Fertig ist die Geschichte.
Dieses Ergebnis kannst ebenfalls wieder in einer Variablen speichern und so wie oben die Dienste beenden. Zusätzlich kannst du die Startart auf Disabled stellen wenn du willst, dann starten sie nicht neu falls es welche sind die sich automatisch versuchen Neu zu starten.
Also nutze die Vorteile von Powershell mit seiner objektorientierten Programmierweise und lass den ### mit dem Export in Textdateien, das ist altmodisch hoch drei, total ineffizient und Fehleranfällig.
Zitat von @PinkFLuffyUnicorn:
Mir wird ja nun pro dienst ein kleiner block mit einzelnen infos ausgegeben. wie kann ich wenn der string Status : Running vorhanden ist den gesamten block als variable speichern? ja ich frag dumme sachen sry:D
Diese Blöcke wie du sie nennst sind alles "Objekte" auf deren Eigenschaften du per Property zugreifen kannstMir wird ja nun pro dienst ein kleiner block mit einzelnen infos ausgegeben. wie kann ich wenn der string Status : Running vorhanden ist den gesamten block als variable speichern? ja ich frag dumme sachen sry:D
Beispiel um alle Objekte(Dienste) welche den Status Running haben in einer Variablen zu speichern:
# ausgeschlossene Dienste
$excluded = @("Dienst1","Dienst2")
# Dienste Filtern ohne Ausgeschlossene und mit dem Status 'Running'
$var = $non_ms_services | ?{$_.Name -notin $excluded -and $_.Status -eq 'Running'}
# Variable ausgeben
$var
$var | Get-member
Dann siehst du auch welche Methoden sich mit diesem Objekt oder mehreren Objekten ausführen lassen (Method).
Bedenke immer wenn du mehrere Objekte zurückgeliefert bekommst sind diese in einem Array aus Objekten zusammengefasst.