Je souhaite créer un script qui sera lancé via un serveur SSH pour démarrer / arrêter un service Windows. L'utilisateur SSH fait partie du groupe d'administrateurs. Cependant, lorsque j'exécute le script, un message d'erreur m'indique que le service ne peut pas être démarré.
Comment puis-je m'assurer que mon script est lancé avec des privilèges d'administrateur? J'ai fait des scripts similaires sous Linux en utilisant sudo service myservice start/stop
. Je cherche un équivalent dans Windows, si une telle chose existe.
Mon shell ps1 ressemble à ceci:
function start() { Start-Service MyService // verify service started here }
function stop() { Stop-Service MyService // verify service stopped }
function status() { // Return Running/Stopped for MyService }
windows
ssh
batch
powershell
Byob
la source
la source
Réponses:
Je voudrais que le script SSH démarre un script PowerShell. Powershell est capable de s'élever, puis de démarrer des services d'arrêt et de vérifier leur statut.
Un pseudo code:
Où powershell.bat a tout le code nécessaire pour faire ce que vous voulez avec les services.
la source
Je sais que vous voulez utiliser bash / ssh, mais le moyen le plus simple de gérer Windows sous Linux est avec Python et WMI
http://timgolden.me.uk/python/wmi/index.html
http://timgolden.me.uk/python/wmi/cookbook.html
http://timgolden.me.uk/python/wmi/tutorial.html
Si je n’ai pas besoin de BASH / SSH, c’est la procédure la plus simple. Si vous avez besoin d’utiliser SSH, cela devient plus compliqué. Vous devez maintenant installer Python et WMI sur la machine sur laquelle vous souhaitez l’exécuter. peut vouloir aller avec une langue qui est déjà installée sur chaque machine (VBScript, Powershell, etc.). Cette méthode suppose également que le service WMI est activé sur la zone Windows, ce que certains administrateurs n’aiment pas.
Les machines Linux conviennent parfaitement à l'administration d'environnements mixtes, mais assurez-vous d'utiliser le bon outil, un couteau de poche coupera un arbre, mais une tronçonneuse a été construite pour le couper.
la source
commencer =
net rpc service start SERVICENAME -I IPADDRESS -U USERNAME%PASSWORD
stop =
net rpc service stop SERVICENAME -I IPADDRESS -U USERNAME%PASSWORD
statut =
net rpc service status SERVICENAME -I IPADDRESS -U USERNAME%PASSWORD
Si votre mot de passe contient des promotions, évitez-les avec une barre oblique inverse
\
.la source