Je pencherais pour un problème de droit. Dans le genre tu utilises un utilisateur qui n'a pas le droit de faire se genre de connexion.
Je pencherais pour un problème de droit. Dans le genre tu utilises un utilisateur qui n'a pas le droit de faire se genre de connexion.
Salut,
as-tu essayé avec un moniker ?
A++
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set ObjService = GetObject("WinMgmgts://" & Machine & "/root/cimv2")
avec l'utilisation du Moniker la connexion se fait, cependant l'execution du fichier.vbs ne ce fait pas
message d'erreur "Erreur d'exécution Microsoft VBScript: Objet requis: '' "
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Set objWMIService = GetObject ("winmgmts:\\D:\repertoire\fichier.vbs" & machine.domaine & "\root\cimv2:Win32_Process") processus = objWMIService.Create ("WScript.exe", null, "2588")
quel objet attent il ?
Merci
Salut,
Question idiote, ce ne serait pas la config du firewall qui te bloque ?
Je n'ai jamais eu l'occasion d'essayer, mais peut etre que WinRm peux t'aider...
http://www.microsoft.com/technet/scr...ire/winrm.mspx
A++
Cette syntaxe ne me dit rien à cause du fichier Vbs juste après le winmgmts et avant la déclaration de ta machine :
Il ne manquerait pas un double slash ou un espace ou une virgule ou une apostrophe entre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set objWMIService = GetObject ("winmgmts:\\D:\repertoire\fichier.vbs" & machine.domaine & "\root\cimv2:Win32_Process")
A++
Code : Sélectionner tout - Visualiser dans une fenêtre à part ...\fichier.vbs" & machine.....
ce doit etre les securités réseau qui m'empeche la connexion du serveur vers mon poste.
meme un net use ne passe pas
il me reste toujours le double click sur mon fichier en local
Merci à tous de m'avoir aidé
A++
si quelqu'un rencontre un probleme similaire au mien
Voici un lien utile http://techtasks.com/code/viewbookcode/365
Et dans ton cas, cette solution (le lien sur la page) marche ?
Comme RadPAT, j'emet de fort doute sur la validité de la ligne de code suivante :
Je crois que l'utilisation du moninoker est mauvaise. Un lien sur la construction d'un moninoker :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set objWMIService = GetObject ("winmgmts:\\D:\repertoire\fichier.vbs" & machine.domaine & "\root\cimv2:Win32_Process")
http://msdn2.microsoft.com/en-us/library/Aa389292.aspx
Una utre lien sur la sécurité des objets COM :
http://msdn2.microsoft.com/en-us/library/ms693319.aspx
Je te conseille de fouillé un peu se lien, tu résoudras peut être ton problème avec
bonjour,
apparement le moniker fonctionne, mais je me eurt à l'execution du process.
lors de la declaration de l'objet process.
j'ai un retour d'erreur "objet requis"
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set objProcesses = objService.Get("Win32_Process")
il me semble pourtant correct.
voici la totalité de mon code.
merci pour votre aide, je continu à chercher
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 Const CommandLine = "Cmd /c CScript fichier.Vbs" Const Computer = "mon poste" Const UserName = "loggin" Const Password = "pwd" Dim lngRet lngRet = CreateProcess(CommandLine, Computer, UserName, Password) Function CreateProcess(CommandLine, Computer, UserName, Password) Dim objProcesses Dim objLocator Dim objService Dim lngRet Dim lngPID Dim MesStr Set WshNetwork = WScript.CreateObject("WScript.Network" ) WScript.Echo "Domain = " & WshNetwork.UserDomain WScript.Echo "Computer Name = " & WshNetwork.ComputerName WScript.Echo "User Name = " & WshNetwork.UserName Set objWMIService = GetObject("Winmgmts:{impersonationLevel=delegate," _ & "authority=kerberos:MON DOMAINE\POSTE}" _ & "!//POSTE/root/default:__cimomidentification=@") Set objProcesses = objService.Get("Win32_Process") lngRet = objProcesses.Create(CommandLine, Null, Null, 2588) Set objProcesses = Nothing Set objService = Nothing Set objLocator = Nothing CreateProcess = lngPID End Function
J'utilisais cela me récup la liste des process sur un pc distant et tué le process que je voulais. Si cela peut t'aider ....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator") Set objWMIService = objSWbemLocator.ConnectServer(PID, "root\CIMV2") 'PID est le process ID d'un process Set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'notepad.exe'" ' j'ai mis notepad, mais bon cela peut être ce que tu veux For Each objet in colProcessList Objet.Terminate() Next
As tu eu le temps de regarder les liens que je t'ai passé.
Ceci pour lancer un process sur un pc distant :
Je récupère la liste des processus java sur une machine avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Set objWMIService = GetObject("winmgmts:\\" & Adresse_IP & "\root\cimv2:Win32_Process") 'Adresse_IP est une variable qui contient une adresse IP ;) objWMIService.Create(path_executable & "\Mon prog à lancer", null, PID) ' Si je me souviens bien, le Process ID sera stocké dans PID Set objWMIService = Nothing
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator") Set objWMIService = objSWbemLocator.ConnectServer(Adresse_IP, "root\CIMV2") Set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'java.exe'")
Oui j'ai regardé c'est très bien expliqué et avec pas mal d'options différentes et de cas différents merci.
Je l'ai même placé en favoris.
Merci
bonjour
merci car j'ai du mieux dans cette avanture.
Cependant à l'execution du script(d'execution à distance du second), le Process "Cscript" se cré furtivement une seconde environ dans le gestionnaire de tache.
mais il n'execute pas mon fichier.VBS.
d'autre par la variable PID est vide à l'affichage.
code
voici mon resultat avec un retour d'erreur à 0
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 Const Adresse_IP = "mon ip" Const path_executable = "Cmd /c WinScript.exe fichier.Vbs" Dim PID Dim Processus Set WshNetwork = WScript.CreateObject("WScript.Network") WScript.Echo "Domain = " & WshNetwork.UserDomain WScript.Echo "Computer Name = " & WshNetwork.ComputerName WScript.Echo "User Name = " & WshNetwork.UserName Set objWMIService = GetObject("winmgmts:\\" & Adresse_IP & "\root\cimv2:Win32_Process") 'Adresse_IP est une variable qui contient une adresse IP ;) Processus = objWMIService.Create(path_executable & "\WinScript.exe", null, PID) Set objWMIService = Nothing Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator") Set objWMIService = objSWbemLocator.ConnectServer(Adresse_IP, "root\CIMV2") Set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'cscript.exe'") WScript.Echo "le process"&PID
Domain = ok
Computer Name = ok
User Name = ok
le process
Exit code: 0 , 0000h
Merci de votre aide
Juste comme ça essayes avec notepad
il ouvre bien notepad avec un message "le chemein d'acces specifie est introuvable"
Code : Sélectionner tout - Visualiser dans une fenêtre à part Const path_executable = "notepad.exe c:\file.txt"
Bon j'essaye ton script.
Mais une chose connais tu la concaténation de chaine de caractère ?
Je te laisse devener ce que tu obtiens avec c'est deux lignes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Const path_executable = "Cmd /c WinScript.exe fichier.Vbs" ..... Processus = objWMIService.Create(path_executable & "\WinScript.exe", null, PID)
la concaténation est représenté par le signe "&"
donc les deux lignes que tu viens de me présenter me donneront
Cmd /c WinScript.exe fichier.Vbs\winscript.exe en résultat donc un bug.
Je pense devoir obtenir
Cmd /c WinScript.exe\fichier.Vbs
Donc
J’ai juste ou je me plante ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Const path_executable = "Cmd /c winscript.exe" Processus = objWMIService.Create(path_executable & "\fichier.Vbs", null, PID)
tu es sur que tu dois faire :
et non :
Code : Sélectionner tout - Visualiser dans une fenêtre à part WinScript.exe\fichier.Vbs
N'oublie pas de mettre le chemin complet du vbs c plus sur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part WinScript.exe fichier.Vbs
Tu peut directement tester dans une console dos pour voir ce qui marche et ce qui marche pas
je viens de faire tout une batterie de test
l'interpreteur de commandes apparait bien, mais la commande, ne se lance pas
cmd = "c:\w_xppro\system32>"
cependant à la main dans mon cmd il s'execute bien, je seche
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 Const Adresse_IP = "mon_ip" Const path_executable = "Cmd WScript.exe" Dim PID Dim Processus Set WshNetwork = WScript.CreateObject("WScript.Network") WScript.Echo "Domain = " & WshNetwork.UserDomain WScript.Echo "Computer Name = " & WshNetwork.ComputerName WScript.Echo "User Name = " & WshNetwork.UserName Set objWMIService = GetObject("winmgmts:\\" & Adresse_IP & "\root\cimv2:Win32_Process") 'Adresse_IP est une variable qui contient une adresse IP ;) Processus = objWMIService.Create(path_executable & "c:\fichier.Vbs", null, PID) Set objWMIService = Nothing WScript.Echo "le process"&PID Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator") Set objWMIService = objSWbemLocator.ConnectServer(Adresse_IP, "root\CIMV2") Set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'Wscript.exe'") WScript.Echo "le process"&PID
j'aurais plutot fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Const path_executable = "Cmd WScript.exe"
ou :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Const path_executable = "Cmd /c WScript.exe"
pour des explications tape dans la console dos :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Const path_executable = "Cmd /k WScript.exe"
Code : Sélectionner tout - Visualiser dans une fenêtre à part help cmd
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager