IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

création de fichiers sur un systéme samba


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 100
    Par défaut création de fichiers sur un systéme samba
    J'ai un script qui crée un fichier sur un disque.
    Si c'est local, cela fonctionne bien. Mais j'aimerais créer un fichier sur une partition samba. J'ai déclaré un lecteur réseau sur la machine qui lance le script mais je reçois l'erreur :
    Microsoft (R) Windows Script Host Version 5.6 Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. C:\Outils\WSH\test.vbs(21, 1) (null): Le mot de passe réseau spécifié est incorrect.
    Voici le script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    ' NewFileEC.vbs
    ' Sample VBScript to create a file with error-correcting Code
    ' Author Guy Thomas http://computerperformance.co.uk/
    ' Version 1.6 - June 2005
    ' ---------------------------------------------------------------'
     
    Option Explicit
    Dim objFSO, objFolder, objShell, objTextFile, objFile
    Dim strDirectory, strFile, strText
    strDirectory = "D:\test"
    strFile = "\Summer.txt"
    strText = MakePage("2")
     
    ' Create the File System Object
    Set objFSO = CreateObject("Scripting.FileSystemObject")
     
    ' Check that the strDirectory folder exists
    If objFSO.FolderExists(strDirectory) Then
       Set objFolder = objFSO.GetFolder(strDirectory)
    Else
    Set objFolder = objFSO.CreateFolder(strDirectory)
    WScript.Echo "Just created " & strDirectory
    End If
     
    If objFSO.FileExists(strDirectory & strFile) Then
    Set objFolder = objFSO.GetFolder(strDirectory)
    Else
    Set objFile = objFSO.CreateTextFile(strDirectory & strFile)
    Wscript.Echo "Just created " & strDirectory & strFile
    End If
     
    set objFile = nothing
     
    set objFolder = nothing
     
     
    ' OpenTextFile Method needs a Const value
    ' ForAppending = 8 (ecrire à la suite) ForReading = 1 (lire), ForWriting = 2 (ecrire en ecrasant le contenu initial)
    Const ForAppending = 2
     
    Set objTextFile = objFSO.OpenTextFile _
    (strDirectory & strFile, ForAppending, True)
     
    ' Writes strText every time you run this VBScript
    objTextFile.WriteLine(strText)
    objTextFile.Close
     
    'Corps du fichier
    Function MakePage(txtNumDM)  
    	Dim txtTemp
     
      txtTemp = txtNumDM & ";1"
     
      MakePage = txtTemp
    End Function
     
    WScript.Quit
    ' End of VBScript to create a file with error-correcting Code
    J'ai l'impression de ne pas être très loin pourtant.

    Est ce que quelqu'un a une idée ? passer des paramètres à ma ligne de commande qui lance le script ?

    Merci

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Je suppose un problème de droit pour la création du répertoire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set objFolder = objFSO.CreateFolder(strDirectory)
    Dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ' Check that the strDirectory folder exists
    If objFSO.FolderExists(strDirectory) Then
       Set objFolder = objFSO.GetFolder(strDirectory)
    Else
    Set objFolder = objFSO.CreateFolder(strDirectory)
    WScript.Echo "Just created " & strDirectory
    End If
    Met ton WScript.Echo juste au dessus pour être sur que tu passes dans le else, et qu'il tente bien de te créer le répertoire.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 100
    Par défaut
    Oui le pb est à la création ET à l'accession au répertoire s'il existe déjà effectivement

    J'ai retrouvé un poste de mai 2007 http://www.developpez.net/forums/sho...d.php?t=329931 sur le même pb et en fait je crois que c'est impossible...

    tant pis je vais prendre une autre techno

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    non ce n'est pas impossible.
    Il faut passer par le WMI et te connecter avec SWbemLocator sur ton poste, et puis à l'aide d'un des objets WMI accéder aux disques réseau.
    Connection par SWbemLocator :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    ' Full Computer Name
    ' can be found by right-clicking My Computer,
    ' then click Properties, then click the Computer Name tab)
    ' or use the computer's IP address
    strComputer = "FullComputerName" 
    strDomain = "DOMAIN" 
    Wscript.StdOut.Write "Please enter your user name:"
    strUser = Wscript.StdIn.ReadLine 
    Set objPassword = CreateObject("ScriptPW.Password")
    Wscript.StdOut.Write "Please enter your password:"
    strPassword = objPassword.GetPassword()
     
    Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
    Set objSWbemServices = objSWbemLocator.ConnectServer(strComputer, _
        "root\cimv2", _
         strUser, _
         strPassword, _
         "MS_409", _
         "ntlmdomain:" + strDomain)
    Set colSwbemObjectSet = _
        objSWbemServices.ExecQuery("Select * From Win32_Process")
    For Each objProcess in colSWbemObjectSet
        Wscript.Echo "Process Name: " & objProcess.Name 
    Next
    Je ne suis plus sur de l'objet, mais on en a parlé sur ce forum avec une recherche peut être que tu le trouveras.
    Regarde ici aussi, notemment cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" _
        & strComputer & "\root\cimv2")
    Set colDisks = objWMIService. _
        ExecQuery("Select * from Win32_MappedLogicalDisk")
    For Each objDisk in colDisks
        Wscript.Echo "Device ID: " & objDisk.DeviceID
        Wscript.Echo "Name: " & objDisk.Name
        Wscript.Echo "Free Space: " & objDisk.FreeSpace
        Wscript.Echo "Size: " & objDisk.Size
    Next
    Note : Oups j'ai pas vu que c'était un disque physique non réseau :
    ...determine how much free space is available on a drive?
    Use the Win32_LogicalDisk class and the FreeSpace property.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" _
        & strComputer & "\root\cimv2")
    Set colDisks = objWMIService.ExecQuery _
        ("Select * from Win32_LogicalDisk")
    For Each objDisk in colDisks
        Wscript.Echo "DeviceID: " & objDisk.DeviceID       
        Wscript.Echo "Free Disk Space: " _
            & objDisk.FreeSpace
    Next

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Identifier les raisons de la disparition d'un fichier sur un système.
    Par nixmind dans le forum Administration système
    Réponses: 1
    Dernier message: 28/04/2014, 10h33
  2. [Batch] Avoir le chemin d'un fichier sur le système
    Par freeway57 dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 28/11/2013, 16h08
  3. Création de fichier sur ext3
    Par bleporini dans le forum Administration système
    Réponses: 3
    Dernier message: 07/10/2008, 13h21
  4. Rechercher des fichiers sur son système
    Par Olivier Regnier dans le forum Applications et environnements graphiques
    Réponses: 5
    Dernier message: 17/03/2007, 21h35
  5. Réponses: 4
    Dernier message: 15/09/2005, 13h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo