Conversion Batch en VBS

Résolu
cs_rhunter Messages postés 3 Date d'inscription mercredi 27 octobre 2010 Statut Membre Dernière intervention 29 octobre 2010 - 27 oct. 2010 à 16:54
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 29 mai 2013 à 20:42
Bonjour,

Je souhaite et dois (pour mon entreprise) refaire un script que j'ai fait en batch en VBS, je n'y connais pas encore grand chose.

voici mon script en batch :

@title Nom du Service - N° de tél du Service
@echo off
mode con cols=65
mode con lines=45
net start winvnc
net stop sharedaccess
cls
echo.
@echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º Nom Ordinateur / Computer Name º
@echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
hostname             
echo ________________________
echo.
@echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º Nom Utilisateur / User Name º
@echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo %userdomain%\%username%
echo ________________________
echo.
@echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º Adresse IP / IP Adress º
@echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
ipconfig | find "IP"
echo ________________________
echo.
@echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º Numero de Serie / Serial Number º
@echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
wmic bios get serialnumber
echo ________________________
echo.
@echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º Modele Ordinateur / Computer Model º
@echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
wmic csproduct get name
echo ________________________
echo.
pause


Merci de bien vouloir m'aider pour sa conception en VBS.

--
L'urgent est fait, l'impossible est en cours,
Pour les miracles, prévoir un délai...

12 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
28 oct. 2010 à 11:23
Bonjour,
Voici un code en VBS qui liste sur une feuille Excel des infos sur le PC:

Set WSHShell = WScript.CreateObject("WScript.Network")
strComputer = WSHShell.ComputerName

'strComputer = InputBox ("Enter Machine Name")

Dim objWMIService

Set objExcel = CreateObject("Excel.Application")

objExcel.Visible = True

objExcel.Workbooks.Add

objExcel.Cells(1, 1).Value = "Name"

objExcel.Cells(2, 1).Value = "Caption"

objExcel.Cells(3, 1).Value = "Version"

objExcel.Cells(4, 1).Value = "Registered User"

objExcel.Cells(5, 1).Value = "Serial Number"

objExcel.Cells(6, 1).Value = "CSD Version"

objExcel.Cells(7, 1).Value = "Description"

objExcel.Cells(8, 1).Value = "Last Boot Up Time"

objExcel.Cells(9, 1).Value = "Local Date Time"

objExcel.Cells(10, 1).Value = "Organization"

objExcel.Cells(11, 1).Value = "Domain"

objExcel.Cells(12, 1).Value = "Manufacturer"

objExcel.Cells(13, 1).Value = "Model"

objExcel.Cells(14, 1).Value = "Number Of Processors"

objExcel.Cells(15, 1).Value = "Primary Owner Name"

objExcel.Cells(16, 1).Value = "System Type"

objExcel.Cells(17, 1).Value = "Total Physical Memory"

objExcel.Cells(18, 1).Value = "User Name"

objExcel.Cells(19, 1).Value = "Caption"

objExcel.Cells(20, 1).Value = "Manufacturer"

objExcel.Cells(21, 1).Value = "Name"

objExcel.Cells(22, 1).Value = "Release Date"

objExcel.Cells(23, 1).Value = "Serial Number"

objExcel.Cells(24, 1).Value = "SMBIOS BIOS Version"

objExcel.Cells(25, 1).Value = "Version"

