CMD Fenster Öffnet sich?

2 Antworten

Niemand wir Dir ohne Zugriff auf Dein System sagen können was da startet.

Dem Problem begegne ich regelmäßig im PC-Reperaturbetrieb...

Eigentlich ist es relativ einfach Progammstart/-ende zu loggen. Jedoch nicht beim Booten/Login. Dafür muss man den "Beobachter" unter den betreffenden Vorgang schieben noch bevor dieser startet.

Im Falle des User-Logins und dessen Autostartroutinen ist es relativ einfach.

Man leitet einfach den Start des Desktops auf ein anderes Programm/Script um, indem unter dem Registryschlüssel "HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" im Wert "Shell" eine eigene Startroutine definiert wird. (existiert der Wert Shell nicht wird der Explorer gestartet)

Hier ein kleines Powershell-Batch-Hybrid, welches diese Umleitung auf sich selbst einrichtet und beim nächsten Login alle Progammstarts/-beendigungen anzeigt und speichert.

Die Batch logt den Nutzer nach der Änderung des Shell-Eintrags automatisch aus. Beim erneuten Login wird die Batch/Powershellscript noch vor dem Start der Explorers ausgeführt und die Shellumleitung automatisch entfernt. damit ist alles wieder wie es sein soll. Im Fenster des Powershellscripts wird angezeigt was passiert.

Bild zum Beitrag

ProcWatcher.ps1.cmd

<# : Begin of batch section and Powershell comment
@echo off
pushd "%~dp0"
set "thisPath=%~f0" 

rem wenn eine alternative Shell-definition  vorhanden  ist...:
for /f "tokens=*" %%a in ('reg query "HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "Shell" 2^>nul ^|find "Shell"') do (
    reg delete "HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "Shell" /f  >nul 2>&1        &rem lösche die Shellumleitung
    start "ProcessWatcher" powershell  "&([Scriptblock]::Create((gc '%thisPath%' -enc UTF8 -raw )))"        &rem führe diese  Datei in Powershell aus
    exit /b
)

rem  wenn nicht...
:init
 reg add "HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "Shell" /d "cmd /c \"%thisPath%\" &timeout 2& start explorer.exe" /f >nul 2>&1  &rem Shellumleitung  in  Registry eintragen.
shutdown /l /f   &rem Logoff
exit /b
: End of batch section and Powershell comment#>

$queryProcessStart = "SELECT * FROM __InstanceCreationEvent WITHIN 0.1 WHERE TargetInstance ISA 'Win32_Process'"
$queryProcessClose = "SELECT * FROM __InstanceDeletionEvent WITHIN 0.1 WHERE TargetInstance ISA 'Win32_Process'"

$Start_Action = {
    $ProcName = $event.SourceEventArgs.NewEvent.TargetInstance.Name
    $ProcCreated = $event.SourceEventArgs.NewEvent.TargetInstance.CreationDate
    $ProcCmdLine = $event.SourceEventArgs.NewEvent.TargetInstance.CommandLine
    $LogString ='Start Process: "{1}" starttime: @{0:dd.MM.yyyy HH:mm:ss,ffffff}  commandline: {2}' -f $ProcCreated,$ProcName,$ProcCmdLine
    write-host $LogString -fo green
    $LogString | Out-File procStart.txt -Append
}

$Close_Action = {
    $ProcName = $event.SourceEventArgs.NewEvent.TargetInstance.Caption
    $ProcCreated = $event.SourceEventArgs.NewEvent.TargetInstance.CreationDate
    $EventTime=[DateTime]::FromFileTime($event.SourceEventArgs.NewEvent.TIME_CREATED)
    $LogString ='Close Process: "{1}" starttime: @{0:dd.MM.yyyy HH:mm:ss,ffffff} approx.closetime: @{2:dd.MM.yyyy HH:mm:ss,ff}' -f $ProcCreated,$ProcName,$EventTime
    write-host $LogString -fo yel
    $LogString | Out-File procClose.txt -Append
}

