Pour ceux qui pourraient être interessés, voici une petite liste de script .vbs pouvant être utile pour la configuration/optimisation d’une session Windows XP et 2 exemples de scripts, mais il y en as des tonnes sur le net. Je ne m'étendrais pas plus sur le sujet puisque c'est un forum Panoramic et non vbs, mais ça donne une étendue des possibilités particulières que l'on peut utiliser en liaisons avec Panoramic sans passer par des DLL:
■Désactiver l’assistant nettoyage bureau :
WScript.CreateObject("WScript.Shell").RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\policies\Explorer\NoDesktopCleanupWizard", 1, "REG_DWORD"
■Affiche les fichiers et dossiers cachés :
WScript.CreateObject("WScript.Shell").RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden", 1, "REG_DWORD"
■Affiche les fichiers protégés du système d’exploitation :
WScript.CreateObject("WScript.Shell").RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ShowSuperHidden", 1, "REG_DWORD"
■Affiche les extensions des fichiers dont le type est connu :
WScript.CreateObject("WScript.Shell").RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt", 0, "REG_DWORD"
■Affiche « Favoris réseau » dans le menu démarrer :
WScript.CreateObject("WScript.Shell").RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_ShowNetPlaces", 1, "REG_DWORD"
■Affiche « Connexion réseau » dans le menu démarrer :
WScript.CreateObject("WScript.Shell").RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_ShowNetConn_ShouldShow", 65, "REG_DWORD"
WScript.CreateObject("WScript.Shell").RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_ShowNetConn", 2, "REG_DWORD"
■Affiche la barre de lancement rapide :
Option Explicit
Dim ShellObject</pre>
Set ShellObject=WScript.CreateObject("WScript.Shell")
ShellObject.Run("rundll32.exe shell32.dll,Options_RunDLL 1")
WScript.Sleep 200
ShellObject.AppActivate "Taskbar and Start Menu Properties"
ShellObject.SendKeys "%Q"
WScript.Sleep 200
ShellObject.AppActivate "Taskbar and Start Menu Properties"
ShellObject.Sendkeys"%A"
WScript.Sleep 100
ShellObject.AppActivate "Taskbar and Start Menu Properties"
ShellObject.Sendkeys"%L"
ShellObject.AppActivate "Taskbar and Start Menu Properties"
ShellObject.Sendkeys"{ENTER}"
■Affichage classique du panneau de configuration :
WScript.CreateObject("WScript.Shell").RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\policies\Explorer\ForceClassicControlPanel", 1, "REG_DWORD"
■Affiche « Favoris réseau » dans le menu démarrer :
WScript.CreateObject("WScript.Shell").RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_ShowNetPlaces", 1, "REG_DWORD"
■Affiche « Poste de travail » sur le bureau :
WScript.CreateObject("WScript.Shell").RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel\{20D04FE0-3AEA-1069-A2D8-08002B30309D}", 0, "REG_DWORD"
■Affiche « Mes documents » sur le bureau :
WScript.CreateObject("WScript.Shell").RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel\{450D8FBA-AD25-11D0-98A8-0800361B1103}", 0, "REG_DWORD"
■Affiche « Favoris réseau » sur le bureau :
WScript.CreateObject("WScript.Shell").RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel\{208D2C60-3AEA-1069-A2D7-08002B30309D}", 0, "REG_DWORD"
■Affiche «
www.google.fr » en page de démarrage sur IE :
WScript.CreateObject("WScript.Shell").RegWrite "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page", "http://www.google.fr", "REG_SZ"
--------------------------
Lire dans l'observateur d'événements
Par Semifer, mardi 2 mars 2010 à 00:51 :: Scripting :: #61 :: rss
Voilà un script permettant de lire le journal des événements, dans notre exemple toutes les erreurs survenues dans les rubriques "Application" et "Système". Il est deviendra alors très aisé d'exporter ces logs via l'objet Scripting.fileSystemObject.
Set objWMIServices = GetObject _
("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set objWMIObjectSet = objWMIServices.ExecQuery _
("Select * from Win32_NTLogEvent Where (LogFile='Application' Or LogFile='system') And Type='erreur'")
For Each objWMIObject In objWMIObjectSet
wscript.echo "Ordinateur: " & objWMIObject.ComputerName
wscript.echo "Fichier EVT: " & objWMIObject.LogFile
wscript.echo "Type: " & objWMIObject.Type
wscript.echo "Date: " & _
mid(objWMIObject.TimeGenerated,7,2) & "/" & _
mid(objWMIObject.TimeGenerated,5,2) & "/" & _
mid(objWMIObject.TimeGenerated,1,4)
wscript.echo "Source: " & objWMIObject.SourceName
wscript.echo "ID événement: " & objWMIObject.EventCode
wscript.echo "Utilisateur: " & objWMIObject.User
wscript.echo "Numéro d'enregistrement: " & objWMIObject.RecordNumber
wscript.echo vbcrlf & "Message: " & vbcrlf & objWMIObject.Message
wscript.echo "------------------------------"
Next
-------------------------
Vbs Ip Scanner
voilà le script:
'|------------------------------------------------------------------------------------------------------------------------
'|VIS - Vbs Ip Scanner v1.2
'|Par Semifer - 08/10/2009
'|------------------------------------------------------------------------------------------------------------------------
'|Licence:
http://creativecommons.org/licenses/by-nc-sa/2.0/fr/'|------------------------------------------------------------------------------------------------------------------------
'|Usage: vis /f:[first_ip] /l:[last_ip] /v:[level 0-2] /c:[cmd] /s:[silent 0-1]-|
'|Exemple: vis /f:192.168.0.1 /l:192.168.0.254 /v:1
'|------------------------------------------------------------------------------------------------------------------------
'---Erreurs en mode "manuel"
On Error Resume Next
'---Declarations
Dim verboseMode : verboseMode = 0
Dim silentCmd : silentCmd = 0
Dim cmd
'---Arguments du script
Set args = WScript.Arguments
'---Aide
If args(0) = "/?" or args.count < 2 Then
WScript.echo vbcrlf & "Usage: vis /f: /l: " & _
"[/v: /c:]"
WScript.echo vbcrlf & _
"/f First IP" & vbcrlf & _
"/l Last IP" & vbcrlf & _
"/v Verbose mode. Can be 0 to 2 (default 0), optional." & vbcrlf & _
"/c Execute a command for each IP found." & vbcrlf & _
"/s Silent command execution mode (default 1, disabled). 0 or 1, optional."
WScript.echo vbcrlf & "Ex: vis /f:192.168.0.1 /l:192.168.0.254"
WScript.echo " vis /f:192.168.0.1 /l:192.168.0.254 /v:1"
WScript.echo " vis /f:192.168.0.1 /l:192.168.0.254 " & _
"/c:""nmap -sS -O %ip% >> c:\scanlog.txt"""
WScript.quit
End If
'---Arguments facultatifs
If args.Named("v") Then
If args.Named("v") = "0" Then verboseMode = 0
If args.Named("v") = "1" Then verboseMode = 1
If args.Named("v") = "2" Then verboseMode = 2
End If
If args.Named("c") Then
cmd = args.Named("c")
End If
If args.Named("s") Then
If args.Named("s") = "0" Then silentCmd = 0
If args.Named("s") = "1" Then silentCmd = 1
End If
'---Arguments obligatoires
If args.Named("f") and args.Named("l") Then
scan args.Named("f"), args.Named("l")
Else
WScript.echo vbcrlf & "VIS error: Paramètres incorrects"
End If
If err<>0 Then WScript.echo "VIS error: (" & err.number & ") " & err.description
WScript.echo "VIS event: End"
'---Fonction scanner
Function scan(fIP,lIP)
WScript.echo vbcrlf & "VIS event: Start scan " & fIP & " > " & lIP
'IP de départ et IP de fin
fIP = Split(fIP,".")
lIP = Split(lIP,".")
If UBound(fIP)<3 or UBound(lIP)<3 Then
WScript.echo "VIS error: IP incorrecte(s)"
WScript.echo "VIS event: End"
WScript.quit
End If
'---Déclarations
Dim firstIP, lastIP, currentIP
Dim o1, o2, o3, o4
Dim octet1, octet2,octet3,octet4
firstIP = Array(cint(fIP(0)),cint(fIP(1)),cint(fIP(2)),cint(fIP(3)))
lastIP = Array(cint(lIP(0)),cint(lIP(1)),cint(lIP(2)),cint(lIP(3)))
err = 0
'Initialisation
o1=firstIP(0)
o2=firstIP(1)
o3=firstIP(2)
o4=firstIP(3)
'Scan IP par plages
For octet1 = firstIP(0) To lastIP(0)
For octet2 = firstIP(1) To lastIP(1)
If octet2 "" Then
execute cmd, currentIP
End If
If octet3 = 255 and octet4 = 254 Then
If octet20 Then
Select Case(verboseMode)
Case 1:
WScript.echo "VIS reply: " & strIP & " is unreachable."
Case 2:
WScript.echo "VIS reply: " & strIP & " : " & _
GetStatusCode(objStatus.StatusCode)
End Select
ping = False
Else
Select Case(verboseMode)
Case 0:
WScript.echo "VIS reply: " & strIP & " is UP."
Case 1:
WScript.echo _
"VIS reply: " & objStatus.ReplySize & _
" bytes from " & strIP & _
" : ttl=" & objStatus.ResponseTimeToLive & _
" time=" & objStatus.ResponseTime & "ms"
Case 2:
WScript.echo _
"VIS reply: " & strIP & " : " & _
GetStatusCode(objStatus.StatusCode) & " : " & _
objStatus.ReplySize & " bytes" & _
" : ttl=" & objStatus.ResponseTimeToLive & _
" : time=" & objStatus.ResponseTime & "ms"
End Select
ping = True
End If
Next
End Function
Function execute(command,ip)
Set wshShell = CreateObject("Wscript.Shell")
Dim com : com = replace(command,"%ip%",ip)
WScript.echo "VIS event: " & com
wshShell.run "cmd /c " & com, silentCmd, True
Set wshShell = Nothing
End Function
Function GetStatusCode(statusCode)
Dim cStatus
Select Case(statusCode)
case 0:
cStatus = "Success"
case 11001:
cStatus = "Buffer Too Small"
case 11002:
cStatus = "Destination Net Unreachable"
case 11003:
cStatus = "Destination Host Unreachable"
case 11004:
cStatus = "Destination Protocol Unreachable"
case 11005:
cStatus = "Destination Port Unreachable"
case 11006:
cStatus = "No Resources"
case 11007:
cStatus = "Bad Option"
case 11008:
cStatus = "Hardware Error"
case 11009:
cStatus = "Packet Too Big"
case 11010:
cStatus = "Request Timed Out"
case 11011:
cStatus = "Bad Request"
case 11012:
cStatus = "Bad Route"
case 11013:
cStatus = "TimeToLive Expired Transit"
case 11014:
cStatus = "TimeToLive Expired Reassembly"
case 11015:
cStatus = "Parameter Problem"
case 11016:
cStatus = "Source Quench"
case 11017:
cStatus = "Option Too Big"
case 11018:
cStatus = "Bad Destination"
case 11032:
cStatus = "Negotiating IPSEC"
case 11050:
cStatus = "General Failure"
Case Else:
cStatus = "Unknown"
End Select
GetStatusCode = cStatus
End Function
Je vous copie colle l'aide de l'outil:
W:\Projets\Scripts\vis>vis /?
Usage: vis /f:ip_start /l:ip_end [/v:level 0-1 /c:command]
/f First IP
/l Last IP
/v Verbose mode. Can be 0 to 2 (default 0), optional.
/c Execute a command for each IP found.
/s Silent command execution mode (default 1, disabled). 0 or 1, optional.
Ex: vis /f:192.168.0.1 /l:192.168.0.254
vis /f:192.168.0.1 /l:192.168.0.254 /v:1
vis /f:192.168.0.1 /l:192.168.0.254 /c:"nmap -sS -O %ip% >> c:\scanlog.txt"
Un scan simple et non verbeux:
vis /f:192.168.0.1 /l:192.168.0.254
Un scan simple avec mode verbeux "moyen":
vis /f:192.168.0.1 /l:192.168.0.254 /v:1
Un scan avec exécution de commande et mode verbeux complet:
vis /f:192.168.0.1 /l:192.168.0.254 /c:"nmap -sS -O %ip% >> c:\scanlog.txt" /v:2
Dans ce dernier exemple, il convient de décrire un peu mieux ce qu'il se passe. La commande /c: permet d'exécuter une commande DOS ou un exe de son choix en lui passant des variables. Dans l'exemple, on voit %ip% ce qui correspond à la dernière IP ayant répondue. On peut donc pour chaque ip trouvée lancer une commande sur cette dernière. Dans l'exemple ci-dessus le mode d'exécution de la commande n'est pas silencieux et ouvre une fenêtre DOS supplémentaire. Il est possible de désactiver cet affichage avec:
vis /f:192.168.0.1 /l:192.168.0.254 /c:"nmap -sS -O %ip% >> c:\log.txt" /v:2 /s:0
Ça permet d'avoir un mode silencieux, surtout quand tout est redirigé dans un fichier texte. J'ai préféré le désactiver par défaut.
Pour le mode verbeux, les différences sont:
mode 0: Mode simple, n'affiche que les ip trouvées sans plus d'infos
mode 1: Affiche les bytes retournés, le ttl et le temps de réponse pour les machines trouvées, affiche aussi les ip qui ne répondent pas.
mode 2: En plus des fonctions précédentes, affiche le statut du ping (les codes d'erreur/succès sont traduis, voir le code)
Petit détail, vous pouvez utiliser les arguments du script dans l'ordre que vous voulez, ça n'a aucune importance .