Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst PowerShell Prozess gnadenlos beenden

Mitglied: Miyamoto

Miyamoto (Level 1) - Jetzt verbinden

30.09.2010 um 13:37 Uhr, 14204 Aufrufe, 8 Kommentare

Hallo alle zusammen

Ich habe folgende Situation,
ich habe mir mit der PowerShell eine GUI erstellt die mir mein Backup erleichtert.
Das Backup klappt an sich auch ganz gut, aber ein Teil leider nicht so wie ich es gerne möchte.
Wenn ich das Skript nun starte, wird mir eine GUI angezeigt mit folgenden Elementen:
  • 1x Label
  • 2x Buttons (Button A startet das Backup, Button B beendet das Backup)
  • 1x ProgressBar

Wenn ich nun auf Button A klicke, öffnet sich eine Neue PowerShell in der Robocopy läuft.
Wenn ich nun auf Button B klicke, soll das momentan laufende Backup abgebrochen werden, also die PowerShell in der Robocopy läuft soll beendet werden.

Dazu wollte ich den Prozess beenden von der neu geöffneten PowerShell, dazu schreibe ich mir die Prozess-ID, beim Start der neuen PowerShell, in einer Variable.
Dann dachte ich mir das ich einfach den Prozess mit dem Folgenden Befehl beende:
01.
Stop-Process -Id "[Variable mit der Prozess-ID]"
Leider geht das nicht.

Wenn ich dazu noch den Prozess von Robocopy beende klappt es, Befehl:
01.
Stop-Process -Name "Robocopy"
Da es aber auch sein kann das mehrere Robocopy Prozesse laufen, kann es sein das ich auch die anderen mit beende, und das möchte ich nicht.

Meine Frage ist nun, wie realisiere ich das am besten, das auch immer der Richtige Robocopy Prozesse beendet wird oder das sich die neu geöffnete PowerShell gnadenlos beenden?

Gruß Miyamoto
Mitglied: FLAGSHiP
30.09.2010 um 14:41 Uhr
Servus,

ich bin kein Experte für die PS, allerdings habe ich etwas ähnliches auch mal gebastelt. Hast mal darüber nachgedacht, für das killen von Robocopy auf ein externes Tool zuzugreifen? Sysinternals hat mit pskill ein sehr gutes Werkzeug für genau diesen Zweck...evtl. geht das killen des spezifischen Prozesses über PID damit besser?!

FLAGSHiP

J.H.
Bitte warten ..
Mitglied: Miyamoto
30.09.2010 um 15:19 Uhr
Hi,

das mit pskill von Sysinternals hatte ich noch nicht ausprobiert, würde es aber lieber ohne ein weiteres Tool realisieren.

Gruß Miyamoto
Bitte warten ..
Mitglied: LotPings
01.10.2010 um 18:24 Uhr
Hallo Miyamoto,
Dazu wollte ich den Prozess beenden von der neu geöffneten PowerShell, dazu schreibe ich mir die Prozess-ID, beim Start der neuen PowerShell, in einer Variable.
Dann dachte ich mir das ich einfach den Prozess mit dem Folgenden Befehl beende:
...
Meine Frage ist nun, wie realisiere ich das am besten, das auch immer der Richtige Robocopy Prozesse beendet wird oder das sich die neu geöffnete PowerShell gnadenlos beenden?
Auch bei der Powershell erbt ein neuer Process eine Kopie des Environments.
Eine dort gesetzte Variable ist auch nur dort sichtbar.
Du musst schon einen anderen Weg zur Weitergabe der ID nutzen, z.Bsp die hier beschriebene Methode mit:
01.
$process = [System.Diagnostics.Process]::Start("notepad") 
02.
$process.Responding 
03.
True 
04.
$process.HasExited 
05.
False 
06.
$process.Kill()

Gruß
LotPings
Bitte warten ..
Mitglied: Miyamoto
04.10.2010 um 10:30 Uhr
Hi,
Auch bei der Powershell erbt ein neuer Process eine Kopie des Environments.
Eine dort gesetzte Variable ist auch nur dort sichtbar.
das wusste ich schon, aber danke.

Ich starte meinen Aufruf wie folgt:
01.
$copyProzeesID=Start-Process -PassThru powershell -ArgumentList "-command robocopy $bilderQuelle $bilderZiel /E /XF $ignordata /ETA /NJH /NJS; 'Das ist eine Temporere Datei' ; out-file -filepath $bilderZiel\ncalnasddbuasajsd.nivdnscsdnfdbu -encoding Default"
durch den Parameter "-PassThru" wird die Prozess-ID von der Neue gestarteten PowerShell in die Variabel "$copyProzeesID" gespeichert.

Wenn ich jetzt in meiner alten PowerShell den Prozess von der Neuen PowerShell beenden möchte habe ich es versucht mit:
01.
Stop-Process -Id "$copyProzeesID"
Dies gelang mir leider nicht.

Gruß Miyamoto
Bitte warten ..
Mitglied: LotPings
04.10.2010 um 16:07 Uhr
Zitat von Miyamoto:
das wusste ich schon, aber danke.
Hätte mich auch gewundert, wenn nicht

