OVH Cloud OVH Cloud

Lancer un script distant en gardant les droits

2 réponses
Avatar
Fernand
Bonjour,

- Je lance un script distant sur un serveur avec le script ci-dessous :

strComputer = "MonServeur"
Set objWMIService = GetObject("winmgmts:\\" & strComputer &
"\root\cimv2:Win32_Process")
Erreur = objWMIService.Create("CScript.exe d:\Script.vbs", null, null,
intProcessID)

- Le script lancé, listé ci-dessous, s'exécute bien mais n'a pas les accès
sur le réseau

Set objShell = CreateObject("WScript.Shell")
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objEnv = objShell.Environment("PROCESS")
strUserName = LCase(objEnv("USERNAME"))
Set filFileOut = objFSO.CreateTextFile("d:\Script.txt", True)
objFSO.CopyFile "d:\Script.vbs", "CheminRéseauQuelconque"
filFileOut.WriteLine "Utilisateur : " & strUserName & " Erreur : " &
Err.Number & " Description : " & Err.Description

- Le fichier d:\Scrips.vbs est bien crée, la variable strUserName
corresponds bien à mon nom de log qui a tous les accès réseau, mais les
variables d'erreur renvoient le numéro d'erreur "70" et la description
d'erreur "Permission refusée"

Auriez vous une idée sur ce qui se passe ?

Merci

2 réponses

Avatar
Guillaume Bordier [MS]
Bonsoir,

Un grand classique du NTLM, le jeton d'authentification propagé n'est pas de
type "Network", il peut être utilisé sur la machine distante, mais pas pour
accéder au réseau.

Guillaume
.

En clair, à moins d'utiliser la délégation Kerberos (et je ne suis pas
certain que cela fonctionne dans ce cas), pour que votre script distant
possède les droits RESEAU que vous désirez sur la machine cible, il faut que
la connexion WMI initiale soit faite avec le user et le mot de passe.
"Fernand" wrote in message
news:415aaeaf$0$323$
Bonjour,

- Je lance un script distant sur un serveur avec le script ci-dessous :

strComputer = "MonServeur"
Set objWMIService = GetObject("winmgmts:" & strComputer &
"rootcimv2:Win32_Process")
Erreur = objWMIService.Create("CScript.exe d:Script.vbs", null, null,
intProcessID)

- Le script lancé, listé ci-dessous, s'exécute bien mais n'a pas les accès
sur le réseau

Set objShell = CreateObject("WScript.Shell")
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objEnv = objShell.Environment("PROCESS")
strUserName = LCase(objEnv("USERNAME"))
Set filFileOut = objFSO.CreateTextFile("d:Script.txt", True)
objFSO.CopyFile "d:Script.vbs", "CheminRéseauQuelconque"
filFileOut.WriteLine "Utilisateur : " & strUserName & " Erreur : " &
Err.Number & " Description : " & Err.Description

- Le fichier d:Scrips.vbs est bien crée, la variable strUserName
corresponds bien à mon nom de log qui a tous les accès réseau, mais les
variables d'erreur renvoient le numéro d'erreur "70" et la description
d'erreur "Permission refusée"

Auriez vous une idée sur ce qui se passe ?

Merci





Avatar
Fernand
Bonjour,

Pourtant j'utilise un seul utilisateur et mot de passe, qui est
Administrateur du domaine et à tous les droits sur tous les postes, même
pour la connexion WMI initiale.

Merci.




"Guillaume Bordier [MS]" a écrit dans le
message de news:
Bonsoir,

Un grand classique du NTLM, le jeton d'authentification propagé n'est pas
de type "Network", il peut être utilisé sur la machine distante, mais pas
pour accéder au réseau.

Guillaume
.

En clair, à moins d'utiliser la délégation Kerberos (et je ne suis pas
certain que cela fonctionne dans ce cas), pour que votre script distant
possède les droits RESEAU que vous désirez sur la machine cible, il faut
que la connexion WMI initiale soit faite avec le user et le mot de passe.
"Fernand" wrote in message
news:415aaeaf$0$323$
Bonjour,

- Je lance un script distant sur un serveur avec le script ci-dessous :

strComputer = "MonServeur"
Set objWMIService = GetObject("winmgmts:" & strComputer &
"rootcimv2:Win32_Process")
Erreur = objWMIService.Create("CScript.exe d:Script.vbs", null, null,
intProcessID)

- Le script lancé, listé ci-dessous, s'exécute bien mais n'a pas les
accès
sur le réseau

Set objShell = CreateObject("WScript.Shell")
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objEnv = objShell.Environment("PROCESS")
strUserName = LCase(objEnv("USERNAME"))
Set filFileOut = objFSO.CreateTextFile("d:Script.txt", True)
objFSO.CopyFile "d:Script.vbs", "CheminRéseauQuelconque"
filFileOut.WriteLine "Utilisateur : " & strUserName & " Erreur : " &
Err.Number & " Description : " & Err.Description

- Le fichier d:Scrips.vbs est bien crée, la variable strUserName
corresponds bien à mon nom de log qui a tous les accès réseau, mais les
variables d'erreur renvoient le numéro d'erreur "70" et la description
d'erreur "Permission refusée"

Auriez vous une idée sur ce qui se passe ?

Merci