11 Stimmen

Starten und Stoppen von Windows-Diensten aus der Ferne mit PSEXEC

Wie startet und stoppt man einen Windows-Dienst aus der Ferne mit PSEXEC? Vorzugsweise die Syntax zu schreiben Ich habe versucht, das Cmdlet unten angegeben

psexec \\Server -u Administrator -p Somepassword ServiceName

1 Stimmen

Wäre es nicht besser, dies auf serverfault.com zu tun?

18voto

JBRWilkinson Punkte 4764

PSService auf SysInternals ist speziell für die Fernsteuerung von Diensten gedacht::`

psservice [\\computer [-u username] [-p password]] <command> <options>

wo:

Abfrage Zeigt den Status eines Dienstes an.

Konfiguration Zeigt die Konfiguration eines Dienstes an.

setconfig Legt den Starttyp (deaktiviert, automatisch, Bedarf) eines Dienstes fest.

Start Startet einen Dienst.

stoppen Stoppt einen Dienst.

Neustart Stoppt einen Dienst und startet ihn dann neu.

Pause Pausiert einen Dienst

Fortsetzung Setzt einen pausierten Dienst fort.

abhängen Listet die Dienste auf, die von dem angegebenen Dienst abhängig sind.

Sicherheit Gibt den Sicherheitsdeskriptor des Dienstes aus.

finden. Durchsucht das Netz nach dem angegebenen Dienst.

\\computer Zielt auf das angegebene NT/Win2K-System ab.

Fügen Sie den Schalter -u mit einem Benutzernamen und einem Kennwort ein, um sich am entfernten System anzumelden, wenn Ihre Sicherheitsdaten es Ihnen nicht erlauben, Leistungsindikatoren vom entfernten System abzurufen. Wenn Sie die Option -u, aber kein Passwort mit der Option -p angeben, wird PsService Sie zur Eingabe des Passworts auffordern und es nicht auf dem Bildschirm ausgeben.

14voto

jrbjazz Punkte 3092

Eine weitere Alternative zu psexec ist sc. Sie können sc verwenden, um Dienste aus der Ferne zu starten oder zu beenden:

sc \\server start ServiceName

sc \\server stop ServiceName

Es gibt keine "Login"-Informationen, also müssen Sie vielleicht Folgendes ausführen

net use \\server password /USER:user

bevor Sie den Befehl sc ausführen.

Ein Vorteil gegenüber psexec ist, dass auf dem entfernten Rechner kein Konsolenfenster angezeigt wird.

3 Stimmen

Das ist gut. Ich habe festgestellt, dass ich Folgendes tun muss: Netznutzung \\server\IPC $ Kennwort /USER:user

12voto

RichieHindle Punkte 256891

Ich kann das im Moment nicht testen, aber es sollte so sein:

psexec \\server -u username -p password net start ArgusCommunityWorkerService

y

psexec \\server -u username -p password net stop ArgusCommunityWorkerService

0voto

Rudixx Punkte 95

Verwendung von PSEXEC

Mit der folgenden Batch-Datei können Sie Dienste auf mehreren entfernten Rechnern anhalten und starten. Erstellen Sie die Datei Computers.txt in demselben Verzeichnis, in dem die Batch-Datei ausgeführt wird, und führen Sie die Hostnamen der PCs einzeln pro Zeile auf.

@echo off
TITLE Manage Services v1.0
SET suffix=%date:~-4,4%%date:~-10,2%%date:~-7,2%_%time:~0,2%%time:~3,2%%time:~6,2%
SET /P username=Enter your admin username: 
set "psCommand=powershell -Command "$pword = read-host 'Enter Password' -AsSecureString ; ^
    $BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword); ^
        [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)""
for /f "usebackq delims=" %%p in (`%psCommand%`) do set password=%%p
:service
SET /P servicename=Enter service name:
:begin
echo ========================================
echo 1) Start
echo 2) Stop
echo 3) Choose another service
echo ========================================
ECHO.
set /p op=Select an option:
if "%op%"=="1" SET action=start
if "%op%"=="2" SET action=stop
if "%op%"=="3" goto service

psexec "\\@%~dp0Computers.txt" -u %username% -p %password% -h net %action% %servicename% >>%suffix%.log 2>&1

pause
cls
goto begin

PowerShell verwenden

# Point the script to the text file with remote computers
$RemoteComputers = Get-Content "$PSScriptRoot\Computers.txt"

# sets service name
$Service = "uvnc_service"

# Counter for progress bar
$counter = 0

ForEach ($Computer in $RemoteComputers) {
    $counter++
     Try
         {
          Write-Progress -Activity 'Processing computers' -CurrentOperation $Computer -PercentComplete (($counter / $RemoteComputers.count) * 100)
          Start-Sleep -Milliseconds 200
          Get-Service -Name $Service -ComputerName $Computer | Restart-Service -Force -ErrorAction Stop
          Write-Output "$(Get-Date -format "yyyy-MM-dd hh:mm:ss"),$computer" | out-file -append -filepath "$PSScriptRoot\success.log"
         }
     Catch
         {
          Write-Output "$(Get-Date -format "yyyy-MM-dd hh:mm:ss"),$computer" | out-file -append -filepath "$PSScriptRoot\failed.log"
         }
}

0voto

Manifest Man Punkte 675

Bezug nehmend auf Microsoft Eine Alternative ist die Verwendung von psservice die Teil von pstools unter folgendem Link heruntergeladen werden:

PsTools herunterladen (2.7 MB)

Wenn jemand benötigt

Starten, stoppen, neu starten, etc... eines Windows-Dienstes aus der Ferne

wie in der offiziellen Referenz von Microsoft erwähnt, den entsprechenden Befehl unter Verwendung der mitgelieferten ausführbaren Datei

PsService.exe

könnte in etwa wie folgt aussehen (Fall 1 und Fall 2), wenn Sie Windows PowerShell

Fall 1: Der Benutzer, der den gewünschten Befehl (z. B. Neustart) nach der Anmeldung ausführt, ist ein entfernter Computerbenutzer mit entsprechenden Rechten

. \PsService.exe \\Remote -Computername-OR-ServerName -u Ferncomputername-oder-Servername \Remote -ComputerBenutzer' -p Remote-Computer-Benutzer-Passwort' Neustart Dienstname

Fall 2: Der Benutzer, der nach der Anmeldung den gewünschten Befehl (z. B. Neustart) ausführt, ist der Superuser der Domäne (z. B. DomainAdministrator)

. \PsService.exe \\Remote -Computername-OR-ServerName -u 'DomainKurzname \DomainAdministrator ' -p 'DomainAdministrator-Passwort' restart Dienstname

PS: Beachten Sie, dass in diesem Fall die Parameterwerte in einfachen Anführungszeichen für

Nutzername

-u

und Passwort

-p

für komplexes Passwort und/oder Benutzernamen

Das war's, Ihr Befehl sollte reibungslos ausgeführt werden, haben Sie nur etwas Geduld!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X