Finden Sie heraus, was von svchost den Port verwendet

Finden Sie heraus, was von svchost den Port verwendet

Ich bin einer anderen Antwort gefolgt, um den Prozess zu finden, der Port 8000 verwendet, wenn ich meinen Computer starte.

Get-Process -Id (Get-NetTCPConnection -LocalPort 8000).OwningProcess

Das zeigt, dass svchostder Port verwendet wird. Ich beende es also ohne Probleme und führe aus, was ich auf Port 8000 ausführen möchte.

Aber gibt es eine Möglichkeit, herauszufinden, welches Programm svchostdiesen Port verwendet, sodass ich den Start verhindern kann?

Antwort1

Standardmäßig svchosthostet jede Instanz mehrere Dienste (oder hostete sie früher). Sie können mehr darüber lesen.HierAuf diese Weise können Sie nicht genau bestimmen, welcher Dienst für die Prozessaktivität verantwortlich ist. Mithilfe von PowerShell können Sie dennoch sehen, welche Dienste im betreffenden Prozess gehostet werden:

Get-WmiObject Win32_Service -Filter "ProcessId='$PID'"

Zum Beispiel:

PS C:\> Get-WmiObject Win32_Service -Filter "ProcessId='1448'"

ExitCode  : 0
Name      : EFS
ProcessId : 1448
StartMode : Manual
State     : Running
Status    : OK

ExitCode  : 0
Name      : KeyIso
ProcessId : 1448
StartMode : Manual
State     : Running
Status    : OK

ExitCode  : 0
Name      : SamSs
ProcessId : 1448
StartMode : Auto
State     : Running
Status    : OK

ExitCode  : 0
Name      : VaultSvc
ProcessId : 1448
StartMode : Manual
State     : Running
Status    : OK

(Diese werden nicht in gehostet svchost, aber Sie verstehen, was ich meine.)Um welche Dienste es sich handelt, lässt sich aus der Kommandozeile des Prozesses nicht immer erkennen.Hierzu müssen Sie die API der Dienste verwenden.

Sie können dieses Multi-Hosting für jeden Dienst deaktivieren, indem Sie sc(mitAbonnieren, der Windows Update-Dienst):

sc config wuauserv type= own

Anschließend können Sie noch einmal prüfen, welcher Dienst genau zuständig ist.

Sie können auch wieder zurückwechseln:

sc config wuauserv type= share

Antwort2

Der svchostProzess wird zum Ausführen von Systemdiensten verwendet. Es wäre besser, herauszufinden, welcher Systemdienst diesen Port verwendet, und ihn dann dauerhaft zu deaktivieren (wenn er nicht nützlich ist).

Sie können dies herausfinden, indem Sie sich die Befehlszeile des svchost.exe Prozesses ansehen. Der -kParameter identifiziert den Systemdienst.

Sie haben bereits herausgefunden, wie Sie die Prozess-ID erhalten, die den Port verwendet. Um die Befehlszeile zu erhalten, führen Sie PowerShell als Administrator aus und geben Sie den folgenden Befehl ein (Beispiel für Prozess 4680):

gcim win32_process | Where-Object {$_.processid -eq 4680} | select commandline

Ein nützliches GUI-Dienstprogramm ist Process Explorer.

verwandte Informationen