[..] Copie impossible dans ProgramFiles

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
fifyx
Niveau 1
Niveau 1
Messages : 3
Enregistré le : ven. 21 févr. 2014 11:08
Status : Hors ligne

[..] Copie impossible dans ProgramFiles

#1

Message par fifyx »

Bonjour à tous,

j'essaye désespérément d'utiliser Autoit pour lancer la copie de 4 fichiers (plugins pour OCS) sous le répertoire "program files".
Mais voilà, je pense être confronté à l'UAC (même sûr puisque sous XP pas de problème).

j'ai beau utiliser le runas, il ne lance jamais mon programme ou ma commande en admin.
Votre aide me serait précieuse, car je m'arrache les cheveux.
J'ai regardé dans le forum et sur le web mais pas moyen de résoudre mon problème
j'ai regardé entre autre ce topic: http://www.autoitscript.fr/forum/viewto ... 8967#p8967

PS: question de sécurité, j'ai remplacé le nom du serveur par [Domain_Server]

Script Autoit: j'ai essayé les deux façon suivante:

Code : Tout sélectionner

RunAs($sUserName, $sDomain, $sPassword, 0, 'cscript.exe "\\[Domain_Server]\NETLOGON\OCS\PluginsOCS.vbs"')
Contenue du VBS:
► Afficher le texte
Contenue du .bat:

Code : Tout sélectionner

@echo off

if exist "%programfiles%\OCS Inventory Agent" (xcopy /C /Y "\\[b][Domain_Server][/b]\NETLOGON\OCS\Plugins\*.vbs" "%programfiles%\OCS Inventory Agent\Plugins\") else (echo "error")
n'est il pas possible de lancer un script tel que le mien avec un runas et passer outre l'uac d'ou le lancement en admin ??
j'avais également essayer avec la fonction "FileCopy" de autoit, mais même résultat!

par avance merci de votre aide.
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [..] Copie impossible dans ProgramFiles

#2

Message par sksbir »

Bonjour
le compte "$sUserName, $sDomain", il est administrateur du domaine ?

Si oui, vérifie dans les autorisations du PC les comptes qui sont autorisés en tant que administrateur du PC ( c'est pas parce que t'es admin du domain, que t'es admin du PC... )

Mais si t'es admin du domaine, pourquoi ne pas pousser les fichiers depuis un serveur vers les PC concernés ( tout le parc à priori,puisque OCS est un programme d'inventaire ) , plutôt que d'attendre que chaque utilisateur (ou technicien ) vienne se connecter au PC pour lancer ton script ? Avec le voisinage réseau accessible par les admins ( C$ ) , c'est généralement un jeu d'enfant...
fifyx
Niveau 1
Niveau 1
Messages : 3
Enregistré le : ven. 21 févr. 2014 11:08
Status : Hors ligne

Re: [..] Copie impossible dans ProgramFiles

#3

Message par fifyx »

Merci pour ta réponse.

Quand tu dis pousser les fichiers, tu pense à utiliser les GPO ?

mon but est de lancer le script automatiquement lors du logon de l'utilisateur.
Dans mon cas j'aimerais également comprendre pourquoi le runas ne fonctionne également pour d'autre script (notamment la désinstallation d'application en utilisant msiexec)
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [..] Copie impossible dans ProgramFiles

#4

Message par sksbir »

Non, pas spécialement par GPO.
Il suffit de lancer le script dont je parle depuis un serveur, soit de façon interactive, soit avec l'outils de planification..

Si tu veux lancer le script via le logon de l'utilisateur, c'est que tu as placé le script dans le NETLOGON et que tu l'as mentionné dans le profil des utilisateurs concerné en tant que "login script".

Dans ce cas, tu dois savoir que le moment où est activé le script, c'est après l'authentification, et avant le lancement de l'explorateur maitre ( celui qui affiche le bureau ). Donc tu n'as pas d'explorateur à ce moment là.

Mais avant de tester cet aspect, il faut déjà que ça marche en lançant manuellement ton script depuis le bureau d'un utilisateur lambda.
Tu n'as pas répondu à mes questions concernant l'autorité du compte que tu utilises dans le runas. Il y a de plus la question de savoir avec quel logon_flag tu lances ton runas...

La solution est peut-etre de ce coté..
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Copie impossible dans ProgramFiles

#5

Message par jguinch »

Si tu retranscris ton script VBS en un deuxièmre script AutoIt et que tu ajoutes #RequireAdmin en début de ce script, je pense que ça devrait le faire...

Tu auras donc 2 scripts :
Script A (programme.exe)
RunAs($sUserName, $sDomain, $sPassword, 0, 'cscript.exe "\\[Domain_Server]\NETLOGON\OCS\PluginsOCS.exe"')

Script B (PluginsOCS.exe)
#RequireAdmin
[...]
; Installation de l'agent OCS...
[...]
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
fifyx
Niveau 1
Niveau 1
Messages : 3
Enregistré le : ven. 21 févr. 2014 11:08
Status : Hors ligne

Re: [..] Copie impossible dans ProgramFiles

#6

Message par fifyx »

Merci de vos réponses.

#sksbir: le compte est un compte admin du domaine et à été déployer par GPO sur les postes utilisateurs pour l'inclure au groupe admin local.

#jguinch : Quel est la particularité de "#RequireAdmin" s'il te plait, je l'ai déjà aperçus sur plusieurs topic mais sans vraiment trouver une réponse exact. Cette option oblige telle une action de la part d'un humain ou pas ?

Mon but est que tout soit autonome et transparent pour l'utilisateur.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Copie impossible dans ProgramFiles

#7

Message par jguinch »

Désolé, j'avais mal lu ton post.
#RequireAdmin ne t'évitera pas le prompt de l'UAC.
Le but de #RequireAdmin est d'indiquer que le script nécessite des droits élevés : donc si tu mets ça en début de script, le prompt UAC s'affichera (ce n'est donc pas ce que tu cherches).

Si tu en as la possibilité, tu peux tout simplement utiliser le compte "administrateur" local dans ton RunAs() (seul le compte administrateur local n'a pas le prompt de l'UAC par défaut).
Si tu veux éviter le prompt pour les autres utilisateurs membres du groupe Administrateurs (local ou du domaine), il te faudra modifier un stratégie locale (ou GPO si tu as un AD) :
Configuration ordinateur / Paramètres Windows / Paramètres de sécurité / Stratégies locales / Options de sécurité : Contrôle de compte d’utilisateur 
- comportement de l’invite d’élévation pour les administrateurs en mode d’approbation Administrateur : Elever les privilèges sans invite utilisateur

Attention cependant, si tu as la possibilité d'utiliser le compte administrateur local dans ton RunAs, il faudra d'assurer que le compte se nomme bien Administrateur, car il peut avoir été renommé (ou même être Administrator par ex)...

Si tu n'as pas la possibilité d'utiliser le compte administrateur local, je ne crois pas qu'il n'y ait de solution simple à cette problématique, si ce n'est :
- gérer le lancement de ton script via une tâche planifiée (en cochant la case "Exécuter avec les autorisations maximales")
- créer un script qui tourne en tant que service qui s'occupe de lancer tes autres scripts (pour déployer le service, tu retomberas sur le problème, donc...)
- désactiver l'UAC (mode passoire)

Ce n'est que mon retour d'expérience que je décris, il existe peut-être des solutions plus simples à mettre en oeuvre.
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Répondre