Página 1 de 1
Encerrar processo no windows - Erro no server 2019 standard
Enviado: 11 Ago 2022 10:59
por malcarli
Bom dia, uso a rotina abaixo para verificar e encerrar processos do windows. Funciona perfeitamente em outros windows, mas agora um cliente está com o server 2019 e não funciona no mesmo. Utilizando minigui extended x harbour,compilado com bcc582 em 32 bits, em windows 7. Se alguém tiver sugestão ou experi~encia na solução agradeco. Segue abaixo para análise e conhecimento.
Código: Selecionar todos
************************ Função Retirar Executável da Memória ******************
Function fRetiradamemoria(cExecutavel, nDerruba)
* Exemplo postado no PCTOLEDO: Leonardo Machado, alterada por José Alves Siqueira
* Modificado em 29/03/2012 para minigui x harbour por Marcelo Antonio Lázzaro Carli - malcarli@life.com.br
* fRetiradamemoria() - Verifica quais são os executáveis ativos, retorna array
* fRetiradamemoria([WINWORD.EXE], 1) - Verifica se o executável está ativo, retorna .T. ou .F.
* fRetiradamemoria([WINWORD.EXE], 2) - Encerra o executável
Local aNomesProcesso:= {}, oScriptObj, oWmiService, oListaProcess, oProcessos, lRet:= .F.
hb_Default(@nDerruba, 0)
Begin Sequence With {|oErr| break( oErr )}
* oScriptObj := CREATEOBJECT([wbemScripting.SwbemLocator]) // xharbour
oScriptObj := win_OleCreateObject([wbemScripting.SwbemLocator])
oWmiService:= oScriptObj:ConnectServer()
Recover
Return (IIF(nDerruba == 0, aNomesProcesso, lRet))
End
Begin Sequence With {|oErr| break( oErr )}
oListaProcess:= oWmiService:ExecQuery("select * from Win32_Process" + IIF(nDerruba == 0,""," where Name='" + cExecutavel + "'"))
Recover
Return (IIF(nDerruba == 0, aNomesProcesso, lRet))
End
For Each oProcessos in oListaProcess
Aadd(aNomesProcesso, oProcessos:Name())
lRet:= .T.
If nDerruba == 2
oProcessos:Terminate()
Endif
Next
Return (IIF(nDerruba == 0, aNomesProcesso, lRet))
********************* Fim da Função Retirar Executável da Memória **************
Att.
Marcelo A. L. Carli
Marília/SP
Capital Nacional do Alimento ®
https://malc-informatica.ueniweb.com
Insta: @malcarli25
Email / Skype:
malcarli@life.com.br
Encerrar processo no windows - Erro no server 2019 standard
Enviado: 11 Ago 2022 14:19
por carlaoonline
Boa tarde!
Será que alguma coisa mais simples não resolveria?
Tipo...
Código: Selecionar todos
Function Main()
@ 10,10 say "Kill no NotePad.exe"
cProcesso="NotePad.exe"
bb= "TASKKILL /F /IM "+cProcesso+" /T"
hb_run( bb )
Talvez precise ser executado como administrador....
Encerrar processo no windows - Erro no server 2019 standard
Enviado: 12 Ago 2022 09:01
por malcarli
Se fosse só para encerrar, sim. Mas preciso saber se está ativado o processo ou não para tomar decisões. Obg
Encerrar processo no windows - Erro no server 2019 standard
Enviado: 12 Ago 2022 11:12
por carlaoonline
Bom dia!
...na mesma linha de raciocínio.. (sem complicar...)
Código: Selecionar todos
FUNCTION ProcessosNaMemoria(cProcesso)
local cExec, cLinha:="", nOcorrencias:=0, cArq:=""
//Escopo-> nResult := hb_ProcessRun( cProcessoommand, [cStdIn], [@cStdOut], [@cStdErr], [lDetach] )
cExec= hb_processRun( "tasklist" ,, @cArq,, .t. )
FOR F=1 TO MLCOUNT(cArq,100) // Quantidade de linhas (memoline) em cArq ate 100 colunas.
cLinha=MEMOLINE(cArq,100,F) // (arquivo , ate a coluna X , Na linha F)
IF upper(cProcesso)$UPPER(cLinha)
nOcorrencias++
ENDIF
NEXT
msgbox("Encontrado "+Alltrim(Str(nOcorrencias))+" arquivo(s) "+cProcesso+" na memoria")
RETURN nOcorrencias
*------------------
Abre duas vezes o NotePad.exe e testa ai...
Encerrar processo no windows - Erro no server 2019 standard
Enviado: 12 Ago 2022 14:27
por Itamar M. Lins Jr.
Olá!
Funciona perfeitamente em outros windows,
Eu nem sei como isso ainda funciona no Win10 ou Win11.VBscript vem desligado nos novos windows.
Procure na internet que tem informações de como habilitar.
Saudações,
Itamar M. Lins Jr.
Encerrar processo no windows - Erro no server 2019 standard
Enviado: 15 Ago 2022 07:43
por malcarli
Não Funcionou no server 2019, demais funciona. Obrigado
Encerrar processo no windows - Erro no server 2019 standard
Enviado: 15 Ago 2022 14:30
por carlaoonline
Tenta esse...
Código: Selecionar todos
//----------------------------------------------
Function main()
//----------------------------------------------
Cls
cArq="notePad.exe"+Space(19)
DO WHILE .T.
@ 10,10 Say "Verificar qual processo?" GET cArq
READ
IF LastKey()=27
Quit
ENDIF
ProcessosNaMemoria(Alltrim(cArq))
ENDDO
Return
//----------------------------------------------
FUNCTION ProcessosNaMemoria(cProcesso)
local cExec, cLinha:="", nOcorrencias:=0, cArq:="Log.txt"
IF FILE(cArq) // NAO USAR LETO_FILE, eh para verificacao local
ERASE &cArq
ENDIF
cExec="TASKLIST>LOG.TXT"
HB_RUN (cExec)
cArq=MEMOREAD(cArq)
FOR F=1 TO MLCOUNT(cArq,100) // Quantidade de linhas (memoline) em cArq ate 100 colunas.
cLinha=MEMOLINE(cArq,100,F) // (arquivo , ate a coluna X , Na linha F)
IF upper(cProcesso)$UPPER(cLinha)
nOcorrencias++
ENDIF
NEXT
ALERT("Encontrado "+Alltrim(Str(nOcorrencias))+" arquivo(s) "+cProcesso+" na memoria")
RETURN nOcorrencias
*------------------
O principio de funcionamento é o seguinte:
O comando do DOS (CMD do Windows) TASKLIST , através do >LOG.TXT coloca em Log.txt (ou qualquer outro a escolha) o conteúdo do que está na memória (ou sejam o resultado do comando TaskList vai para o arquivo escolhido), e nesse arquivo criado verificamos quantas UPPER ocorrências existem da string "NOTEPAD.EXE" (no caso o default para o exemplo acima), a princípio, isso funciona e funcionará para sempre em qualquer Windows, o que pode é mudar o nome do comando CMD e a distribuição das palavras no arquivo gerado, mas a ideia será a mesma.
Segue o arquivo LOG.TXT gerado pelo executável acima em um PC de teste.
Código: Selecionar todos
Nome da imagem Identifi Nome da sessÆo SessÆo# Uso de mem¢r
========================= ======== ================ =========== ============
System Idle Process 0 Services 0 8 K
System 4 Services 0 20 K
Registry 92 Services 0 17.536 K
smss.exe 356 Services 0 316 K
csrss.exe 484 Services 0 2.116 K
wininit.exe 572 Services 0 792 K
services.exe 644 Services 0 5.160 K
lsass.exe 652 Services 0 11.208 K
svchost.exe 836 Services 0 17.476 K
fontdrvhost.exe 860 Services 0 264 K
svchost.exe 956 Services 0 12.280 K
svchost.exe 480 Services 0 75.804 K
svchost.exe 1040 Services 0 14.344 K
nvvsvc.exe 1080 Services 0 4.600 K
nvSCPAPISvr.exe 1088 Services 0 2.120 K
svchost.exe 1152 Services 0 18.996 K
svchost.exe 1184 Services 0 42.476 K
svchost.exe 1324 Services 0 14.068 K
svchost.exe 1468 Services 0 16.280 K
svchost.exe 1548 Services 0 8.512 K
Memory Compression 1576 Services 0 99.368 K
dasHost.exe 1964 Services 0 14.432 K
svchost.exe 2108 Services 0 9.556 K
dasHost.exe 2208 Services 0 292 K
svchost.exe 2496 Services 0 7.148 K
svchost.exe 2568 Services 0 2.440 K
svchost.exe 2576 Services 0 3.908 K
svchost.exe 2620 Services 0 14.344 K
svchost.exe 2708 Services 0 4.232 K
spoolsv.exe 2812 Services 0 18.132 K
svchost.exe 2860 Services 0 8.404 K
OfficeClickToRun.exe 2960 Services 0 12.268 K
svchost.exe 2980 Services 0 18.664 K
letodbsvc.exe 2564 Services 0 704 K
svchost.exe 2744 Services 0 5.168 K
svchost.exe 3324 Services 0 3.372 K
svchost.exe 408 Services 0 3.872 K
SgrmBroker.exe 4376 Services 0 4.544 K
svchost.exe 2180 Services 0 3.624 K
SearchIndexer.exe 4752 Services 0 25.232 K
SecurityHealthService.exe 5624 Services 0 5.520 K
svchost.exe 7008 Services 0 2.916 K
MpCopyAccelerator.exe 7136 Services 0 1.712 K
MoUsoCoreWorker.exe 1996 Services 0 8.852 K
MsMpEng.exe 7616 Services 0 152.260 K
NisSrv.exe 6952 Services 0 2.828 K
csrss.exe 5232 Console 4 2.560 K
winlogon.exe 6520 Console 4 4.920 K
fontdrvhost.exe 5880 Console 4 3.264 K
dwm.exe 7348 Console 4 38.800 K
nvxdsync.exe 3208 Console 4 12.224 K
nvvsvc.exe 732 Console 4 5.696 K
sihost.exe 4644 Console 4 15.924 K
svchost.exe 3748 Console 4 29.680 K
taskhostw.exe 2524 Console 4 10.104 K
ctfmon.exe 3884 Console 4 9.940 K
explorer.exe 6624 Console 4 142.540 K
svchost.exe 5660 Console 4 15.120 K
StartMenuExperienceHost.e 6572 Console 4 45.752 K
RuntimeBroker.exe 6912 Console 4 6.304 K
RuntimeBroker.exe 760 Console 4 18.916 K
nvtray.exe 2140 Console 4 6.116 K
NvBackend.exe 4048 Console 4 1.932 K
SecurityHealthSystray.exe 7756 Console 4 2.140 K
OneDrive.exe 3632 Console 4 15.876 K
microsip.exe 7996 Console 4 9.584 K
SearchApp.exe 4836 Console 4 132.364 K
ShellExperienceHost.exe 7496 Console 4 21.268 K
RuntimeBroker.exe 6672 Console 4 10.896 K
RuntimeBroker.exe 704 Console 4 15.956 K
Calculator.exe 7448 Console 4 772 K
ApplicationFrameHost.exe 5788 Console 4 12.216 K
RuntimeBroker.exe 1804 Console 4 1.500 K
SystemSettings.exe 7476 Console 4 380 K
UserOOBEBroker.exe 2668 Console 4 4.268 K
Microsoft.Photos.exe 3084 Console 4 1.420 K
RuntimeBroker.exe 3932 Console 4 18.764 K
TextInputHost.exe 6064 Console 4 12.616 K
svchost.exe 2612 Console 4 1.880 K
splwow64.exe 5312 Console 4 6.652 K
dllhost.exe 7956 Console 4 6.812 K
msedge.exe 2704 Console 4 122.564 K
msedge.exe 3168 Console 4 2.060 K
msedge.exe 3312 Console 4 45.216 K
msedge.exe 5080 Console 4 28.996 K
msedge.exe 2276 Console 4 7.316 K
hh.exe 7868 Console 4 36.024 K
msedge.exe 6796 Console 4 90.504 K
msedge.exe 4568 Console 4 7.980 K
LockApp.exe 5264 Console 4 19.448 K
RuntimeBroker.exe 5648 Console 4 12.476 K
taskhostw.exe 4148 Console 4 8.600 K
svchost.exe 5800 Services 0 6.680 K
cmd.exe 684 Console 4 4.100 K
conhost.exe 7624 Console 4 10.760 K
msedge.exe 7572 Console 4 103.904 K
msedge.exe 7036 Console 4 90.024 K
msedge.exe 4528 Console 4 57.868 K
msedge.exe 5884 Console 4 32.420 K
Everything.exe 7464 Console 4 91.764 K
xDevStudio.exe 3020 Console 4 117.532 K
svchost.exe 3040 Services 0 7.616 K
SearchProtocolHost.exe 3660 Console 4 7.832 K
cmd.exe 600 Console 4 5.080 K
conhost.exe 7092 Console 4 11.736 K
smartscreen.exe 4972 Console 4 23.976 K
notepad++.exe 6112 Console 4 24.672 K
SearchFilterHost.exe 3452 Services 0 7.496 K
WmiPrvSE.exe 5896 Services 0 10.000 K
prog2.exe 3476 Console 4 5.888 K
notepad.exe 3696 Console 4 14.228 K
cmd.exe 4252 Console 4 5.180 K
tasklist.exe 7128 Console 4 9.416 K
O que pode estar acontecendo é que o usuário não tenha privilégio para executar o comando TaskList.exe, daí realmente não vai funcionar.
Tenta executar em uma janela o comando TASKLIST (ou TASKLIST>LOG.TXT e verifica se gerou o arquivo)
Encerrar processo no windows - Erro no server 2019 standard
Enviado: 16 Ago 2022 09:33
por malcarli
Bom dia, mesmo administrador, não funcionou o tasklist.
Encerrar processo no windows - Erro no server 2019 standard
Enviado: 16 Ago 2022 09:46
por ANDRIL
Tenho Windows Server 2019 Standard 64Bits e o tasklist executa normalmente. Tem algum service pack instalado ai? Aqui não aparece nas informações do sistema.
Até+
Encerrar processo no windows - Erro no server 2019 standard
Enviado: 16 Ago 2022 10:25
por carlaoonline
malcarli escreveu:Bom dia, mesmo administrador, não funcionou o tasklist.
...bom, já identificamos o problema, talvez por esse mesmo motivo o código inicial que postou também não funcionou...
Não lembro se foi um Server 2016 ou Server 2019 que tive um problema semelhante com o usuário administrador e consegui resolver algumas coisas criando outro usuário administrador e usando ele para as tarefas, ou seja, criei um administrador com outro nome e aposentei o usuário chamado administrador.
Se não me engano o problema com o usuário administrador padrão foi gerado após tradução do Windows para Português, onde houve em algum lugar uma confusão no código do Windows entre a string "administrador" e "administrator".
A título de testes, tenta criar aí, se possível, um usuário chamado MASTER e loga com ele pra ver se consegue executar o tasklist.exe
Encerrar processo no windows - Erro no server 2019 standard
Enviado: 17 Ago 2022 07:49
por malcarli
o server está atualizado com a última atualização. Criei outro administrador e mesmo problema
Encerrar processo no windows - Erro no server 2019 standard
Enviado: 17 Ago 2022 09:40
por Itamar M. Lins Jr.
Olá!
Já viu esse link ?
https://docs.microsoft.com/en-us/answer ... g-o-1.html
Saudações,
Itamar M. Lins Jr.
Encerrar processo no windows - Erro no server 2019 standard
Enviado: 17 Ago 2022 10:59
por carlaoonline
Bom dia!
malcarli escreveu:o server está atualizado com a última atualização. Criei outro administrador e mesmo problema
... assim que é bom, quando complica um pouco.... senão fica muito fácil...
Caso não resolva com a sugestão do Itamar ou em outros sites, postei um arquivo ZIP com os dois arquivos TaskList.exe existentes em uma instalação do WS2019 que tenho em um HD.
São dois arquivos, um em cada pasta, pode tentar executar eles pra ver se funciona, e caso funcione pode usar ele na pasta do teu projeto apenas para a função que deseja, pode até renomear ele para não confundir com o original.
No exemplo que postei eu fiz um teste renomeando o Tasklist.exe do Sever 2019 que postei para tasklistw2019.exe e funcionou normal no Windows 10.
Na linha do código ficou assim:
A única coisa é que executando o TaskList na pasta que ele esta e por linha de comando, o resultado gerado é um formato diferente mas funciona.
O TaskList.exe de 99 KB fica na pasta
C:\Windows\WinSxS\amd64_microsoft-windows-tasklist_31bf3856ad364e35_10.0.17763.1_none_19091c16b27b108b
e o TaskList.exe de 78 KB fica na pasta
C:\Windows\WinSxS\wow64_microsoft-windows-tasklist_31bf3856ad364e35_10.0.17763.1_none_235dc668e6dbd286
Não está descartada a possibilidade de um vírus.....
Caso nada resolva e precise do comando....talvez terá que reinstalar o servidor....
Encerrar processo no windows - Erro no server 2019 standard
Enviado: 18 Ago 2022 09:34
por malcarli
Bom dia, amigo, não funcionou. Isso está muito estranho mesmo. Obrigado