Set objWMIService = GetObject("winmgmts:\" & strComputer & "\root\cimv2")

Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")

For Each objItem in colItems

objExcel.Cells(1, 2).Value = objItem.CSName

objExcel.Cells(2, 2).Value = objItem.Caption

objExcel.Cells(3, 2).Value = objItem.Version

objExcel.Cells(4, 2).Value = objItem.RegisteredUser

objExcel.Cells(5, 2).Value = objItem.SerialNumber

objExcel.Cells(6, 2).Value = objItem.CSDVersion

objExcel.Cells(7, 2).Value = objItem.Description

objExcel.Cells(8, 2).Value = objItem.LastBootUpTime

objExcel.Cells(9, 2).Value = objItem.LocalDateTime

objExcel.Cells(10, 2).Value = objItem.Organization

Next

Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem")

For Each objItem in colItems

objExcel.Cells(11, 2).Value = objItem.Domain

objExcel.Cells(12, 2).Value = objItem.Manufacturer

objExcel.Cells(13, 2).Value = objItem.Model

objExcel.Cells(14, 2).Value = objItem.NumberOfProcessors

objExcel.Cells(15, 2).Value = objItem.PrimaryOwnerName

objExcel.Cells(16, 2).Value = objItem.SystemType

objExcel.Cells(17, 2).Value = (objItem.TotalPhysicalMemory /1024) & "MB"

objExcel.Cells(18, 2).Value = objItem.UserName

Next

Set objWMIService = GetObject("winmgmts:\" & strComputer & "\root\cimv2")

Set colItems = objWMIService.ExecQuery("Select * from Win32_BIOS")

For Each objItem in colItems

objExcel.Cells(19, 2).Value = objItem.Caption

objExcel.Cells(20, 2).Value = objItem.Manufacturer

objExcel.Cells(21, 2).Value = objItem.Name

objExcel.Cells(22, 2).Value = objItem.ReleaseDate

objExcel.Cells(23, 2).Value = objItem.SerialNumber

objExcel.Cells(24, 2).Value = objItem.SMBIOSBIOSVersion

objExcel.Cells(25, 2).Value = objItem.Version

Next

objExcel.Range("A1:A25").Select

objExcel.Selection.Font.ColorIndex = 11

objExcel.Selection.Font.Bold = True

objExcel.Cells.EntireColumn.AutoFit

MsgBox "Terminé"


Vous copier le code dans un fichier VBS. Si vous avez un problème envoyez-moi votre e-mail sur MP et je vous le ferez parvenir

@+Le Pivert
3
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
28 oct. 2010 à 12:04
Voici en complément l'adresse IP:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "!\" & strComputer & "\root\cimv2" )
Set colAdapters objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled True" )
For Each objAdapter in colAdapters

    IPdebut = LBound(objAdapter.IPAddress)
    IPfin = UBound(objAdapter.IPAddress)
    If (objAdapter.IPAddress(IPdebut) <> "" ) then
   

        For i = IPdebut To IPfin
                msg = msg & "utilise l'adresse IP " & objAdapter.IPAddress(i) & vbCrLf
        Next   
       
    End If
Next


Wscript.Echo msg
 



@+ Le Pivert
3
cs_rhunter Messages postés 3 Date d'inscription mercredi 27 octobre 2010 Statut Membre Dernière intervention 29 octobre 2010
28 oct. 2010 à 13:09
Merci Le Pivert,

Dans un premier temps je n'arrive pas, ou je dirais plus que je ne sais pas ou rajouter le complément pour l'adresse IP.

Et sinon ton code est très très bien mais c'est pour une utilisation support user et je n'ai besoin que des information que mon .BAT communique sans le reste et surtout dans une fenêtre que l'utilisateur ou moi même pouvons fermer comme avec le .bat

http://yfrog.com/mvsanstitrewdp</code>


Je te remercie encore pour ton aide.

Cdt,

--
Rhunter,
L'urgent est fait, l'impossible est en cours,
Pour les miracles, prévoir un délai...
3
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
28 oct. 2010 à 18:15
Voici le code avec les infos que tu veux:

strComputer = "."

Set objWMIService = GetObject("winmgmts:\" & strComputer & "\root\cimv2")

Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")

For Each objItem in colItems
msg = msg & "Nom de l'ordinateur: " & vbCrLf & objItem.CSName & vbCrLf & vbCrLf
msg = msg & "Numéro de série: " & vbCrLf & objItem.SerialNumber & vbCrLf & vbCrLf
Next

Set objWMIService = GetObject("winmgmts:" & "!\" & strComputer & "\root\cimv2" )
Set colAdapters objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled True" )
For Each objAdapter in colAdapters

    IPdebut = LBound(objAdapter.IPAddress)
    IPfin = UBound(objAdapter.IPAddress)
    If (objAdapter.IPAddress(IPdebut) <> "" ) then
   

        For i = IPdebut To IPfin
                msg = msg & "utilise l'adresse IP " & vbCrLf & objAdapter.IPAddress(i) & vbCrLf & vbCrLf
        Next   
       
    End If
Next

Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
For Each objItem in colItems
msg = msg & "Modèle de l'ordinateur: " & vbCrLf & objItem.Model & vbCrLf & vbCrLf
msg = msg & "Nom de l'utilisateur: " & vbCrLf & objItem.UserName & vbCrLf & vbCrLf
Next

Wscript.Echo msg
 


Maintenant si tu veux des touches comme sur le site que tu m'as indiqué il faudra faire cela en VBA Excel sur un UserForm car je ne sais pas le faire en VBS

@+ Le Pivert
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_rhunter Messages postés 3 Date d'inscription mercredi 27 octobre 2010 Statut Membre Dernière intervention 29 octobre 2010
29 oct. 2010 à 10:56
Encore merci pour tout Le Pivert

C'est tout à fait ça, maintenant a moi de bien l'étudier et d'apporter des modifs si besoin.

Cordialement,

--
Rhunter,
L'urgent est fait, l'impossible est en cours,
Pour les miracles, prévoir un délai...
3
salut l’amie
es ce que tu peut m'aider,,, j'ai vu ton scripte vbs et il est très bien
sauf que moi je cherche la même chose avec le php
es ce que tu peut m'aider, j'ai fait quelque recherche et j'ai trouver que avec le dos il existe sa : wmic csproduct et il affiche plein de truc

et donc le bute c'est de réaliser une application php que j'utiliserai directement a travers un espace héberger dans mon site pour récolter les infos des ordinateur un par un a chaque fois que j’exécuterai la page qui contiendra le code php
ensuite je reçois un mail directement avec les donner
sauf que il me manque le nemero de serie de l'ordinateur comme avec la commande wmic csproduct
dans un premier temp j'ai put réaliser sa :

visiteur.php (la page a lancer sur pc )
ip-track.txt (le ficheir qui centiendra les info)
ip-track.php

les codes source php
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
visiteur.php

<?
include ("ip_track.php");
?>
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
ip-track.php

<?php
// Nom du fichier des logs
$fichier="ip-track.txt";
$fp=fopen("$fichier","a");
// Donne la date et l'heure française
$Jour = array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
$Mois = array("","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
$date = $Jour[date("w")]." ".date("d")." ".$Mois[date("n")]." ".date("Y");
$heure = gmdate("H \h i", mktime(date("H")+1,date("i")));
$fsz=filesize("$fichier");
// Récupère l'IP et le FAI du visiteur (même si proxy)
$ip_visiteur = (getenv("HTTP_X_FORWARDED_FOR") ? getenv("HTTP_X_FORWARDED_FOR") : getenv("REMOTE_ADDR"));
$fai_visiteur = gethostbyaddr("$REMOTE_ADDR");
// Reccupere le port
$port = $_SERVER['REMOTE_PORT'];
fseek($fp,$fsz);
// Reccuperer le login
$login=$_SERVER['PHP_AUTH_USER'];
// Reccupere données navigateur
$referer = getenv("HTTP_USER_AGENT");
// Enregistre les données
fputs($fp,"Le: $date à $heure\n | IP: $ip_visiteur | Port: $port | Login: $_SERVER | FAI du visiteur: $fai_visiteur | Navigateur: $referer");
fclose($fp);
// Infos perso
$email="monmail@gmail.com";
$titre="Visiteurs | Nouveau visiteur | Info";
$messag="Un visiteur vient de passer sur notre site.

SECURITE INFORMATIQUE
Infos du concerné :
- Le : $date à $heure
- IP : $ip_visiteur
- Port : $port
- Login : $_SERVER
- FAI : $fai_visiteur
- Navigateur: $referer
Fin d'informations.";
// Espion interne
// envoi un mail
// pour désactiver, (spam si plus de 50 visites) ajouter
// deux slash devant la fonction mail() --> "//"
mail($email,$titre,$messag);
?>
-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
22 mai 2013 à 15:31
Bonjour,

Je suis désolé, mais je ne connais rien en php. Pose ta question à cette adresse:

http://www.phpcs.com/infomsg.aspx?ajout=1

@+ Le Pivert
0
je te remerci

es ce que si je met le fichier vbs directement dans mon espace hebergement sa va fonctionner ?

si-oui
es ce que tu peut rajouter le skripte qui enregistre le fichier excel directement a la racine ou le fichier vbs se lance sans ouverture du fichier excel (mode silencieu)


merci
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
22 mai 2013 à 18:12
Pour ne pas voir le fichier Excel il faut changer:

objExcel.Visible = True
en
objExcel.Visible = False

C'est tout ce que je peux t'indiquer. Pour le reste je ne sais pas!

@+ Le Pivert
0
es ce que il ya un moyen de transmettre les infos directement ver un adresse mail ???
0
es ce que sa serai possible d'ajouter un scripte vbs pour recevoir directement les donnés récolter par mail a une adresse incorporer dans le scripte et tous sa sans l'ouverture d'une page excel . ??
merci
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
29 mai 2013 à 20:42
Tu devrais ouvrir un nouveau post pour cette demande, car je ne peux pas y répondre.


@+ Le Pivert
0
Rejoignez-nous