OVH Cloud OVH Cloud

IsAdminPoste

12 réponses
Avatar
Georges
Bonjour,

Comment d=E9terminer dans le loginscript.vbs si l'utilisateur qui se
logue est admin du poste sur lequel il se logue ?

J'ai d=E9ja r=E9cuperer dans le script le nom du poste (PosteName) et le
nom du user (UserName)

Si c'est possible bien entendu !!! ;=3D))


Merci

10 réponses

1 2
Avatar
Gilles LAURENT
"Georges" a écrit dans le message de
news:
| Bonjour,

Bonjour,

| Comment déterminer dans le loginscript.vbs si l'utilisateur qui se
| logue est admin du poste sur lequel il se logue ?

Ci-dessous la fonction VBScript 'IsLocalAdmin' permettant de déterminer
si l'utilisateur courant est membre du groupe local Administrateurs (i.e
présent dans la liste des membres du groupe local).

+++ Usage (VBScript)
If IsLocalAdmin () Then
WScript.Echo "Current user is admin ..."
Else
WScript.Echo "Current user is not admin ..."
End If

--- Coupez ici : IsLocalAdmin.vbs ---

Function IsLocalAdmin ()

' déclaration des variables
Dim oNetwork, oAdminGroup

' initialisation des objets
Set oNetwork = CreateObject ("WScript.Network")
Set oAdminGroup = GetObject ("WinNT://./Administrateurs")

' détermination de l'appartenance au groupe
IsLocalAdmin = oAdminGroup.IsMember ( _
"WinNT://" & oNetwork.UserDomain & "/" & _
oNetWork.UserName)

End Function

--- Coupez ici : IsLocalAdmin.vbs ---

--
Gilles LAURENT
http://glsft.free.fr
Avatar
Georges

"Georges" a écrit dans le message de
news:
| Bonjour,
Bonjour,
Gilles LAURENT



Merci beaucoup pour votre aide et,

Cordialement

Georges


Avatar
Georges


"Georges" a écrit dans le message de
news:
| Bonjour,
Bonjour,
Gilles LAURENT



Merci beaucoup pour votre aide et,

Cordialement

Georges


Bonsoir,

