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 :

Creer A service (client microsoft)


Sujet :

VBScript

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Creer A service (client microsoft)
    Salut tt le monde,
    je souhaite automatiser l'ajout du client microsoft sur ds stations Windows_XP :
    je crois que c'est possible si j'arrive a creer et demarrer le service lanmanworkstation :

    Voici le script que j'utilise pr la creation du service :
    'install le service station de travail (client microsoft)

    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
    strComputer = "." 
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
    Set objShare =
    objWMIService.Get("Win32_Service.Name='LanmanWorkstation'")
     
    Set objInParam = objShare.Methods_("Create"). _
        inParameters.SpawnInstance_()
     
    objInParam.Properties_.Item("DesktopInteract") =  "false"
    objInParam.Properties_.Item("DisplayName") =  "Station de travail"
    objInParam.Properties_.Item("ErrorControl") =  1
    objInParam.Properties_.Item("LoadOrderGroup") =  "NetworkProvider"
    objInParam.Properties_.Item("Name") =  "lanmanworkstation"
    objInParam.Properties_.Item("PathName") =  "C:\WINDOWS\System32\svchost.exe -k netsvcs"
    objInParam.Properties_.Item("ServiceType") =  32
    objInParam.Properties_.Item("StartMode") =  "Automatic"
    objInParam.Properties_.Item("StartPassword") =  "NULL"
     
    Set objOutParams = objWMIService.ExecMethod("Win32_Service.Name='LanmanWorkstation'", "Create", objInParam)
    Wscript.Echo "Out Parameters: "
    Wscript.echo "ReturnValue: " & objOutParams.ReturnValue
    => l'exec. du script me retourne ce mssg d'erreur :
    (29,1) SwbemServiceEx : methode non valide

    quelqu'1 peut il m'aider a debugger ce script ou ajouter ce module 'client reseau miscrosoft' d'1 autre manier ???

  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 : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Remplace ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set objShare =
    objWMIService.Get("Win32_Service.Name='LanmanWorkstation'")
    par ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objWMIService.ExecQuery("SELECT * FROM Win32_Service WHERE Name = 'LanmanWorkstation'")
    (29,1) SwbemServiceEx : methode non valide
    29 est la ligne ou l'exception est levée.
    Ce serait sympas de nous dire laquelle c'est, parce que la il n'y que 22 lignes, donc pour deviner quelle est la 29 ligne c'est pas facile

    Sinon faux que j'aille au monoprix du coin me racheter une boule de crystal

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    oups, je n'ai pas tenu compte du n° de la ligne apres aoir supprimé ls commentaires lors du post.

    Effectivement, l'erreur est placé sr la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set objShare = objWMIService.Get("Win32_Service.Name='LanmanWorkstation'")
    Apres avoir corrigé par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set objshare = objWMIService.ExecQuery("SELECT * FROM Win32_Service WHERE Name = 'LanmanWorkstation'")
    j'obtiens : l'erreur a la ligne 13 =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set objInParam = objShare.Methods_("Create"). _
        inParameters.SpawnInstance_()
    cet objet ne gere pas cette propriete ou cette methode : 'objshare.Methods_'

  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 : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Ok c'est tes méthode qui sont fausses.
    Tu as pris un code VB6 ou VBA non ?
    Cela n'est pas la même chose en VBS, déjà pas de Get.

    Pour les clé de registre j'utilise une méthode s'appelant CreateKey après avoir obtenu l'objet utilisé.
    Tu dois avoir le même genre de chose pour Win32_Service.
    D'ailleurs c'est le cas, regarde ici.

    D'ailleurs c'est l'aide MSDN, tu as le glossaire des classe WMI, donc tu pourras tout corrigé toi même, car je pense que tu auras d'autre erreur du même genre jusqu'à ce que tu es tout modifié.

    Bon courage

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    le script a ete genere avc l'outil wmi code creator et en selectionnant le type de langage = vbscript.
    PAr contre, j'essaie avc 1 autre script recupéré sr le web mais le resultat n'est pas probant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ' install 1 services 
    Const OWN_PROCESS = 20
    Const NOT_INTERACTIVE = "false"
    Const NORMAL_ERROR_CONTROL = 1
     
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
     Set objService = objWMIService.Get("Win32_Service")
     errReturn = objService.Create("lanmanserver" ,"Serveur" , _
        "c:\windows\System32\svchost.exe -k netsvcs", OWN_PROCESS, NORMAL_ERROR_CONTROL,_
            "Automatic", NOT_INTERACTIVE, "NT AUTHORITY\LocalService", ""  )
    je precise qe je debute ds vbscript, alors si qlq1 peut m'aider a debugger ce script, je ss preneur.
    +
    Willy97

  6. #6
    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 : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Peux tu nous en dire un peu plus sur le résultat ?
    Une erreur ?
    Le service n'est pas créer ?

  7. #7
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    Salut,

    as-tu passer par une commande SC comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Set w=CreateObject("WScript.Shell")
    go=w.run("cmd.exe /c sc.exe config lanmanserver start=auto", 0, true)
    Oui CED600, je sais, je sais ...mais on ne se refait pas

    A++

  8. #8
    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 : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Citation Envoyé par RadPAT Voir le message
    Salut,

    as-tu passer par une commande SC comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Set w=CreateObject("WScript.Shell")
    go=w.run("cmd.exe /c sc.exe config lanmanserver start=auto", 0, true)
    Oui CED600, je sais, je sais ...mais on ne se refait pas

    A++


    Mais le service n'existe pas, il faut le créer avant.
    Là je te défis de me trouver les commandes dos pour créer un service !!!

  9. #9
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    Citation Envoyé par ced600 Voir le message


    Mais le service n'existe pas, il faut le créer avant.
    Là je te défis de me trouver les commandes dos pour créer un service !!!
    Tu as la commande INSTSRV dans le ressource kit :

    http://support.microsoft.com/kb/137890/fr


    A++

  10. #10
    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 : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    oui c'est vrai !

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Salut,
    je vs remercie les gars pr ls différents postes mais je pense qu'il est impossible d'installer le composant reseau : client reseau microsoft et le service lanmanserver (station de travail) qui est rattaché.
    enfin, moi j'y arrive pas...

    1er essai avc le script que j'ai posté au debut
    => resultat : erreur a la ligne Set objShare = objWMIService.Get
    pr creer 1 objet, je ne peux executer la methode : 'set objshare = objWMIService.ExecQuery' puisque le service est à creer

    2e essai avc le 2e script posté
    => resultat : aucune action n'est faite (pas de service crée)

    3e essai => avc la commande sc (service.bat)
    sc create lanmanworkstation binPath= "C:\WINDOWS\System32\svchost.exe -k netsvcs" type= share start= auto error= normal groupe= NetworkProvider DisplayName= Station de travail obj= LocalSystem
    => resultat : le service est crée mais il ne me demarre pas

    4e essai : comparaison des clefs de la base de registre (avant/apres install du client microsoft)
    => 1 partie du bloc du fichier differentiel n'est pas importé mais cette fois j'obtiens le composant installé ds ls prop. reseau et le service crée.
    a ce moment, ls scripts suivants renomme la station et la rattache au domaine SAMBA.
    a la fentre d'auth sr le domaine, impossible de se logguer => erreur inattendue...
    les clefs qui ne peuvent pas etre importées ds la base de regitre :
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ACPI]
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ACPI\PNP0401]
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ACPI\PNP0401\4&1506bb2e&0]
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_LANMANWORKSTATION]
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_LANMANWORKSTATION\0000]
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_LANMANWORKSTATION\0000\Control]
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_MRXSMB]
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_NETBIOS]
    ...
    je pense qu'elles ont dynamiques...
    Enfin, si quelqu' 1 a eu l'occaz de faire 1 script permettant l'ajout du compsant "client reseau microsoft" ca m'aiderait vraiment car la je m'arrache ls cheveux.
    willy97

  12. #12
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    regarde les permissions dans la base de registre: le compte SYSTEM peut écrire dans HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum
    Les autres comptes ont le droit de lecture

Discussions similaires

  1. Creer un service Web client
    Par roudoudouduo dans le forum Services Web
    Réponses: 6
    Dernier message: 08/04/2011, 17h33
  2. creer un web service client avec axis
    Par m3allem001 dans le forum Services Web
    Réponses: 1
    Dernier message: 06/06/2009, 23h46
  3. Réponses: 6
    Dernier message: 21/04/2009, 11h03
  4. créer un service windows
    Par t_om84 dans le forum Général Python
    Réponses: 1
    Dernier message: 19/04/2006, 12h26
  5. [installation] creer un service pour une bdd
    Par Chafaq dans le forum Oracle
    Réponses: 1
    Dernier message: 25/01/2006, 13h31

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