bommi1961
Goto Top

Powershell unter WIN 7

Hallo zusammen!

Ich will ein kleines Powershell Skript schreiben, mit dem ich Remonte Prozesse beenden kann.

Mein Anfang sieht so aus:

cls
$SYSTEM = Read-Host "Bitte das System eingeben:"
$Process = Read-Host "Bitte den Process eingeben der beende werden soll:"

Enter-PSSession -ComputerName $Process

Get-Process | select name

...

Geschrieben habe ich das in PowerShell ISE, wenn ich das laufen lasse kommen diese Meldungen:

Enter-PSSession : Das Argument für den Parameter "ComputerName" kann nicht überprüft werden. Das Argument ist
NULL oder leer. Geben Sie ein Argument an, das nicht NULL oder leer ist, und führen Sie dann den Befehl erneut
aus.
Bei D:\Powershell-Skipte\Prosse_beenden_040815_1.ps1:5 Zeichen:30

back-to-topEnter-PSSession -ComputerName <<<< $Process

+ CategoryInfo : InvalidData: ( : ) [Enter-PSSession], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.PowerShell.Commands.EnterPSSessionCo
mmand

Wenn ich den Befehl "Enter-PSSession -ComputerName xxxxx" im DOS-Fenster aufrufe kommt keine Fehlermeldung.

Was mache ich falsch??

VG

Content-ID: 279148

Url: https://administrator.de/forum/powershell-unter-win-7-279148.html

Ausgedruckt am: 22.12.2024 um 21:12 Uhr

122990
Lösung 122990 04.08.2015 aktualisiert um 13:38:21 Uhr
Goto Top
Enter-PSSession -ComputerName $Process
Wenn man den Prozessnamen als Computernamen verwendet, kein Wunder face-smile

Geht per WMI viel einfacher (Zur Info: hier muss die Dateierweiterung angegeben werden also z.b. Calc.exe):
gwmi win32_process -Computername $System -filter "name='$process'" | %{$_.Terminate()}  
Gruß grexit
SlainteMhath
Lösung SlainteMhath 04.08.2015 aktualisiert um 13:38:20 Uhr
Goto Top
Moin,

so wird das nichts...

Versuchs mal mit
$SYSTEM = Read-Host "Bitte das System eingeben:"  
$Process = Read-Host "Bitte den Process eingeben der beende werden soll:"  
Get-Process -Computername $SYSTEM -name $Process | stop-process

lg,
Slainte
Bommi1961
Bommi1961 04.08.2015 um 12:39:51 Uhr
Goto Top
Moin,

Danke!! Leider kommt immer noch eine Fehlermeldung:

Stop-Process : Das Feature wird nicht auf Remotecomputern unterstützt. >>Ist natürlich Unsinn, denn wenn ich es im DOS-Fenster (CMD.EXE) aufrufe geht es.


Bei D:\Powershell-Skipte\Prosse_beenden_040815_2.ps1:8 Zeichen:64

back-to-topget-process -Computername $System -Name $process | stop-process <<<<

+ CategoryInfo : NotSpecified: ( : ) [Stop-Process], NotSupportedException
+ FullyQualifiedErrorId : System.NotSupportedException,Microsoft.PowerShell.Commands.StopProcessCommand

Hast Du noch eine Idee?

lg. Bommi
122990
Lösung 122990 04.08.2015 aktualisiert um 13:38:17 Uhr
Goto Top
Ist natürlich Unsinn, denn wenn ich es im DOS-Fenster (CMD.EXE) aufrufe geht es.
Das ist auch Unsinn denn das ist Powershell ! CMD.EXE ist nicht Powershell, außer du rufst die PS Konsole aus der CMD auf.

Hast Du noch eine Idee?
Es via WMI machen wie ich oben beschrieben habe, das geht zuverlässig face-wink

Und die Powershell auf mindestens PS 3.0 updaten, da dort diverse Bugs gefixt wurden.
Bommi1961
Bommi1961 04.08.2015 um 12:59:12 Uhr
Goto Top
Moin,

1. Natürlich rufe ich im CMD dann Powershell auf. face-smile

2. Leider kommt immer noch diese Meldung, ABER es funktioniert, das Programm wird beendet.

Get-Process : Es kann kein Prozess mit dem Namen "cmd.exe" gefunden werden. Überprüfen Sie den Prozessnamen, u
nd rufen Sie das Cmdlet erneut auf.
Bei D:\Powershell-Skipte\Prosse_beenden_040815_3.ps1:7 Zeichen:12

back-to-topget-process <<<< -Computername $System -Name $process

+ CategoryInfo : ObjectNotFound: (cmd.exe:String) [Get-Process], ProcessCommandException
+ FullyQualifiedErrorId : NoProcessFoundForGivenName,Microsoft.PowerShell.Commands.GetProcessCommand
122990
Lösung 122990 04.08.2015 aktualisiert um 13:38:13 Uhr
Goto Top
Bei Get-process darfst du als Namen nur den Namen des Prozesses ohne Dateierweiterung(.exe) benutzen.
SlainteMhath
Lösung SlainteMhath 04.08.2015 aktualisiert um 13:38:10 Uhr
Goto Top
Get-Process : Es kann kein Prozess mit dem Namen "cmd.exe" gefunden werden.
Das Vorhandensein das entsprechenden Prozesses solltest du vorher abprüfen, wenn du solche Fehlermeldungen vermeiden möchtest.
Bommi1961
Bommi1961 04.08.2015 um 13:38:03 Uhr
Goto Top
Super, Danke jetzt läuft alles!! face-smile face-smile