$null = Register-CimIndicationEvent -Query $queryProcessStart -Action $Start_Action
$null = Register-CimIndicationEvent -Query $queryProcessClose -Action $Close_Action
Write-Host 'waiting for process-events ...'
while ($True) {Wait-Event}

für Prozesse, wehe mit System/Admin-Privilegien gestartet werden, wird der Komandozeilenstring nicht ausgegeben!

Warum Batch /Powershell?

Diese Ressource ist auf jedem nativen Windowsrechner vorhanden und es ist nicht nötig irgendwelchen Kram zu installieren. Andere "Fachleute" können begutachten, das nichts schädliches passiert.

Selbst wenn (warum auch immer?) etwas schief gehen sollte, kannst Du via "Ctrl.+Alt+Del" nachwievor den Taskmanager nanuell ausführen und über das Datei->NeueTask... den Explorer/Desktop von Hand starten.

mit dem Kommando:

reg delete "HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "Shell" /f

...lässt sich Notfalls die Shellumleitung manuell löschen.

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren
 - (PC, Windows, Windows 10)

Nub738389 
Beitragsersteller
 04.10.2024, 14:56

Danke dir <3

Nub738389 
Beitragsersteller
 04.10.2024, 14:42

Es wurde gesagt das es meist AutoStart Apps auch sind weil ich viele AutoStart Apps habe

Erzesel  04.10.2024, 14:55
@Nub738389

Genau um Prozesse aus dem Autostart zu "erwischen" habe ich das Script programmiert. (für normalkram muss man nicht "zaubern")

wesentlich interessanter als die Starts dürften hier die "Closes" sein wenn ein Prozess nur kurz läuft fällt das am schnellsten auf.

Ich denke nicht, dass es bedenklich ist, da es schon oft an älteren Computern aufgetreten ist, die ich genutzt habe ...

Woher ich das weiß:eigene Erfahrung

Nub738389 
Beitragsersteller
 03.10.2024, 19:20

Mein PC ist recht neu glaube ich. Aber ist das Normal das vorkommen bei jedem PC?

KrawumXD  03.10.2024, 19:24
@Nub738389

Mir ist es jetzt bei 3 voneinander unabhängigen PC´s aufgefallen. Habe beim ersten mal auch Virenscan, Softwareupdate und alles Mögliche gemacht, habe dabei aber nichts entdeckt und es ging auch nicht weg... ...mag vlt also nicht schön sein, ist aber auch nicht gefährlich...

KrawumXD  03.10.2024, 19:26
@Nub738389

naja kann es nicht wirklich erklären, bin mir aber ziemlich sicher, dass es unbedenklich ist

Nub738389 
Beitragsersteller
 03.10.2024, 19:26
@Nub738389

Könnten aus auch Autostart Apps das Problem sein? Weil habe Apps die sich Automatisch starten was auch so sein soll. Aber könnte es daher kommen?

Nub738389 
Beitragsersteller
 03.10.2024, 19:28
@KrawumXD

Viele sagen ja kann ein Virus Malware sein obwohl ich keine habe

KrawumXD  03.10.2024, 19:30
@Nub738389

kann sein, bin dafür aber auch kein Profi, woher ich dahingehend keine Einschätzung abgeben kann ...

Nub738389 
Beitragsersteller
 03.10.2024, 19:32
@KrawumXD

Haha alles gut ich auch nicht wirklich. Viele sagten aber das es davon kommen könnte wenn sich Apps wie Z.B Bakkesmod eine Anwendung vor ein Spiel nach dem Start direkt angeht.

KrawumXD  03.10.2024, 19:34
@Nub738389

Keine Ahnung habe Discord auch auf Autostart und da kommt das manchmal kann es also nicht ausschließen ...

Nub738389 
Beitragsersteller
 03.10.2024, 19:37
@KrawumXD

Ah ja dann stimmt es über ein habe Discord auch auf Autostart ist ein Muss lol