Précédent   Forum des professionnels en informatique > Autres langages > Général Visual Basic 6 et VBScript > VBScript
VBScript Le forum d'entraide sur VBScript. Avant de poster -> La FAQ VBScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/02/2012, 11h29   #1
Invité de passage
 
Inscription : janvier 2012
Messages : 6
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 6
Points : 0
Points : 0
Par défaut execution d'une tache Wmi - permission refusé

Bonjour

j'éssai d'éxécuter une tache WMI via un script vbs depuis un serveur A vers un serveur B
.

Le but est de créer un repertoire sur le serveur B

Voici le code:

Code :
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
 
Dim objWMIService, nResult
 
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & shareserver & "\root\cimv2" )
 
 
   '-- create a local folder
nResult = CreateLocalFolder(objWMIService, sharepath)
    If (nResult <> 0) Then
        Err.Raise 1, "Local folder creation error = " & nResult
        Exit Sub
End If
 
 
 
 
'******************************************************************
' CreateLocalFolder - creates a new local folder
' ----------
' objWMIService - WMI serice instance
' sharepath - path to local folder, for ex.: "C:\MyFolder"
' ----------
' return value - Error code. O for OK
 
Function CreateLocalFolder(ByRef objWMIService, ByVal sharepath)
    Dim objProcess, nProcessId, nResult
 
    Set objProcess = objWMIService.Get("Win32_Process")
 
    ' --- try to start a process for a folder creation
    nResult = objProcess.Create("cmd.exe /c md " & sharepath, Null, Null, nProcessId)
 
    If (nResult <> 0) Then
        CreateLocalFolder = nResult
        Exit Function
    End If
 
    Dim arrItems, objItem, boolFound
 
    ' --- wait for folder creation completion
    Do While (True)
        Set arrItems = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE ProcessId=" & nProcessId)
 
        boolFound = False
        For Each objItem In arrItems
            boolFound = True
            Exit For
        Next 
 
        If (boolFound = False) Then Exit Do
    Loop
 
    CreateLocalFolder = 0
End Function

Le vbs fonctionne correctement tant qu'il est executé par un utilisateur du domaine où sont situés les serveurs.
Mais je cherche à lancer ce vbs par un utilisateurs d'un autre domaine
D'ou le problème de permission.!!


Je ne sais pas quoi ajouter à la ligne suivante, pour spécifier un utilisateur et mot de passe
Code :
1
2
3
 
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & shareserver & "\root\cimv2" )
benzurebebe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 16h49   #2
Membre éclairé
 
Inscription : août 2007
Messages : 302
Détails du profil
Informations personnelles :
Âge : 45

Informations forums :
Inscription : août 2007
Messages : 302
Points : 309
Points : 309
Salut,

voici la solution microsoft :

Code :
1
2
3
4
5
6
7
8
9
 
strComputer = "atl-fs-01"
strNamespace = "root\cimv2"
strUser = "kenmyer"
strPassword = "password"
 
Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objwbemLocator.ConnectServer _
    (strComputer, strNamespace, strUser, strPassword)
A++
__________________
Plus tu pédales moins vite, moins t'avances plus vite.
RadPAT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 19h29   #3
Futur Membre du Club
 
Inscription : août 2006
Messages : 102
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 102
Points : 17
Points : 17
Si tu passes par un serveur, as tu la possiblité de passer via un GPO ? si c'est le cas le script se lancera en tant qu'admin donc ton problème sera résolu
ponpon17430 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h22.


 
 
 
 
Partenaires

Hébergement Web