web-dev-qa-db-fra.com

Exécuter le fichier batch en tant qu'administrateur sur Jenkins?

Nous utilisons Jenkins sur Win8 x64 pour créer (msbuild), package (cspack), exécuter (csrun) et tester (nunit) un projet de services cloud Azure. Les émulateurs du service cloud Azure doivent s'exécuter en tant qu'administrateur et nous devons nous lier aux ports 80/443 (nous ne pouvons donc pas utiliser d'émulateurs "légers").

Nous faisons ce qui précède via un simple fichier .bat que Jenkins exécute. En général, aucun utilisateur ne se connecte à la machine, il démarre et Jenkin's s'exécute en tant que service qui surveille constamment notre dépôt GIT et nos e-mails en cas d'échecs. Un administrateur se connecte manuellement à la machine uniquement pour la maintenance (par exemple, appliquer des correctifs ou redémarrer la machine, etc.)

Comment configurer Jenkins pour exécuter ce .bat en tant qu'administrateur sans interaction humaine?

Avec une interface utilisateur de bureau, nous pouvons cliquer avec le bouton droit sur une invite de commande, exécuter en tant qu'administrateur, reconnaître l'invite UAC, obtenir l'invite de privilèges élevés et exécuter le fichier .bat.

13
DeepSpace101

Notre solution était d'exécuter le service Jenkins en tant qu'utilisateur administrateur local distinct. Après avoir installé Jenkins, Démarrer => 'services' => Faites défiler jusqu'au service Jenkins => clic droit => propriétés => "se connecter" => "ce compte" => spécifiez un compte administrateur local.

Espérons que dans les versions plus récentes de Jenkins, cela puisse fonctionner comme le SERVICE RÉSEAU standard, mais pour une raison quelconque, cela ne fonctionnait pas avec notre boîte.

20
DeepSpace101

Une des solutions:

  1. Créez un fichier de chauve-souris dans l'esclave.
  2. Créez un raccourci du fichier et cliquez avec le bouton droit sur le raccourci, propriétés -> Avancé -> cocher exécuter en tant qu'administrateur.
  3. Panneau de configuration -> Système et sécurité -> Centre d'action -> Modifier les paramètres de contrôle du compte utilisateur et définir le niveau sur "ne jamais notifier".
  4. exécuter le fichier sur Jenkins

D'une manière ou d'une autre, le fichier sera exécuté sur le serveur esclave mais il retournera l'échec sur Jenkins.

2
Roy Pun

Si vous vous connectez à la machine Widows en tant qu'administrateur et exécutez l'agent esclave à partir de cet utilisateur, tout s'exécutera sous l'utilisateur administrateur

0
kazerm