50 Stimmen

Powershell-Skript zum Ändern des Dienstkontos

Verfügt jemand über ein Powershell-Skript zum Ändern der von einem Windows-Dienst verwendeten Anmeldeinformationen?

3voto

VonC Punkte 1117238

In Anbetracht dessen, dass innerhalb dieser Klasse:

$class=[WMICLASS]'\\.\root\Microsoft\SqlServer\ComputerManagement:SqlService'

gibt es eine Methode namens setserviceaccount() kann dies sein Skript wird tun, was Sie wollen:

# Copyright Buck Woody, 2007
# All scripts provided AS-IS. No functionality is guaranteed in any way.
# Change Service Account name and password using PowerShell and WMI
$class = Get-WmiObject -computername "SQLVM03-QF59YPW" -namespace
root\Microsoft\SqlServer\ComputerManagement -class SqlService

#This remmed out part shows the services - I'll just go after number 6 (SQL
#Server Agent in my case):
# foreach ($classname in $class) {write-host $classname.DisplayName}
# $class[6].DisplayName
stop-service -displayName $class[6].DisplayName

# Note: I recommend you make these parameters, so that you don't store
# passwords. At your own risk here!
$class[6].SetServiceAccount("account", "password")
start-service -displayName $class[6].DisplayName

2voto

Silex Punkte 1521

Um den Kommentar von @alastairs deutlicher zu machen: der 6. Parameter muss $false 代わりに $null wenn Sie Domänenkonten verwenden:

$service = Get-WMIObject -class Win32_Service -filter 'Service Name'
$service.change($null, $null, $null, $null, $null, $false, "DOMAIN\account", "mypassword")

Ohne dies funktionierte es bei 4/5 der Dienste, die ich zu ändern versuchte, aber einige verweigerten die Änderung (Fehler 21).

1voto

Blue Clouds Punkte 5708
$svc = Get-WmiObject win32_service -filter "name='serviceName'"

die Position des Benutzernamens und des Passworts kann sich ändern, also versuchen Sie diese Zeile, um die richtige Stelle zu finden $svc.GetMethodParameters("change")

$svc.change($null,$null,$null,$null,$null,$null,$null,$null,$null,"admin-username","admin-password")

0voto

MoonStom Punkte 2680

Was ich im Standard-PS-Stack nicht finden kann, finde ich in Carbon :

http://get-carbon.org/help/Install-Service.html

http://get-carbon.org/help/Carbon_Service.html (nur Carbon 2.0)

0voto

Syed Waqas Punkte 2350

Die gegebenen Antworten erfüllen die Aufgabe.

Es gibt jedoch noch ein weiteres wichtiges Detail: Um die Anmeldeinformationen zu ändern und den Dienst erfolgreich zu starten, müssen Sie zunächst diesem Benutzerkonto die Berechtigung zur "Anmeldung als Dienst" erteilen .

Um diese Berechtigung einem Benutzer zu gewähren, verwenden Sie das mitgelieferte Powershell-Skript ici indem Sie einfach den Benutzernamen des Kontos angeben und dann die anderen Befehle ausführen, um die Anmeldeinformationen für einen Dienst zu aktualisieren, wie in den anderen Antworten erwähnt, d. h.,

$svc=gwmi win32_service -filter 'Service Name'

$svc.change($null,$null,$null,$null,$null,$null,'.\username','password',$null,$null,$null)

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