Dans le même ordre d'idée, j'ai posté ceci ci-dessous dans un sujet
cloturé je pense et comme c'est avec vous Gilles que j'avais commencé
la dessus (recherche d'une clé dans la base de registre ...), j'ai ce
code qui ne fonctionne pas bien, avez-vous une solution ?

je crois que dans mon script, j'ai une erreur et je ne sais
pas où à la ligne de la ligne du coderet et peut etre du psexec

If fso.FileExists(nom_fich) = false Then
commande = "mon-controleurtemppsexec " & PcName & " -d net
localgroup administrateur mondomaine" & Username & " /Add"


coderet = Shell.Run & " " & commande & ",1,true"
commande = "serveurappliappli.msi /quiet /passive /log
%temp%appli.log"
Shell.Run commande,1,true
If (coderet= 0) And (Err.Number = 0) Then
commande = "mon-controleurtemppsexec " & PcName & " -d net

localgroup administrateur mondomaine" & Username & " /Delete"
Shell.Run commande,1,true
endif
'copie du résultat pour le service destinataire
fso.CopyFile tfolder & .......
End If


Je dois d'abord tester si le prgramme que je veux mettre à jour existe
dans la clé uninstall,ensuite, je teste l'existance d'un marqueur
[fso.FileExists(nom_fich)] puis je mets à jour si pas de marqueur et
j'ecris le log (marqueur).

par contre, pour cela, il faut que je teste si le user est admin du
poste , si oui, j'installe, si non, je le mets admin, j'installe et
ensuite, s'il n'etait pas admin, je lui supprime ce privilege et je
quitte mon script

J'ai voulu utiliser la commande psexec mais ça cloche ;=))

Merci pour l'aide


Georges



Avatar
Gilles LAURENT
"Georges" a écrit dans le message de
news:

[...]
| je crois que dans mon script, j'ai une erreur et je ne sais
| pas où à la ligne de la ligne du coderet et peut etre du psexec
|
| coderet = Shell.Run & " " & commande & ",1,true"

coderet = Shell.Run (commande,1,True)

[...]
| par contre, pour cela, il faut que je teste si le user est admin du
| poste , si oui, j'installe, si non, je le mets admin, j'installe et
| ensuite, s'il n'etait pas admin, je lui supprime ce privilege et je
| quitte mon script

Le script s'exécute sur le poste de travail sous l'autorité de
l'utilisateur connecté ? Si oui alors la commande netlocalgroup ne
fonctionnera pas car un utilisateur ne peut pas s'ajouter au groupe
Administrateurs. C'est une opération qui ne peut être réalisée que par
un administrateur local. Si vous souhaitez être en mesure de réaliser
cette opération, il faudra ajouter à la commande psexec le couple
(login, mot de passe) d'un compte administrateur local/du domaine. Il
est à noter que ces informations de connexion seront présentes "en
clair" dans le script. Toutefois, cela ne suffira pas car une
fermeture/ouverture de session sera nécessaire pour que l'utilisateur
possède effectivement les droits administrateur local. Pour réaliser ce
genre d'opération, je vous invite à évaluer l'outil freeware cpau qui
permet d'exécuter une commande (script, binaire, ...) sous une autorité
différente de celle de l'utilisateur connecté. Cet outil permet de créer
des fichiers chiffrés contenant toutes les informations nécessaires à
l'exécution d'une commande sous une autorité différente de celle de
l'utilisateur. C'est ici :
http://www.joeware.net/win/free/tools/cpau.htm

--
Gilles LAURENT
http://glsft.free.fr
Avatar
Georges
Merci beaucoup pour cette aide

et,

Cordialement Mr Gilles LAURENT
Avatar
Georges
Bonjour,

Je viens d'essayer cette commande ce matin, mais je pense n'avoir pas
bien compris car le user ne passe pas dansle groupe des admins locaux.

cpau.exe -u mondomaineadmin -p mdp -ex "psexec.exe ORDI1 net
localgroup administrateurs mondomainedupont /add" -lwp

le prog répond que c'est effectué

Où donc ai-je péché ???

Ci-dessous le résultat de la commande

M:InstallCPAU>cpau.exe -u mondomaineadmin -p mdp -ex "psexec.exe
ORDI1 net localgroup administrateurs mondomainedupont /add" -lwp

CPAU V01.11.00cpp Joe Richards () November 2005

Current working directory is a network drive. Redirecting local
to avoid security context issues starting process.
Alternatively specify current working directory with -cwd option.
Current Security Context: MONDOMAINEDupont
Process Created...

The command completed successfully.


Merci pour votre aide

Georges
Avatar
Gilles LAURENT
"Georges" a écrit dans le message de
news:
| Bonjour,

Bonjour,

| Je viens d'essayer cette commande ce matin, mais je pense n'avoir pas
| bien compris car le user ne passe pas dansle groupe des admins locaux.
|
| cpau.exe -u mondomaineadmin -p mdp -ex "psexec.exe ORDI1 net
| localgroup administrateurs mondomainedupont /add" -lwp

Je ne comprend pas bien ce que vous essayez de faire. Vous utilisez
l'outil psexec pour exécuter la commande net localgroup sur l'ordinateur
distant ORDI1 ou alors la commande s'exécute localement ?

Si la commande s'exécute localement (via logonscript par exemple) alors
vous n'avez pas besoin de l'outil psexec :
cpau -u mondomaineadmin -p mdp -ex "net localgroup
administrateurs mondomainedupont /add" -lwp

Si la commande s'exécute à distance alors vous n'avez pas besoin de
l'outil cpau :
psexec ORDI1 -u mondomaineadmin -p mdp "net localgroup
administrateurs mondomainedupont /add"

--
Gilles LAURENT
http://glsft.free.fr
Avatar
Georges

"Georges" a écrit dans le message de
news:
| Bonjour,

Bonjour,

Si la commande s'exécute localement (via logonscript par exemple) alors
vous n'avez pas besoin de l'outil psexec :
cpau -u mondomaineadmin -p mdp -ex "net localgroup
administrateurs mondomainedupont /add" -lwp

Si la commande s'exécute à distance alors vous n'avez pas besoin de
l'outil cpau :
psexec ORDI1 -u mondomaineadmin -p mdp "net localgroup
administrateurs mondomainedupont /add"

Bonjour,


En fait, j'ai évolué dans ma démarche depuis ce matin et le code
suivant fonctionne,
commande = "moncontroleurltempcpau.exe -u mondomaineadmin -p mdp
-ex ""cmd.exe /c net localgroup administrateurs mondomaine" & Username
& " /add"" -wait -lwp"
Shell.Run commande,1,true

Mais, si le user devient bien partie des admins, les droits ne sont pas
actifs dans la session en cours

Y a-t'il une solution ?

Merci

Georges

Avatar
Gilles LAURENT
"Georges" a écrit dans le message de
news:

[...]
| Mais, si le user devient bien partie des admins, les droits ne sont
| pas actifs dans la session en cours

Si vous relisez attentivement le fil :

[...]
Toutefois, cela ne suffira pas car une fermeture/ouverture de
session
sera nécessaire pour que l'utilisateur possède effectivement les
droits
administrateur local.

Une solution consiste donc à exécuter votre script sous l'autorité de
l'administrateur via l'outil cpau. Dans ce cas, il n'est pas nécessaire
d'ajouter l'utilisateur dans le groupe local administrateurs; le package
Windows Installer s'installant de ce fait sous une autorité habilitée.
D'autres possibilités pour permettre l'installation de packages Windows
Installer sont décrites dans cet article de la base des connaissances
Microsoft :
http://support.microsoft.com/kb/259459/en-us

A vous de jouer maintenant ;-)

--
Gilles LAURENT
http://glsft.free.fr
Avatar
Georges

A vous de jouer maintenant ;-)



Ouf !

J'étais complètement à coté de la plaque, ce script me consommait
une grande partie de mon intello (et vu mon age avancé, des barrettes
d'époque à greffer, yen a plus ;=)).

En fait, il fallait simplement que je lance mon msi avec cpau.exe et un
user admin

Quelle simplicité et en plus ça marche du feu de dieu


Merci pour votre aide

Et ,

Cordialement

1 2