» »

Kako restartat proces?

Kako restartat proces?

k4vz0024 ::

V Win 7 32-bit bi rad restartal proces SynTPenhe.exe. Kako najprej ubiti proces in ga nato ponovno zagnati?
Napisal bi kot batch datoteko, se pravi preko konzole..

SeMiNeSanja ::

Powershell - poglej link

k4vz0024 ::

A bi šlo, če v konzoli poženem Restart-Service SynTPenhe.exe ?

SeMiNeSanja ::

Če teče kot servis bi šlo nekaj takega.
Če pa je navaden proces pa boš moral uporabiti:

Stop-Process -Name SynTPenhe
Start-Process -FilePath "c:\........\SynTPenhe.exe"

To shraniš v datoteko Restart-SynTPehe.ps1 in poganjaš po potrebi

Konkretneje o procesih v Powershell-u maš na linku

k4vz0024 ::

Deluje tudi v Starter Win 7?

SeMiNeSanja ::

Imaš Powershell nameščen?
Zaženi "Powershell ISE", za začetnika praktična zadeva, ker imaš 'plonkcegelc' vgrajen.

k4vz0024 ::

Ok, se je odprl Administrator: Powershell ISE. A, sedaj vnesem

Stop-Process -Name SynTPenhe
Start-Process -FilePath "c:\........\SynTPenhe.exe"

in shranim?

k4vz0024 ::

Ko sem zagnal script v Administrator: Powershell ISE, sem dobil, da execuion of script is disable on this system. Kako vklopiti izvajanje scriptov?

SeMiNeSanja ::

Poweshell ISE sicer ima vgrajen urejevalnik, vendar tisto okno, ki ga zagledaš, ko se zažene ni urejevalnik - je kar direktno ukazna vrstica.

Če boš te ukaze tipkal tam, se bodo takoj izvedli. Vsaka vrstica posebej. Enako, kot v CMD okenčku.

Če pa klikneš na File/New, se ti bo odprl urejevalnik skript v ISE-ju.
Če tja vpišeš obe vrstici in ju shraniš s .ps1 končnico, to lahko potem zaženeš iz ukaznega okna.

Malo potelovadi. Če te je strah trenirati na tistem procesu, ki si ga imenoval, pa treniraj na calc.exe (kalkulatorčku). Najprej odpreš en kalkulatorček, narediš skriptico in vidiš, če ti ga pobije in ponovno štarta.

k4vz0024 je izjavil:

Ko sem zagnal script v Administrator: Powershell ISE, sem dobil, da execuion of script is disable on this system. Kako vklopiti izvajanje scriptov?

poženeš:
powershell.exe -command set-executionpolicy unrestricted

Zgodovina sprememb…

k4vz0024 ::

Kako pa potem narediš blijžnico za ikono, da skripto poženeš?

Zgodovina sprememb…

  • spremenil: k4vz0024 ()

SeMiNeSanja ::

k4vz0024 je izjavil:

Kako pa potem narediš blijžnico za ikono, da skripto poženeš?

Tako, kot narediš vse bližnjice. Na namizju klikneš desno tipko miške, izbereš da želiš kreirati novo bližnico in vpišeš kaj želiš zagnati.

Lahko pa odpreš raziskovalec, se sprehodiš do datoteke, držiš ctrl-shift in jo odvlečeš na namizje.

Windows osnove....

k4vz0024 ::

Ja, imaš prav.
Jaz sem ustvaril bližnjico na namizju. Najprej vnesel powershell.exe -command Stop-Process -Name calc in dal ime Stop calc. Za vajo.

k4vz0024 ::

Kateri ukaz pa moraš dodati, da se konzolno okno ne pokaže, pri izvedbi skripte, oz. bližnjice?

Zgodovina sprememb…

  • spremenil: k4vz0024 ()

SeMiNeSanja ::

Presneto, googlat ne znaš? Bi te za ušesa! link
Glej pod "WindowStyle"...

k4vz0024 ::

Hm, ampak bližnjica za Stop calc deluje in in ubije calc. Ampak, sedaj sem hotel dodati Start-Process -FilePath "C:\Windows\system32\calc.exe" pa ne gre?

