Lancer un process avec des droits particuliers

cs_cyrilp
Messages postés
140
Date d'inscription
mercredi 4 octobre 2000
Statut
Membre
Dernière intervention
12 août 2009
- 27 mai 2002 à 11:33
COlive
Messages postés
91
Date d'inscription
mercredi 27 février 2002
Statut
Membre
Dernière intervention
3 décembre 2011
- 4 févr. 2005 à 08:23
Bonjour,

J'aimerai savoir comment faire avec les API windows (NT) pour lancer une application sous un compte particulier.

Par exemple, je suis connecté sous une session User1, avec des droits de lecture sur un partage, mais je veux que l'application APP1 ait le droit d'ecrire (seulement elle, pas le user)

Comment lancer ce programme (APP1) en tant que User2 qui a des droits d'ecriture sur un repertoire...

Comment faire ??? Je sais que les services peuvent le faire, alors pourquoi pas un programme ???

Merci d'avance... RQ : Reponse URGENTE !!!

Cyril P.

8 réponses

cs_electro
Messages postés
60
Date d'inscription
dimanche 10 novembre 2002
Statut
Membre
Dernière intervention
30 juin 2011

10 nov. 2002 à 00:42
Hello. J'ai le meme problème que toi et en plus mon applic doit copier des fichiers depuis le réseaux. Les services fonctionnent en général avec le comptes systèm(Je crois).

Si tu à la solutions merci de me transmettre l'info, je cherche aussi

A+ Bye
0
COlive
Messages postés
91
Date d'inscription
mercredi 27 février 2002
Statut
Membre
Dernière intervention
3 décembre 2011

8 janv. 2003 à 23:20
Et ben là, je suis interressé au plus haut point, mais pour mettre à jour des programmes à partir d'un poste.
Autrment remplacer un exe à distance sur plusiseurs poste, pis relancer l'exe sur les postes distant.
En on peut grace au api, donc en vb on peut, mais j'ai pas la soluce. Suis interressé si vous avez..

Bon courage...
Si g je donne...

COlive.
Deux intellectuels assis iront moins loin qu'un con qui marche. Pensez-y !
:-p
0
cs_electro
Messages postés
60
Date d'inscription
dimanche 10 novembre 2002
Statut
Membre
Dernière intervention
30 juin 2011

9 janv. 2003 à 08:20
Pour remplacer un exe, c-est très simple, tu fait un petit exe(par ex. restart.exe) qui accepte des paramètres. Dans ton applic tu lance restart.exe et tu fait stopper ton applic.

Petit programme va copier depuis ou tu le veux le nouveau exécutable et le relancer.

J'ai un exemple si tu veux.
0
COlive
Messages postés
91
Date d'inscription
mercredi 27 février 2002
Statut
Membre
Dernière intervention
3 décembre 2011

10 janv. 2003 à 00:42
Je veux bien un exemple, car faire arrêter un prog via un paramètre , sa cela me pose pas de problème, mais c'est que sur les postes cibles, les programmes en question sont des programmes un peu comme le bloc note, donc ce que je trouve pas, c comment les lancer à distance sans programmes client / serveur à installer en plus, sinon, autant installer les mise à jour en me déplaçant.. (les postes en question sont sur plusieurs étage et batiment)...

COlive.
Deux intellectuels assis iront moins loin qu'un con qui marche. Pensez-y !
:-p
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_electro
Messages postés
60
Date d'inscription
dimanche 10 novembre 2002
Statut
Membre
Dernière intervention
30 juin 2011

10 janv. 2003 à 15:38
Voici un exemple du code pour le Restart.

Dans ton applic, lance la commande suivante. Juste après exécute le code End.

Pour une mise à jour globale, utilise éventuellement du Winsock. Depuis le serveur tu envoye une commande update. Le client, au moment de la réception, lance restart et s'arrete.

Sub Main()
'Ligne de commande :

'Shell (CurDir() & "" & "Restart.exe " & Chr(5) & "10" & Chr(5) & P1 & Chr(5) & "FunHeures.exe" & Chr(5) & "FunHeures.exe")


'Paramètre 1 : Temporisation avant copie du nouvel exe
'Paramètre 2 : Emplacement du nouvel exe
'Paramètre 3 : Emplacement de destination
'Paramètre 4 : Exe à lancer