Ich starte meinen Aufruf wie folgt:
01.
> $copyProzeesID=Start-Process -PassThru powershell -ArgumentList "-command robocopy $bilderQuelle $bilderZiel /E /XF 
02.
> $ignordata /ETA /NJH /NJS; 'Das ist eine Temporere Datei' ; out-file -filepath 
03.
> $bilderZiel\ncalnasddbuasajsd.nivdnscsdnfdbu -encoding Default" 
04.
> 
durch den Parameter "-PassThru" wird die Prozess-ID von der Neue gestarteten PowerShell in die Variabel
"$copyProzeesID" gespeichert.
Ich glaube da liegt ein Gedankenfehler vor, die ID wird doch nur die vom 2.Powershell Prozess sein, nicht die vom dann erst gestarteten Robocopy.

Gruß
LotPings
Bitte warten ..
Mitglied: Miyamoto
05.10.2010 um 10:25 Uhr
Wie Gedanken Fehler?
Ich starte doch eine weitere PowerShell in der dann ein paar Befehle ablaufen unter anderem der Robocopy Befehl.
Wenn ich jetzt den Prozess der PowerShell beende müsste doch eigentlich auch alles was sich innerhalb der PowerShell befindet mit sterben.
Oder nicht???

Gruß Miyamoto
Bitte warten ..
Mitglied: LotPings
05.10.2010 um 18:59 Uhr
Zitat von Miyamoto:
Ich starte doch eine weitere PowerShell in der dann ein paar Befehle ablaufen unter anderem der Robocopy Befehl.
Wenn ich jetzt den Prozess der PowerShell beende müsste doch eigentlich auch alles was sich innerhalb der PowerShell befindet
mit sterben.
Robocopy ist doch eine separate exe mit eigener Process-ID, das zusätzliche Wrappen in einen Powershell-Prozess ist IMO überflüssig und kontraproduktiv.
Oder nicht???
Oder nicht!!!

Gruß
LotPings
Bitte warten ..
Mitglied: Miyamoto
13.10.2010 um 13:56 Uhr
HI,
Sorry das ich jetzt erst mich melde, ja das wusste ich das Robocopy eine separate Prozess-ID hat ich dachte nur, wenn ich den Prozess, von der PowerShell Kille werden alle Prozesse die von der Abhängig sind mit gekillt.

Habe es jetzt so gelöst:
01.
$processes_before = get-process 
02.
 
03.
## Kopiervorgang wird gestartet 
04.
$copyProzeesID=Start-Process -PassThru powershell -ArgumentList "-command robocopy $bilderQuelle $bilderZiel /E /XF $ignordata /ETA /NJH /NJS; 'Das ist eine Temporere Datei' ; out-file -filepath $bilderZiel\ncalnasddbuasajsd.nivdnscsdnfdbu -encoding Default" 
05.
         
06.
Start-Sleep -Seconds 1 
07.
$processes_after  = get-process 
08.
 
09.
$diff_processes=diff -referenceobject $processes_before -differenceobject $processes_after -PassThru 
10.
                 
11.
 Foreach ($i in $diff_processes) { 
12.
  $tempID=$i.Id 
13.
  $tempName=$i.Name 
14.
  Stop-Process -Id "$tempID" 
15.
  Write-Host "ProzessID: $tempID    ProzessName: $tempName" 
16.
}
Gruß Miyamoto
Bitte warten ..
Ähnliche Inhalte
Windows 7

Wie kann ich das beenden eines Prozesses Protokollieren?

Frage von ScrollerWindows 77 Kommentare

Hallo, sporadisch beenden sich an einem unserer PCs Prozesse (Win 7 Prof). Im eventlog steht nichts dazu. Gut wäre ...

Windows Server

Software Prozesse über GPO beenden

gelöst Frage von dakoerryWindows Server7 Kommentare

Guten Tag kann mir einer helfen, möchte gerne alle PC´s in einer Server 2012 R2 Domain einen bestimmten Prozess ...

Batch & Shell

Remote Prozesse Beenden

gelöst Frage von HanutaBatch & Shell6 Kommentare

Hallo Zusammen, gibt es die Möglichkeit von Powershell mit Stop-Process z. B. den Firefox auch Remote zu beenden? Möchte ...

VB for Applications

Prozess Beenden mit VBA (Excel)

gelöst Frage von ritzmannVB for Applications2 Kommentare

Hallo zusammen Drehe momentan am Rad, da ich nicht mehr weiter weiss. Erhoffe mir durch euch eine Lösung zu ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 1 TagHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 1 TagRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 2 TagenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 2 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Router & Routing
Mikrotik: Routing zwischen Interfaces mit Geräten ohne Gateway
Frage von TonLichtVideoRouter & Routing18 Kommentare

Hallo zusammen, ich komme aus dem Veranstaltungstechnik Bereich und habe zwei Netze um verschiedene Hardware zu Remoten. CONTROL1 192.168.1.0/24 ...

Linux Netzwerk
Raspberry Pi 3: WLAN Power save deaktivieren
Frage von nordie92Linux Netzwerk14 Kommentare

Moin moin, mein Raspberry Pi 3 Model B benötigt eine dauerhaft aktive WLAN-Verbindung. Leider bricht die WLAN-Verbindung nach einigen ...

SAN, NAS, DAS
Entscheidung SAN Dell oder HP
Frage von VincorSAN, NAS, DAS13 Kommentare

Hallo, wir wollen uns für unsere Hyper V Umgebung eine neue SAN Anschaffen. Es laufen 30 VM's darunter, DC; ...

Vmware
Server 2008 r2 vmware terminalserver
Frage von MasterCVmware10 Kommentare

Guten Abend zusammen, ich hoffe , dass einer von euch mir weiterhelfen kann ,bei meinem kack Problem ! Ist ...