angenoir999
Messages postés19Date d'inscriptionvendredi 25 août 2006StatutMembreDernière intervention 2 octobre 2008
-
31 janv. 2007 à 02:23
angenoir999
Messages postés19Date d'inscriptionvendredi 25 août 2006StatutMembreDernière intervention 2 octobre 2008
-
13 févr. 2007 à 01:42
Bonjour
voila j'ai un fichier excel ou j'ai les serveurs (colonne hostname) et les services (colonne service) que je dois testé (running), je le fait en a travers une commande dos utilisant "netsvc.exe", j'ai essayé aussi "sc" pareil.
En local cela fonctionne (iis est en authentifié windows) en local (testé des services sur la machine en local), mais des que je veux testé des machines du domaine je reçoit "error code 5 access".
J'ai essayé en donnant a iusr_machine, iwan_machine etc. les droits admin sur le répertoire du site, j'ai mis mon user (groupe admin domain) en tant que user anonyme ou user authentifié = toujours pareil.
si vous avez une idée.
je vous donne le code:
<% @language=vbscript %>
<% Response.Buffer = true %>
<%
Set MyShell = CreateObject("WScript.Shell")
Set MyFiles = CreateObject("Scripting.FileSystemObject")
Dim w,rs,Conn,y,x
'connection a la base de donnée
Set Conn = server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Server.MapPath(".") & "\servicetest.xls" & ";" & "Extended Properties=""Excel 8.0;HDR=YES;"""
Set rs = server.CreateObject("ADODB.Recordset")
rs.Open "Select * from nounou", Conn, 1, 3
rs.movefirst
do while not rs.eof
w = rs("hostname")
x = rs("service")
Set objWShell = CreateObject("WScript.Shell")
Set objCmd = objWShell.Exec("c:\netsvc " & x & " \" & w & " /query")
strPResult = objCmd.StdOut.Readall() set objCmd nothing: Set objWShell nothing
strPResult = replace(strPResult,"Service is stopped on \" & w,"1")
strPResult = replace(strPResult,"Service is running on \" & w,"2")
if strPResult = 1 then
rs("etat") = "arreté"
else
rs("etat") = "en cours"
end if
rs.movenext
Loop
'fermeture de la base et des connections creer
rs.close
set rs=nothing
Conn.close
set Conn=nothing
%>
Si une lumière avisé voit ma faute ou ces comments paramétré les droits pour que cela fonctionne je suis preneur, même les critiques (toutes critiques sont bonnes a prendre pour progresser).
SuperBouly
Messages postés410Date d'inscriptiondimanche 1 février 2004StatutMembreDernière intervention 8 mai 2010 31 janv. 2007 à 20:58
Bonjour,
Il faudrait déboguer ton code pour savoir quelle est la ligne qui provoque l'erreur( méthode générale). Au fait, tu développe avec quoi ?
A part ça, quelquefois, quand ça marche en local et pas dans le réseau, il y a du firewall dessous !
@+Gilles
angenoir999
Messages postés19Date d'inscriptionvendredi 25 août 2006StatutMembreDernière intervention 2 octobre 20081 8 févr. 2007 à 19:44
Bonjour
dans le code en gras
<% @language=vbscript %>
<% Response.Buffer = true %>
<%
Set MyShell = CreateObject("WScript.Shell")
Set MyFiles = CreateObject("Scripting.FileSystemObject")Dim w,rs,Conn,y,x
'connection a la base de donnée
Set Conn = server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Server.MapPath(".") & "\servicetest.xls" & ";" & "Extended Properties=""Excel 8.0;HDR=YES;"""
Set rs = server.CreateObject("ADODB.Recordset")
rs.Open "Select * from nounou", Conn, 1, 3
rs.movefirst
do while not rs.eof
w = rs("hostname")
x = rs("service")
Set objWShell = CreateObject("WScript.Shell")
Set objCmd = objWShell.Exec("c:\netsvc " & x & " \" & w & " /query")
strPResult = objCmd.StdOut.Readall() set objCmd nothing: Set objWShell nothing
strPResult = replace(strPResult,"Service is stopped on \" & w,"1")
strPResult = replace(strPResult,"Service is running on \" & w,"2")
if strPResult = 1 then
rs("etat") = "arreté"
else
rs("etat") = "en cours"
end if
rs.movenext
Loop
'fermeture de la base et des connections creer
rs.close
set rs=nothing
Conn.close
set Conn=nothing
%>
strPResult me renvoie le message suivant "Error code 5 Access denied".
le message d'erreur complet:
"
Erreur de compilation Microsoft VBScript error '800a0401'
Fin d'instruction attendue
/iisHelp/common/500-100.asp, line 11
Dim objASPError, blnErrorWritten, strServername, strServerIP, strRemoteIP Dim strMethod, lngPos, datNow, strQueryString, strURL
--------------------------------------------------------------------------^
angenoir999
Messages postés19Date d'inscriptionvendredi 25 août 2006StatutMembreDernière intervention 2 octobre 20081 9 févr. 2007 à 01:02
Bonjour
J'ai tout mis dans mon mail, ici ce n'est pas la ligne 37 qui nous interesse, c'est strPResultqui me renvoie le code "Error code 5 Access".
Mon problème est un problème de droit car je lui demande de regardé l'état d'un service sur un serveur du domaine et en retour il me répond ci-dessus, comme quoi mes droits ne sont pas assez étendu pour cette opération.
Mon problème c'est que je vois pas comment lancer la commande avec les droits qu'il faut, dans IIS je suis en authentification windows et mon compte est admin du domaine donc le problème doit pas venir de là.
angenoir999
Messages postés19Date d'inscriptionvendredi 25 août 2006StatutMembreDernière intervention 2 octobre 20081 11 févr. 2007 à 15:10
Bonjour
Bon, je crois que j'ai trouver, cela fonctionne chez moi, j'ai plus qu'a l'essayer au boulot.
Si cela fonctionne, j'aurais résolu un problème que tout le monde rencontre lorsqu'on veut faire un site en asp pour interagir avec les serveurs dans un domaine en faire sa surveillance etc...
tout cela pour un banal probleme de droit.
Si cela fonctionne je ne mettrais pas la soluce ici, mais j'en ferais un tutorial.