beidermachtvongreyscull
Goto Top

Befehl zum Terminieren aller Prozesse mit einer bestimmten Beschreibung. Übersehe ich etwas?

Tach Kollegen,

hin und wieder kommt es vor, dass ich auf unseren Terminalservern ein Update unserer Kanzleisoftware fahren muss, das während der Bürozeiten erfolgt.
Alle Prozesse der Kanzleisoftware haben im Task-Manager in der "Beschreibung"-Spalte mit "Turbo Virtual Machine Executable" geführt.

Ich dachte eigentlich, ich könnte mittels Powershell und

(get-process | ? {$_.Description -eq "Turbo Virtual Machine Executable"}).kill()  

oder

(get-process | ? {$_.Description -like "Turbo Virtual*"}).kill()  

diese Prozesse einfach killen, aber da wird nichts gefunden.

Was mache ich denn da falsch?

Danke fürs Augenöffnen.

Viele Grüße
bdmvg

Content-ID: 629788

Url: https://administrator.de/contentid/629788

Ausgedruckt am: 17.11.2024 um 15:11 Uhr

certifiedit.net
Lösung certifiedit.net 09.12.2020 um 13:19:43 Uhr
Goto Top
Moin,

ist kill nicht linux shell? (kann sein, dass ich da nicht up2date bin. probier es mal mit stop-process.
Doskias
Lösung Doskias 09.12.2020 aktualisiert um 13:26:16 Uhr
Goto Top
Ich hab es grade mit
(get-process | ? {$_.Description -like "*Edge*"}).kill()  
versucht und bei mir hat es geklappt. was sagt dir denn:

get-process |select-object ProcessName, Description

hast du vielleicht die falsche Description?
beidermachtvongreyscull
beidermachtvongreyscull 09.12.2020 aktualisiert um 14:21:21 Uhr
Goto Top
Die Description ist leer.
Ich verstehe es nicht. Im Taskmanager hab ich in der Beschreibung "Turbo Virtual Machine Executable" drin.
Hier fehlt es.

Ein Beispiel:
Name                       : rmCalendar
Id                         : 15244
PriorityClass              : Normal
FileVersion                :
HandleCount                : 1265
WorkingSet                 : 177557504
PagedMemorySize            : 110505984
PrivateMemorySize          : 110505984
VirtualMemorySize          : 689528832
TotalProcessorTime         : 00:00:51.2968750
SI                         : 3
Handles                    : 1265
VM                         : 689528832
WS                         : 177557504
PM                         : 110505984
NPM                        : 88032
Path                       : C:\Program Files (x86)\ra-micro\RAMICRONET\rmCalendar.exe
Company                    :
CPU                        : 51,296875
ProductVersion             :
Description                :
Product                    :
__NounName                 : Process
BasePriority               : 8
ExitCode                   :
HasExited                  : False
ExitTime                   :
Handle                     : 2840
SafeHandle                 : Microsoft.Win32.SafeHandles.SafeProcessHandle
MachineName                : .
MainWindowHandle           : 0
MainWindowTitle            :
MainModule                 : System.Diagnostics.ProcessModule (rmCalendar.exe)
MaxWorkingSet              : 1413120
MinWorkingSet              : 204800
Modules                    : {System.Diagnostics.ProcessModule (rmCalendar.exe), System.Diagnostics.ProcessModule
                             (ntdll.dll), System.Diagnostics.ProcessModule (wow64.dll),
                             System.Diagnostics.ProcessModule (wow64win.dll)...}
NonpagedSystemMemorySize   : 88032
NonpagedSystemMemorySize64 : 88032
PagedMemorySize64          : 110505984
PagedSystemMemorySize      : 939072
PagedSystemMemorySize64    : 939072
PeakPagedMemorySize        : 120750080
PeakPagedMemorySize64      : 120750080
PeakWorkingSet             : 182943744
PeakWorkingSet64           : 182943744
PeakVirtualMemorySize      : 713072640
PeakVirtualMemorySize64    : 713072640
PriorityBoostEnabled       : True
PrivateMemorySize64        : 110505984
PrivilegedProcessorTime    : 00:00:16.9531250
ProcessName                : rmCalendar
ProcessorAffinity          : 255
Responding                 : True
SessionId                  : 3
StartInfo                  : System.Diagnostics.ProcessStartInfo
StartTime                  : 09.12.2020 10:31:40
SynchronizingObject        :
Threads                    : {12772, 19716, 33080, 20608...}
UserProcessorTime          : 00:00:34.3437500
VirtualMemorySize64        : 689528832
EnableRaisingEvents        : False
StandardInput              :
StandardOutput             :
StandardError              :
WorkingSet64               : 177557504
Site                       :
Container                  :

Vielleicht muss ich über WMI gehen, um da ran zu kommen...
beidermachtvongreyscull
beidermachtvongreyscull 09.12.2020 um 14:22:10 Uhr
Goto Top
Moin,

Die Description ist leer. Im Taskmanager aber nicht.
Ich schau mal, ob ich per WMI da rankomme.
146707
Lösung 146707 09.12.2020 aktualisiert um 14:29:08 Uhr
Goto Top
Ich würde mich nicht auf die Description verlassen. Stattdessen würde ich entweder den/die Hauptprozesse eindeutig identifizieren und dann deren Process-Tree abschießen. Ob die Identifizierung nun über den Pfad/Commandline der Prozesse stattfindet oder den Prozessnamen bleibt dir überlassen. Die Description lässt sich übrigens manchmal auch nur in elevated Shells auslesen.
Doskias
Lösung Doskias 09.12.2020 aktualisiert um 14:39:28 Uhr
Goto Top
Vielleicht hilft dir:

Get-Process |where {$_.mainWindowTItle} |format-table id,name,mainwindowtitle –AutoSize

Nachtrag: Wobei ich grade sehe in deinem Auszug ist der auch leer. Du könntest sonst den path als eindeutiges Kriterium verwenden
beidermachtvongreyscull
beidermachtvongreyscull 09.12.2020 um 18:27:37 Uhr
Goto Top
Da wird doch der Hund in der Pfanne verrückt.

Die Spalte "Beschreibung" im Taskmanager ist die Dateibeschreibung!
Geht dem Prozesspfad ins Dateisystem nach und macht nen Rechtsklick, dann steht in Beschreibung dasselbe drin.

OK. Dann schau ich mal, ob ich über den Pfad weiterkomme.
WoitschekBF3
WoitschekBF3 13.07.2021 um 14:20:26 Uhr
Goto Top
Die Prozesse sind virtualisiert gestartet daher gibt es wohl keine Description dazu.

Es reicht aus wenn Sie die 32ra.exe abschießen, sobald diese beendet wird, müssten sich auch alle zugehörigen Prozesse beenden.

Sie können sich allerdings auch ein Script bauen welches nur die Prozesse beendet die mit folgenden Zeichen beginnen. Auch in der Reihenfolge:
winword.exe
_winword.exe
32*.exe
7.*exe
ra.*exe
ra7.*exe
ramicro.*exe
RAPDFE*.exe
Services.Starter.exe

Ganz einfach kann man aber auch bei der RDP Collection angeben das die Benutzer nach einer gewissen Zeit inaktivität einfach abgemeldet werden. Oder man legt denen einen Abmeldebutton auf den Desktop. Ist natürlich nur nötig wenn die netten User nicht lernen wollen.
WoitschekBF3
WoitschekBF3 13.07.2021 um 14:22:56 Uhr
Goto Top
Es ist aber auch möglich das Programm zu aktualisieren wenn RAM geöffnet ist. Problematisch wird es nur wenn die Drittanbietersoftware auch aktualisiert werden soll. Wenn das Programm dann gerade darauf zugreift, muss der TS dann neu gestartet werden. Wenn mehr info benötigt werden. Feel free to pm me
beidermachtvongreyscull
beidermachtvongreyscull 13.07.2021 um 15:45:31 Uhr
Goto Top
@WoitschekBF3

Mahlzeit!
Ist nicht mehr nötig. Ich habe einen scriptgesteuerten Updateprozess gestrickt, der vor dem Start der Kanzleisoftware auf zentrale Updates prüft und diese anwendet, wenn der entsprechende Nutzer lokale Adminrechte hat und der entsprechende Computer sich in einer bestimmten Gruppe befindet.

Was meine TS angeht habe ich einen dynamsichen Abmeldeautomat als Script den Nutzern als Login-Script mitgegeben. So bleiben Sie die Woche über angemeldet, wenn sie das wollen. Nur am WE in der Nacht von Samstag auf Sonntag erfolgt die kontextbezogene Abmeldung durch den Nutzer (Script) selbst. face-smile

Dann starten die Büchsen durch und werden vom Loadbalancer Sonntagvormittags gesperrt.

Aber Danke für die Idee.

Gruß
bdmvg