2017-10-02 9 views
0

Je veux démarrer/arrêter un service (par exemple, someService) en tant qu'administrateur utilisant Python dans Windows. À l'heure actuelle, je peux penser à deux façons: (1) utiliser des lignes de commande dans les codes python (2) utiliser un module pour atteindre cet objectif directement en mode Python.Démarrer et arrêter un service en tant qu'administrateur utilisant python

J'ai essayé les codes suivants mais il a renvoyé "Accès refusé".

import os 

cmd = r"net stop someService" 
os.system(cmd) 

Si quelqu'un comment résoudre ce problème, SVP laissez-moi savoir merci!

+0

Juste un start/stop service? aussi, de quelle plateforme parlez-vous? c'est différent impl. sur Win ou Linux (je suppose windows, puisque vous êtes en tant qu'administrateur et non en tant que root) – Vinny

+0

@Vinny Oui juste pour démarrer/arrêter un service. C'est aussi dans Windows. – ryan9025

+2

Copie possible de [Comment exécuter un script python avec privilèges élevés sur Windows] (https://stackoverflow.com/questions/19672352/how-to-run-python-script-with-elevated-privilege-on-windows) – Null

Répondre

0

Vous pouvez utiliser cette fonction qui prend le nom du service en tant que premier paramètre et la deuxième action. Vous devez utiliser la commande windows runas pour exécuter une commande en utilisant un autre utilisateur.

import os 

def toggle_service(name, action): 
    cmd = 'runas /noprofile /user:administrator "net {} \'{}\'"'.format(action, name) 
    os.system(cmd) 

Pour l'exécuter par exemple utiliser toggle_service('Print Spooler', 'start')