sisemen ::

BOOL WINAPI TerminateProcess(
_In_ HANDLE hProcess,
_In_ UINT uExitCode
);

BOOL WINAPI CreateProcess(
_In_opt_ LPCTSTR lpApplicationName,
_Inout_opt_ LPTSTR lpCommandLine,
_In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes,
_In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,
_In_ BOOL bInheritHandles,
_In_ DWORD dwCreationFlags,
_In_opt_ LPVOID lpEnvironment,
_In_opt_ LPCTSTR lpCurrentDirectory,
_In_ LPSTARTUPINFO lpStartupInfo,
_Out_ LPPROCESS_INFORMATION lpProcessInformation
);

k4vz0024 ::

Sisemen, a lahko daš tole bolj enostavno, npr. primer. za calc.exe, ki ga terminiramo in ponovno poženemo?

Če prav razumem se Powershell skripte zaženejo npr. takole: PowerShell -PSConsoleFile Stopclac.psc1, za primer Calc?

Če prav razumem se Powershell skripte zaženejo npr. takole: PowerShell -PSConsoleFile Stopclac.psc1, za primer Calc?

Če prav razumem se Powershell skripte zaženejo npr. takole: PowerShell -PSConsoleFile Stopclac.psc1, za primer Calc?

Zgodovina sprememb…

  • spremenil: k4vz0024 ()

SeMiNeSanja ::

Ti nisem napisal, da shrani kot *.ps1 in potem samo 2x klikni gor?
Lahko tudi start/zaženi skripta.ps1 in bo štartalo...

sisemen je izjavil:

BOOL WINAPI TerminateProcess(
_In_ HANDLE hProcess,
_In_ UINT uExitCode
);

Zakaj nebi raje kar v assemblerju?

Zgodovina sprememb…

k4vz0024 ::

Če 2x kliknem na *.ps1 odpre file v Beležnici.

SeMiNeSanja ::

k4vz0024 je izjavil:

Če 2x kliknem na *.ps1 odpre file v Beležnici.

Pardon...moja napaka - klikni desno tipko miške in izberi 'run with powershell'

k4vz0024 ::

Ja, to pa dela. Kako pa bi dodal, da bi samo kliknil 2x?

SeMiNeSanja ::

Narediš bližnico in v njej daš ukaz "powershell skripta.ps1"
Če boš pa hotel, da se ti izvede v pomanjšanem oknu pa še doštukaš tisti Windowstyle parameter.

k4vz0024 ::

Kam pri ustvarjanju bližnjice dodaš ukaz "powershell skripta.ps1"?


Namreč pri kreiranju bližnjice ali urejanju bližnjice ne vidim placa kamor bi dal ta ukaz.

SeMiNeSanja ::

Ko kreiraš bližnico, te vpraša, za kero reč jo želiš ustvariti.
Vpišeš: powershell.exe "C:\...............\skripta.ps1"

Če urejaš pa isto vrstico vpišeš tam, kjer se sicer napiše ime programa (na moji angleški verziji pod 'Target' - ne vem, kako so to prevedli v SLO verziji).

k4vz0024 ::

Pardon, moja napaka.

Zgodovina sprememb…

  • spremenil: k4vz0024 ()

k4vz0024 ::

"powershell.exe -command set-executionpolicy unrestricted"
Kateri je ukaz, ki povrne prejšnje stanje?
In, ali je mogoče, dati ukaz, da se izvede le točno določen file skript?

k4vz0024 ::

Z zadnjim, sem mislil, da je omejeno le na določen skript, ki se izvede, ostale pa ne?
Namreč unrestricted je lahko potencialno nevarno, za izvajanje zlobne kode.

SeMiNeSanja ::

Drži.

Zato pa imaš Googl!

Išči "restricting powershell script execution" in začni raziskovati.

Spotoma se boš še 10 stvari naučil, ki se jih nebi, če bi ti čisto vse dostavil na pladnju.

k4vz0024 ::

Za povrnitev v "restricting powershell script execution"

powershell.exe -command set-executionpolicy restricted

Če bo kdo rabil:)

Za začasen bypass restricting powershell script execution, stric googl ne najde nič pametnega.