'Ce petit exe peut-etre utiliser pour n'importe quelle application


Dim cmd As String
Dim V1 As Variant
Dim V2 As Variant
Dim V3 As Variant
Dim V4 As Variant
Dim V5 As Variant
Dim V6 As Variant
Dim Chaine As Variant

Dim chaine_temp As String

Dim pausetime As Long
Dim start As Long

cmd = Trim(LCase(Command()))

If cmd <> "" Then

Chaine = cmd
'Chaine = Mid(Chaine, 2)

If InStr(1, Chaine, Chr(5)) = 0 Then
V1 = Chaine
Else
V1 = Left(Chaine, InStr(1, Chaine, Chr(5)) - 1)
End If
chaine_temp = Mid(Chaine, InStr(1, Chaine, Chr(5)) + 1)
If InStr(1, chaine_temp, Chr(5)) = 0 Then
V2 = chaine_temp
GoTo End_chaine
Else
V2 = Left(chaine_temp, InStr(1, chaine_temp, Chr(5)) - 1)
End If
chaine_temp = Mid(chaine_temp, InStr(1, chaine_temp, Chr(5)) + 1)
If InStr(1, chaine_temp, Chr(5)) = 0 Then
V3 = chaine_temp
GoTo End_chaine
Else
V3 = Left(chaine_temp, InStr(1, chaine_temp, Chr(5)) - 1)
End If
chaine_temp = Mid(chaine_temp, InStr(1, chaine_temp, Chr(5)) + 1)
If InStr(1, chaine_temp, Chr(5)) = 0 Then
V4 = chaine_temp
GoTo End_chaine
Else
V4 = Left(chaine_temp, InStr(1, chaine_temp, Chr(5)) - 1)
End If
chaine_temp = Mid(chaine_temp, InStr(1, chaine_temp, Chr(5)) + 1)
If InStr(1, chaine_temp, Chr(5)) = 0 Then
V5 = chaine_temp
GoTo End_chaine
Else
V5 = Left(chaine_temp, InStr(1, chaine_temp, Chr(5)) - 1)
End If
chaine_temp = Mid(chaine_temp, InStr(1, chaine_temp, Chr(5)) + 1)
If InStr(1, chaine_temp, Chr(5)) = 0 Then
V6 = chaine_temp
'GoTo End_chaine
Else
V6 = Left(chaine_temp, InStr(1, chaine_temp, Chr(5)) - 1)
End If

End_chaine:


'Pause pour fermeture programme
On Error Resume Next
pausetime = Val(V3) ' Définit la durée.
start = Timer ' Définit l'heure de début.
Do While Timer < start + pausetime
DoEvents ' Donne le contrôle à d'autres processus.
Loop

'Copie du fichier depuis le serveur
FileCopy V4, V5

'Pause de 1 sec
pausetime = 1 ' Définit la durée.
start = Timer ' Définit l'heure de début.
Do While Timer < start + pausetime
DoEvents ' Donne le contrôle à d'autres processus.
Loop

'Lancement du nouveau programme
Dim MyAppID, ReturnValue
Dim app As String

app = V6
MyAppID = Shell(V6)

AppActivate MyAppID ' Active Microsoft Word.
On Error GoTo 0

Else
If MsgBox("Aucuns paramètres", vbOKOnly + vbCritical) = vbOK Then
End If
End If
End

End Sub
0
COlive
Messages postés
91
Date d'inscription
mercredi 27 février 2002
Statut
Membre
Dernière intervention
3 décembre 2011

10 janv. 2003 à 19:20
Merci beaucoup, je vois ce que je peux faire avec ça.

COlive.
Deux intellectuels assis iront moins loin qu'un con qui marche. Pensez-y !
:-p
0
soulheaven
Messages postés
23
Date d'inscription
dimanche 30 décembre 2001
Statut
Membre
Dernière intervention
11 avril 2006

4 mars 2003 à 21:26
0
COlive
Messages postés
91
Date d'inscription
mercredi 27 février 2002
Statut
Membre
Dernière intervention
3 décembre 2011

4 févr. 2005 à 08:23
J'ai trouvé un moyen grace a un outils ligne de commande externe : pexec.exe du site www.sysinternals.com

COlive.
Deux intellectuels assis iront moins loin qu'un con qui marche. Pensez-y !
0