Voila mon pb, j'utilise le script suivant pour afficher l'adresse IP et nom d'hôte de la machine et cela fonctionne très bien mais je voudrais que la boite de dialogue affiche également de nom de la session en cours contenu dans la variable %SESSIONNAME% lorsque l'on exécute la commande set sous dos
Ma question comment utiliser la variable dos %SESSIONNAME% en vbs
on error resume next
set IPConfigSet = GetObject("winmgmts:{impersonationLevel=impersonate}!//" & Computer).ExecQuery _
("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=TRUE")
If Err.Number<>0 Then
wscript.echo " - non accessible -"
Else
for each IPConfig in IPConfigSet
wscript.echo " Configuration réseau du terminal " & computer & vbcrlf & vbcrlf & _
" Adresse IP " & vbtab & " : " & IPConfig.IPAddress(0) & vbcrlf & _
" DNSHostName " & vbtab & " : " & IPConfig.DNSHostName
" Session Name " & vbtab & " : " ??????????????????
Next
End If
cs_xelanet
Messages postés2Date d'inscriptionmercredi 25 août 2004StatutMembreDernière intervention 3 juin 2007 3 juin 2007 à 15:44
Un peut tard mais..... voici 2 solutions.....
Peut-être pour quelqu'un d'autre....
La variable d'environnement %SESSIONNAME% est une variable d'environnement volatile.
En vbs :
Dim wshShell, objEnv, strSessionName
Set wshShell = Wscript.CreateObject("Wscript.Shell")
Set objEnv = wshShell.Environment("VOLATILE")
strSessionName = objEnv("SESSIONNAME")
' et hop
msgbox " Session Name " & vbtab & " : " &strSessionName
Les variables volatiles sont inscritent dans le registre sous la clé:
"HKCU\Volatile Environment". Chaque variable volatile y possède un nom de valeur et une valeur qui correspond respectivement au nom de la variable et à sa valeur.
Soit toujours en vbs:
Const REG_VOLATILE = "HKCU\Volatile Environment"
Dim wshShell, strSessionName
Set whsShell = Wscript.CreateObject ("Wscript.Shell")
On Error Resume Next
strSessionName = wshShell.RegRead (REG_VOLATILE & "SESSIONNAME")
On Error Goto 0
' et hop
msgbox " Session Name " & vbtab & " : " & strSessionName
Remarque:
L'instruction On Error Resume Next qui active la gestion d'erreur est appellée avant de lire la valeur, ainsi si le nom de valeur n'existe pas (tous les système Windows ne dispose pas forcement cette variable d'environnement), une chaine vide est retournée (comme dans le premier script). Après la lecture de la valeur, l'instruction On Error Goto 0 est ensuite exécutée pour désactivé la gestion d'erreur.
cs_xelanet
Messages postés2Date d'inscriptionmercredi 25 août 2004StatutMembreDernière intervention 3 juin 2007 3 juin 2007 à 16:00
Pssst....
Dans la première solution, la variable %SESSIONNAME% peut aussi être récupérée avec un type PROCESS, remplacer la ligne 3 par :
Set objEnv = wshShell.Environment("PROCESS")