Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
Check de logiceil installé sur une machine
Auteur Message
Répondre en citant
Message Check de logiceil installé sur une machine 
Bonjour,

Etant novice, je ne sais pas si c'est réalisable. J'aimerais faire un script qui me permets de vérifier toutes les heures les logiciels installés dans un Windows. Et si il y a un soucis avec un des logiciels, soit de me faire un pop-up ou alors de me créer une régle que je pourrais paramétrer dans les événement Windows.

Je débute donc j'ai pas vraiment de code, je me documente depuis 2 jours, et je viens de tomber sur votre site très bien fait.

Merci



Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message Check de logiceil installé sur une machine 
j'avance doucement, j'ai trouvé la commande wmic qui me permets de voir mes logiciels, j'ai créer ca dans mon script:
wmic
wmic:root\cli>product get name

le problème c'est qu'il ne veux pas lancer "product get name" tout seul

merci de votre aide



Répondre en citant
Message Check de logiceil installé sur une machine 
Salut Wink
Vous pouvez tester ce petit batch :
Code:
@echo off
Title Software_%Computername%
Mode con cols=50 lines=3
color 9E & echo.
echo           Veuillez patienter un peu ........
wmic product get name /format:list > Software_%Computername%.txt
wmic product get /format:csv > Software_%Computername%.csv
Start "" Software_%Computername%.txt
Start "" Software_%Computername%.csv





______________________________________________________
Mes Contributions en Téléchargement
Répondre en citant
Message Check de logiceil installé sur une machine 
Merci!

Encore une question, si je veux faire la meme chose avec la fonction tasklist, que dois je mettre derrière le tasklist?

Merci



Répondre en citant
Message Check de logiceil installé sur une machine 
John22 a écrit:
Merci!
Encore une question, si je veux faire la meme chose avec la fonction tasklist, que dois je mettre derrière le tasklist?
Merci


Code:
@echo off
Tasklist > Tasklist.txt
start "" Tasklist.txt


Je vais te poster après un code plus complexe qui regroupe pas mal de fonctions Very Happy
n'hésitiez surtout à poser d'autres questions Wink




______________________________________________________
Mes Contributions en Téléchargement
Répondre en citant
Message Check de logiceil installé sur une machine 
encore un grand merci, je galère pas mal!

Tu crois que c'est faisable d'avoir un rapport d'erreur si entre deux lancement il y a tache qui ne fonctionne plus?

Merci



