Comment redémarrer un service sur une machine distante sous Windows? [fermé]

138

Parfois, lors du débogage, j'ai besoin de redémarrer un service sur une machine distante. Actuellement, je fais cela via Remote Desktop. Comment cela peut-il être fait à partir de la ligne de commande sur ma machine locale?

Josh Kodroff
la source
1
Aucune de ces réponses n'explique comment effectuer le démarrage à distance, tout en gérant les autorisations utilisateur requises pour exécuter l'appel de service.
djangofan

Réponses:

206

Vous pouvez utiliser la console des services, en cliquant sur le côté gauche puis en sélectionnant l'option «Se connecter à un autre ordinateur» dans le menu Action.

Si vous souhaitez utiliser uniquement la ligne de commande, vous pouvez utiliser

sc \\machine stop <service>
Vinko Vrsalovic
la source
1
Fonctionne parfaitement à partir de cmd.exe. Ne fonctionne pas dans PowerShell, probablement à cause de l'erreur \\, suit: Set-Content: Impossible de trouver un paramètre correspondant au nom du paramètre «[le nom du service]». Le seul inconvénient mineur est qu'il vous ramène à la ligne de commande avant la fin de l'opération.
Josh Kodroff
4
puisque la commande sc fonctionne de manière asyncronale, si vous avez besoin de script pour un redémarrage de service, jetez un œil aux scripts batch que j'ai postés ici: stackoverflow.com/questions/1405372/...
Eric Falsken
6
Sur Powershell, vous devez utiliser sc.exe \\machine stop <service>. Sinon, je pense que sc fait référence à une commande différente.
CJBrew
5
Quel est l'ensemble minimal d'autorisations requis pour qu'un utilisateur démarre un service distant spécifique sur l'ordinateur distant?
huseyint
+1 cela fonctionne sans tracas dans PowerShell, contrairement à des choses comme Invoke-Command \\ remote_machine {Start-Service ...} (qui nécessite Windows Remote Management configuré sur remote_machine), et il l'emporte sur PsTools en ce sens que sc.exe vient par défaut avec l'installation de Windows
hello_earth
41

Vous pouvez utiliser mmc:

  1. Démarrer, Exécuter. Tapez "mmc".
  2. Fichier / Ajouter / Supprimer un composant logiciel enfichable ... Cliquez sur "Ajouter ..."
  3. Recherchez «Services» et cliquez sur «Ajouter»
  4. Sélectionnez "Un autre ordinateur:" et saisissez le nom d'hôte / l'adresse IP de la machine distante. Cliquez sur Terminer, Fermer, etc.

À ce stade, vous serez en mesure de gérer les services comme s'ils se trouvaient sur votre ordinateur local.

Ryan Duffield
la source
1
Oups, je n'ai pas vu l'exigence "ligne de commande".
Ryan Duffield
7
De quel (s) port (s) aurais-je besoin pour débloquer sur mon serveur?
The Muffin Man
2
C'est de l'or. J'ai toujours accédé à distance aux serveurs pour gérer les services. Maintenant, avec cela, je peux avoir une liste de différents serveurs dans la même console.
Alan
9

Vous pouvez utiliser la commande System Internals PSEXEC pour exécuter à distance un net stop yourservice , puis net start yourservice

Philibert Perusse
la source
PSService est également utile. Il y a beaucoup de puissance dans ces outils.
Brad Bruce
7

En utilisant la ligne de commande, vous pouvez faire ceci:

AT \\computername time "NET STOP servicename"
AT \\computername time "NET START servicename"
Andrew Moore
la source
5
pour que ce soit clair, la commande "AT" utilise le planificateur Windows pour planifier une commande. c'est exagéré pour le script d'un certain nombre de commandes à distance et ne garantit pas l'ordre d'exécution ou l'achèvement de la commande avant la commande suivante. La commande SC est bien meilleure pour cela. Jetez un œil aux scripts batch que j'ai postés dans cette question: stackoverflow.com/questions/1405372/…
Eric Falsken
1

Je vous suggère de jeter un œil à RSHD

Vous n'avez pas besoin de vous soucier d'un client, Windows l'a par défaut.

tafa
la source
0

Eh bien, si vous avez Visual Studio (je sais que c'est en 2005, je ne suis pas sûr des versions antérieures), vous pouvez ajouter la machine distante à votre balise "Explorateur de serveurs". À ce stade, vous aurez accès aux SERVICES qui s'exécutent ou peuvent être exécutés à partir de cette machine (ainsi qu'aux journaux d'événements, aux files d'attente et à quelques autres choses intéressantes).

Stephen Wrighton
la source
Bizarrement, cela fonctionne dans VS2005 mais PAS dans VS2008. Vous pouvez toujours PARCOURIR les services mais vous ne pouvez plus les démarrer ou les arrêter directement. Au lieu de cela, vous pouvez cliquer avec le bouton droit sur le nœud Services et démarrer Service Manager pour cet hôte.
Peter Wone le
0

Une façon serait d'activer le serveur telnet sur la machine sur laquelle vous souhaitez contrôler les services (ajouter / supprimer des composants Windows)

DOS invite
Type de telnet yourmachineip / Nom
Connectez - vous
début et serviceName net de type * par exemple w3svc

Cela démarrera IIS ou vous pouvez utiliser net stop pour arrêter un service.

En fonction de votre configuration, vous devez rechercher un moyen de sécuriser la connexion telnet car je pense qu'elle n'est pas chiffrée.

Alexmac
la source
2
Telnet est très certainement non chiffré.
Josh Kodroff
0

Plusieurs bonnes solutions ici. Si vous êtes toujours sur Win2K et que vous ne pouvez rien installer sur l'ordinateur distant, cela fonctionne également:

Ouvrez la console de gestion de l'ordinateur (cliquez avec le bouton droit sur Poste de travail, choisissez Gérer; ouvrez les outils d'administration dans le menu Démarrer ou ouvrez la console MMC à l'aide du composant logiciel enfichable).

Faites un clic droit sur le nom de votre ordinateur et choisissez «Se connecter à un ordinateur distant»

Entrez le nom de l'ordinateur et les informations d'identification et vous avez un accès complet à de nombreuses fonctions d'administration, y compris le panneau de configuration des services.


la source