FileSystemObject ??

smathios Messages postés 24 Date d'inscription jeudi 26 juin 2003 Statut Membre Dernière intervention 6 octobre 2006 - 24 janv. 2006 à 10:25
nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013 - 25 janv. 2006 à 18:01
bonjour,

j'ai repris ce code pour afficher les espaces disqies de chacun de mes serveurs : http://www.macromedia.com/cfusion/knowledgebase/index.cfm?id=tn_18210

alors ça marche bien avec [file://localhost/ \\localhost] (<CFOBJECT TYPE="COM" ACTION="create" CLASS="Scripting.FileSystemObject" NAME="Application.fso" server="\\localhost">)

mais si pour l'argument server je mets une IP de serveur ou son nom ça me retourne toujours les espaces disques de mon serveur \\localhost...

est-il seulement possible de récupérer ces infos pour autre chose que le serveur local ou bien ai-je fait une erreur ?

Merci d'avance !

Mon code complet :

<style type="text/css">
<!--
.Style1 {
color: #FFFFFF;
font-weight: bold;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: x-small;
}
.Style2 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: x-small;
font-weight: bold;
color: #6666CC;
}
.Style3 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: x-small;
}
-->
</style>


<cfquery name="getServeurs" datasource="new-intranet">
SELECT *
FROM SERVEUR_RZO
ORDER BY NOM_SERVEUR_RZO
</cfquery>


<!--DWLayoutTable-->
----

Espaces disques des serveurs (GO),

<CFLOOP query=\"getServeurs\">

<!--- Uncomment the following line if you must delete the object from the
Application scope during debugging. Then restore the comments.
This technique is faster than stopping and starting the ColdFusion server. --->
<!--- <cfset structdelete(Application, \"fso\")> --->

<cfset serveur_en_cours = \"\\\" & #IP_SERVEUR_RZO#>

----

<cfoutput>#NOM_SERVEUR_RZO# #serveur_en_cours#</cfoutput>,

----

Lecteur,
Total,
Dispo,
Plein &agrave;,
Conclusion,

<cfapplication name=\"comtest\" clientmanagement=\"No\" Sessionmanagement=\"yes\">

<cfset fso_is_initialized = False>
<cflock scope=\"application\" type=\"readonly\" timeout=\"120\">
<cfset fso_is_initialized = StructKeyExists(Application, \"fso\")>
</cflock>
<cfif not fso_is_initialized >
<cflock scope=\"Application\" type=\"EXCLUSIVE\" timeout=\"120\">
<cfif NOT StructKeyExists(Application, \"fso\")>
<cfobject type=\"COM\" action=\"create\" class=\"Scripting.FileSystemObject\" name=\"Application.fso\" server=\"#serveur_en_cours#\">
</cfif>
</cflock>
</cfif>

<!--- Get the drives collection and loop through it to populate the
structure. --->
<cfset drives=Application.fso.drives()>
<cfset driveSpace=StructNew()>
<cfloop collection=\"#drives#\" item=\"curDrive\">
<!--- A DriveType of 2 indicates a fixed disk --->
<cfif curDrive.DriveType IS 2>
<!--- Use dynamic array notation with the drive letter for the struct key
--->
----

<cfoutput>#curDrive.DriveLetter#</cfoutput>,
<cfoutput>#NumberFormat(curDrive.totalsize/1073741824,"99.99")#</cfoutput>,
<cfoutput>#NumberFormat(curDrive.availablespace/1073741824,"99.99")#</cfoutput>,
<cfoutput>#NumberFormat(curDrive.availablespace/curDrive.totalsize*100,"99.99")#%</cfoutput>,
vert,

</cfif>
</cfloop>
</cfloop>

4 réponses

nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
24 janv. 2006 à 14:09
Cele me semble bizarre que tu puisses avoir des informations d'un autre serveur sans mettre au moins un loggin et un mot de passe.
As-tu essayé cette page sur le serveur en question?
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
24 janv. 2006 à 19:57
Bonjour,

Alors je n'ai jamais eu l'occasion de toucher à cet objet COM, mais il
semblerait que tu n'aies pas le droit d'interagir avec un autre serveur
que le localhost, ce qui est somme toute normal.

Imagine que tu tapes l'adresse d'un autre serveur qui t'est étrnager,
et que tu aies les infos utiles, ce serait un peu dangereux non ??

S.
0
smathios Messages postés 24 Date d'inscription jeudi 26 juin 2003 Statut Membre Dernière intervention 6 octobre 2006
25 janv. 2006 à 10:16
salut,

oui après réflexion ça peut sembler normal qu'on ne puisse pas récupérer des infos sur des machines distantes mais dans ce cas je ne comprends pas pourquoi dans la syntaxe du cfobject on ait le serveur :

<cfobject
type = "com"
action = "action"
class = "program_ID"
name = "text"
context = "context"
server = "server_name">

avec context à "remote" on peut préciser le serveur :


context,
Optional,
,

<LI>inproc
<LI>local
<LI>remote </LI>
On Windows: If not specified, uses Registry setting. ,
----

server,
Required if
context = "Remote"

,
,
Server name, using Universal Naming Convention (UNC) or Domain Name Serve (DNS) convention, in one of these forms:

<LI>\\lanserver
<LI>lanserver
<LI>http://www.servername.com
<LI>www.servername.com
<LI>127.0.0.1
</LI>
j'ai testé cette page sur un des serveurs, et il me renvoie bien les infos des disques du serveur...

bref, cette fonction aurait pu être intéressante mais si c'est juste pour récupérer les infos disque de la machine local, ça n'a pas trop d'intérêt...

merci quand même !
0
nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
25 janv. 2006 à 18:01
Hello,

pour répondre à ta question "je ne comprends pas pourquoi dans la syntaxe du cfobject on ait le serveur ", Scripting.FileSystemObject permet de connaître tout ce qui concerne les drivers, folders et files, d'une machine, cela comprend bien évidemment les drivers qui sont mappé sur ta machine, ce qui veut dire que si sur une machine tu maps le driver E: d'un répertoire ou de la racine d'un autre serveur ou machine, tu pourras tout savoir sur ce driver, il s'agit d'un driver virtuel pour lequel tu as des droits.

Si tu as un petit réseau chez toi, fait le test, tu fais un mapping d'une autre machine sur un driver X et tu verras que tu pourras avoir les infos.

J'espere avoir été claire dans mes explication.

Pour tout connaître sur ce composant http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/vbcn7/html/vbconintroductiontofilesystemobjectmodel.asp

Définition de microsoft : Driver :
Permet de réunir des informations relatives à un lecteur connecté au système, comme son nom de partage et sa quantité d'espace libre disponible. Notez que, dans le modèle FSO, un " lecteur " n'est pas obligatoirement un disque dur ; il peut s'agir d'un lecteur de CD-ROM, d'un disque virtuel, etc. Un lecteur n'est pas obligatoirement physiquement connecté au système, il peut être connecté logiquement par l'intermédiaire d'un réseau local.

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
0
Rejoignez-nous