k4vz0024 ::

A ni nobenega drugega ukaza, da bi preko cmd restartal proces?

SeMiNeSanja ::

Če si googlal pojem, ki sem ti ga ponudil, je bil med prvimi 10 ponujenimi linki opis 15-ih načinov, kako zaobiti restricted način.

Če bi malo razmislil, bi ti morda tudi prišlo na misel, da restrikcija velja za SKRIPTE in ne za samostojne ukaze. Torej lahko s pomočjo .bat datoteke dvakrat pokličeš powershell.exe, da izvede posamezni ukaz.

Kot že rečeno - obstaja še niz drugih načinov, če se bojiš vključiti 'unrestricted' način - samo malo se moraš potruditi, da kaj prebereš.

k4vz0024 ::

Sem napisal najprej skript za stop proces. Nato še posebej za restart. Problem je v tem, da ne vem kako bi potem ločena skripta pognal, ne da bi bio treba unrestricted vklopiti.

C++ pa tudi nimam.

Zgodovina sprememb…

  • spremenil: k4vz0024 ()

SeMiNeSanja ::

Preberi kaj o batch datotekah?

C++ ? Če ne obvladaš osnov Windows-ov, ne poznaš DOS batch datotek,..... potem ne vem, kaj bi z C++....

k4vz0024 ::

Jaz bi rad takšen način restarta procesa, da zgolj kliknem na bližnjico. Seveda so drugi načini, ampak niso tako elegantni.

Microsoft predlaga C+.

Ja, saj sem pričakoval, da bo kdo vedel, kako napisti v Dos batch. Ampak, jaz ukazov za terminate in run proces v DOS bachu ne poznam.

Zgodovina sprememb…

  • spremenil: k4vz0024 ()

k4vz0024 ::

Poskusil sem še z TASKKILL /F /IM "SysTPeh.exe"

Dostop zavrnjen.

SeMiNeSanja ::

Mišljeno je bilo, da iz DOS .bat datoteke 2x zapored kličeš Powershell.exe z ustreznimi ukazi (namesto skripte).

Potrudi se malo, sem ti že toliko namignil, da res ne more biti več nevem kakšna znanost to spacat skupaj.

k4vz0024 ::

Sem v .bach file napisal tole:

start C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe Stop-Process -Name SynTPEnh

start C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe Start-Process -FilePath "C:\Program Files\Synaptics\SynTP\SynTPEnh.exe"

In ne dela. Za enostaven calc pa dela.

Zgodovina sprememb…

  • spremenil: k4vz0024 ()

SeMiNeSanja ::

tisti 'start' pred klicanjem powershell.exe pobriši, ker zažene stvar v novem oknu (oba se izvajata praktično istočasno), ti pa želiš, da se najprej izvede prvi ukaz do konca, predenj se začne izvajati naslednji.

Ker je powershell (vsaj ponavadi) v path-u, ti ni treba pisati celotne poti do njega.

Praviloma se napiše "powershell -Command _________________" torej v tvojem primeru:

powershell -Command Stop-Process -Name SynTPEnh
powershell -Command Start-Process -FilePath "C:\Program Files\Synaptics\SynTP\SynTPEnh.exe"


Ampak..........

Ker si v DOS batch datoteki, je druga vrstica nesmiselna!
Proces preprosto štartaš tako, da zaženš program direktno:
"C:\Program Files\Synaptics\SynTP\SynTPEnh.exe"

Zgodovina sprememb…

k4vz0024 ::

Ne dela: Dostop zavrnjen. Vrne, ko poženem batch file.

k4vz0024 ::

Seveda se. Kaj pa ko po zbujanju iz hibernacije proces neha delovati?


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

PowerShell

Oddelek: Programiranje
131526 (487) m1h4
»

Pisanje batch skript

Oddelek: Programiranje
7770 (507) Cemmac
»

Pretvorba skripte iz Powershell v Bash

Oddelek: Operacijski sistemi
7788 (594) c3p0
»

windows power shell | grep

Oddelek: Programska oprema
5510 (412) lopov
»

Težave z računalnikom

Oddelek: Pomoč in nasveti
51181 (1106) MojsterLeo

Več podobnih tem