Répondre en citant
Message Check de logiceil installé sur une machine 
Testez ce code batch Wink
Code:
@echo off
Title Create report by Hackoo 2016
Mode con cols=90 lines=5
cls & color 9E & echo.
Set "TmpLogFile=%Tmp%\TmpLogkey.txt"
Set "LogFile=%UserProfile%\Desktop\%UserName%_Log.txt"
If Exist %TmpLogFile% Del %TmpLogFile%
If Exist %LogFile% Del %LogFile%
echo(
echo(
Echo(
ECHO                 **********************************************
ECHO                   Please wait..... We generate the report.....
ECHO                 **********************************************
Call :Speak "Please wait . . . We generate the report !"
Call :PS_Sub 'Warning' 100 '"Please wait . . . "' "'Please wait . . . We generate the report !'" 'Warning' 5

(
    Echo.
    Echo  **************************** General info ****************************
    Echo.
    Echo Running under: %username% on profile: %userprofile%
    Echo Computer name: %computername%
    Echo.
    Echo Operating System:
    wmic os get caption | findstr /v /r /c:"^$" /c:"^Caption"
    Echo Boot Mode:
    wmic COMPUTERSYSTEM GET BootupState | find "boot"
    Echo Antivirus software installed:
    wmic /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName | findstr /v /r /c:"^$" /c:"displayName"
    Echo.
    Echo Executed on: %date% @ %time%
    Echo.
    Echo **************************** Drive info *******************************
    Echo.
    Echo Listing currently attached drives:
    wmic logicaldisk get caption,description,volumename | find /v ""
    Echo.
    Echo Physical drives information:
    for /F "tokens=1-3" %%A in ('fltmc volumes^|find ":"') do echo %%A %%B %%C
    Echo.
    Echo ************************************************************************
    Echo.
)>"%TmpLogFile%"
 
(
    Echo.
    Echo ******************************************************************************
    echo "%ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup"
    Dir /b "%ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup"
    Echo.
    Echo ******************************************************************************
)>>%TmpLogFile% 2>&1
 
(
    Echo ******************************************************************************
    Echo                              STARTUP List
    Echo ******************************************************************************
)>>%TmpLogFile% 2>&1
wmic /APPEND:%TmpLogFile% STARTUP get /format:list>Nul
(
    Echo.
    Echo ******************************************************************************
    Echo                               Process List
    Echo ******************************************************************************
)>>%TmpLogFile% 2>&1
powershell.exe Get-WmiObject Win32_Process ^| select ProcessID,ProcessName,Handle,commandline,ExecutablePath ^| Out-File -Append %TmpLogFile% -Encoding ascii
(
    Echo.
    Echo ******************************************************************************
    Echo                            Scheduled task list
    Echo ******************************************************************************
Schtasks /query /fo LIST
)>>%TmpLogFile% 2>&1
echo **************************************************NetWork Connections***************************************************************** >> %TmpLogFile%
echo *********************************************** Toutes les connexions **************************************************************** >> %TmpLogFile%
Netstat -abnov >> %TmpLogFile%
echo le contenu du fichier Hosts >> %TmpLogFile%
echo ************************************************************************************************************************************** >> %TmpLogFile%
Type %Windir%\System32\drivers\etc\hosts >> %TmpLogFile%
echo ******************************** List Software ***************************************>> %TmpLogFile%
wmic /Append:%TmpLogFile% product get name
echo *************************************************************************************************************************************** >> %TmpLogFile%
Cmd /U /C Type %TmpLogFile% > %LogFile%
Start "" %LogFile%
::*************************************************************************
:Trim <String>
(
    echo Wscript.echo Trim("%~1"^)
)>"%tmp%\%~n0.vbs"
for /f "delims=" %%a in ('Cscript /nologo "%tmp%\%~n0.vbs"') do (
    set "KeyName=%%a"
)
exit /b
::**************************************************************************
:PS_Sub $notifyicon $time $title $text $icon $Timeout
PowerShell  ^
  [reflection.assembly]::loadwithpartialname('System.Windows.Forms') ^| Out-Null; ^
 [reflection.assembly]::loadwithpartialname('System.Drawing') ^| Out-Null; ^
 $notify = new-object system.windows.forms.notifyicon; ^
  $notify.icon = [System.Drawing.SystemIcons]::%1; ^
  $notify.visible = $true; ^
  $notify.showballoontip(%2,%3,%4,%5); ^
  Start-Sleep -s %6; ^
  $notify.Dispose()
%End PowerShell%
exit /B
::*************************************************************************
::**********************************************
:Speak <msg>
Cls
echo(
(
echo  WScript.StdOut.Write +vbTab+"******************************************************************************" + vbcrlf
echo strText=wscript.arguments(0^)
echo intTextLen = Len(strText^)
echo intPause = 100
echo WScript.StdOut.Write vbTab
echo For x = 1 to intTextLen
echo     strTempText = Mid(strText,x,1^)
echo     WScript.StdOut.Write strTempText
echo     WScript.Sleep intPause
echo Next
echo wscript.echo vbcrlf +vbTab+ "******************************************************************************"
echo Set Voice=CreateObject("SAPI.SpVoice"^)
echo voice.speak strText
)>%tmp%\%~n0.vbs
@cscript.EXE /noLogo "%tmp%\%~n0.vbs" "%~1"
Exit /B
::**************************************************************





______________________________________________________
Mes Contributions en Téléchargement
Répondre en citant
Message Check de logiceil installé sur une machine 
tip top, merci!

faut que je me penche pour qu'il check si il y a un service qui est désactivé entre les deux lancement

encore merci



Répondre en citant
Message Check de logiceil installé sur une machine 
John22 a écrit:
tip top, merci!
faut que je me penche pour qu'il check si il y a un service qui est désactivé entre les deux lancement
encore merci

SVP veuillez préciser votre souhait !
C'est quoi le nom du processus et son chemin absolu que tu veux le checker ?




______________________________________________________
Mes Contributions en Téléchargement
Répondre en citant
Message Check de logiceil installé sur une machine 
Bonjour,

J'avais un peu laissé mon batch de cote, mais j'y retravaille un peu, mais je ne sais pas si c'est possible.

En fait, je dois faire un batch qui analyse un .exe précis, si celui ci se coupe par inadvertance, il doit me générer un mail avec un message d'erreur afin de me prévenir.

Est ce possible en batch ou dois je me diriger vers powershell?

Merci



Répondre en citant
Message Check de logiceil installé sur une machine 
BOn, j'ai déjà ca comme code:

@echo off
Set "MyProcess=XXX.exe"
echo "%MyProcess%"
tasklist /NH /FI "imagename eq %MyProcess%" 2>nul |find /i "%MyProcess%" >nul > Tasklist.txt
start "" Tasklist.txt
If not errorlevel 1 (Echo "%MyProcess%" est en cours d^'execution) else (start "" "%MyProcess%")

J'aurais besoin de modifier ce code, afin d'avoir un deuxieme ficier si le processus n'est pas lancé, pour la partie mail je vais passer par un autre programme



Répondre en citant
Message Check de logiceil installé sur une machine 
Ceci devrait te convenir parfaitement je pense Mr. Green
p.s. : le script sûr mesure ci-dessous a été fait par moi pour toi d'après ce que tu souhaites réaliser Okay Mr. Green


Voici les avantages et les fonctionnalités du code ci-dessous :
    - Très personnalisable ;
    - Fonction d'envoi de mail ;
    - Fonction de log ;
    - Moyennement optimisé (assez rapide) ;
    - Gestion des erreurs (Si le service est impossible a relancé -> un mail d'abandont pour tenter l'exécution est envoyé avec la date et l'heure ;
    - Programme très lisible et très compréhensif ;



ATTENTION : vérifie bien d'avoir modifier ces lignes avec tes info :
Code:
set account=you@gmail.com
set password_account=password
set receiver_account=receiver@domaine.tld

** Cela fonctionne que pour gmail, c'est-à-dire que le mail d'envoi doit provenir d'un de tes comptes GMAIL.
Quand au mail destinataire, il doit simplement exister et le mail destinataire n'est pas obligé d'être sous le domaine gmail.com


Le CODE COMPLET :
Code:
@echo off&setlocal EnableDelayedExpansion&chcp 28591 > nul
title Créé par Flammrock
 
 
set "sendmail=%~2"
if "!sendmail!"=="sendmail" call :SENDMAIL %~3 %~4 %~5 "" "" "%~8"
 
 
 
:: ################################## VAR
set "TempFile=temp.txt"
set account=you@gmail.com
set password_account=password
set receiver_account=receiver@domaine.tld
set list=^
 "chrome.exe"^
 "salut.exe"^
 "dfffdfd.exe"
:: ############################## End VAR
 



 
:: ################################## INITIALIZE
for /f "tokens=*" %%a in ('dir /b /a:-d *') do (
  set _temp=%%~nxa
  set _temp=!_temp:~0,25!
  if "!_temp!"=="STOP_{fG5EgoUhj563Dl1D4}_" del /Q "%%~nxa"
)
:: ############################## End INITIALIZE
 
 
 
:: ################################## SEND MAIL
call :SENDMAIL %account% %password_account% %receiver_account% "" "" "Commencement des vérifications des applications en exécutation a %time% le %date%"
:: ############################## End SEND MAIL
 
 
 
 
:: ################################## CHECK SERVICE IN VAR LIST
:loop
for %%a in (%list%) do (
  (
    echo;echo;   oui
    echo;echo;   ceci est un test
  )> "command_success.bat"
  (
    echo;chcp 28591 ^> nul
    echo;start /w /min "" call "%~nx0" "" sendmail %account% %password_account% %receiver_account% "" "" "%%~a s'est arrêté au environ de %time% le %date%."
    echo;if exist "%%~a" ^(
    echo;  start "" "%%~a"
    echo;  if not "%%errorlevel%%"=="0" ^(
    echo;    echo;.^> "STOP_{fG5EgoUhj563Dl1D4}_%%~a"
    echo;    start /w /min "" call "%~nx0" "" sendmail %account% %password_account% %receiver_account% "" "" "Impossible d'ouvrir %%~a : abandont de la tentation a exécuter %%~a. %%~a a été vérifié le %date% a %time%."
    echo;  ^)
    echo;^) else ^(
    echo;    echo;.^> "STOP_{fG5EgoUhj563Dl1D4}_%%~a"
    echo;    start /w /min "" call "%~nx0" "" sendmail %account% %password_account% %receiver_account% "" "" "%%~a est introuvable. %%~a a été vérifié le %date% a %time%."
    echo;^)
  )> "command_fail.bat"
  if not exist "STOP_{fG5EgoUhj563Dl1D4}_%%~a" call :CHECK %%~a "command_fail.bat" "command_success.bat"
)
goto :loop
:: ############################## End CHECK SERVICE IN VAR LIST
 
 
 
 
 
:: ################################## FUNCTION
:CHECK <Name_Process> <c:If_fail_call_this> <c:If_succed_call_this>
set "Process=%~1"
set /a nb=0
set "command_1=%~2"
set "command_2=%~3"
call :LOG "'!Process!' {"
tasklist /NH /FI "imagename eq !Process!" >nul > temp.txt&findstr /i "!Process!" "%TempFile%" >nul
if "!errorlevel!"=="0" (
  for /f %%b in ('type "%TempFile%"') do set /a nb+=1
  call :LOG "   Status : en cours d'exécution"
  call :LOG "   Nombre : !nb!"
  if not "!command_2!"=="" call "!command_2!"
) else (
  call :LOG "   Status : arrêt"
  if not "!command_1!"=="" call "!command_1!"
)
call :LOG "}"&echo;&del /Q temp.txt
goto :eof
 
 
 
:SENDMAIL <your_account@gmail.com> <password> <receiver_account@domaine.tld> <Subject> <Join_File> <message>
rem Modified code of sachadee (http://batch.xoo.it/p41579.htm)
set $Username='%~1'
set $Password='%~2'
set $to='%~3'
set $subject='%~4'
set $AttFile='%~5'
set $body='%~6'
set $SMTPServer='smtp.gmail.com'
set $SMTPPort='587'
echo;chcp 28591 ^> nul> sendmail.bat
echo;powershell.exe -command "$message = New-Object System.Net.Mail.MailMessage;$message.subject = %$subject%;$message.body = %$body%;$message.to.add(%$to%);$message.from = %$username%;$smtp = New-Object System.Net.Mail.SmtpClient(%$SMTPServer%, %$SMTPPort%);$smtp.EnableSSL = $true;$smtp.Credentials = New-Object System.Net.NetworkCredential(%$Username%, %$Password%);$att = new-object Net.Mail.Attachment(%$AttFile%);$message.Attachments.Add($att);$smtp.send($message)"^&exit>> sendmail.bat
start /w /min sendmail.bat&del /Q sendmail.bat
if "!sendmail!"=="sendmail" exit
goto :eof
 
 
 
:LOG <string>
set string=%~1
echo;!string!&echo;!string! >> log.txt
goto :eof
:: ################################## End FUNCTION





______________________________________________________
la vie est trop courte pour retirer le périphérique USB en toute sécurité...
Si la statue de la liberté lève le bras depuis 125 ans, c'est parce qu'elle cherche du réseau sur son Blackberry Torches...
Grâce à mon nouveau correcteur automatiste sur mon téléphage, je ne fais plus aucune faute d'orthodontie.
Quelqu'un a t il déjà demandé au drapeau japonais ce qu'il enregistre depuis tout ce temps ?
Visiter le site web du posteur
Répondre en citant
Message Check de logiceil installé sur une machine 
ouf, un énorme merci, ca va bien m'aider, super sympa!



Répondre en citant
Message Check de logiceil installé sur une machine 
Citation:
** Cela fonctionne que pour gmail, c'est-à-dire que le mail d'envoi doit provenir d'un de tes comptes GMAIL.
Tu peux modifier $SMTPServer en autre chose pour que ça marche autre part.

Pour avec l'adresse de ce serveur, tu devrais la trouver avec Thunderbird.




______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Message Check de logiceil installé sur une machine 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch