Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Konfigurieren eines Dienstes per Script mit WMI oder WSH

Mitglied: Robbe83

Robbe83 (Level 1) - Jetzt verbinden

26.03.2013, aktualisiert 27.03.2013, 2973 Aufrufe, 8 Kommentare

Hallo,

ich bin etwas am verzweifeln da mir google nicht so ganz die Antworten ausgibt die ich mir so vorstelle bzw. mit denen ich arbeiten kann.
Zudem bin ich erst seit knapp 2 Wochen dabei mir etwas mehr über das Scripten beizubringen - also bitte nehmt etwas Rücksicht auf meine nunja teilweise unbedarfte Fragestellung.

Ich bin dabei ein Script mit WSH/WMI für eine automatische Installation eines Programms zu erstellen.

Wenn es relevant ist das Programm ist der DBInventor Standalone Client von Mechworks.

Das Installationsprogramm, welches aus einer *.msi besteht, habe ich schon meinen wünschen entsprechend der Installationsroutine angepasst.

Des weiteren habe ich das Script schon soweit das es mir das Programm automatisch installiert, danach dann die Registryeinträge für die Datenbank erstellt und anschließend den Lizenzdienst installiert.

Soweit sogut.

Mein Problem ist nun allerdings das nach der Installation des Dienstes dieser

1. Nicht gestartet ist
2. die Startbedingung auf manuell steht
3. das lokale Anmeldekonto als Startkonto benutzt wird.

Ich möchte aber gern folgendes Realisieren:

1. Der Dienst soll auf die Startbedingung "Automatisch" gestellt werden
2. Das Anmeldekonto soll wie folgt aussehen (Domäne\Administrator, Passwort: XXXXXXX)
3. der Dienst soll gestartet werden

Den Punkt 1. und tweilweise den Punkt 2. habe ich schon mit folgendem Programmcode hinbekommen.

wsh.RegWrite "HKLM\System\CurrentControlSet\Services\DBWServer\Start", 2, "REG_DWORD"
wsh.RegWrite "HKLM\System\CurrentControlSet\Services\DBWServer\Objectname", "domäne\administrator"


Was mir jetzt aber fehlt ist folgendes:

1. Möchte ich gern per Script das Passwort für die Anmeldung hinterlegen
2. Möchte ich den Dienst direkt aus dem Script raus starten


Wie man Dienste startet habe ich schon mehrfach über Google gefunden. Wie man allerdings die Benutzerdaten hinterlegt da scheiden sich die Geister - oder ich bin einfach zu doof das zu verstehen was mir google da ausgibt *g*.

Entscheidend für eine Antwort ist vielleicht zu wissen das ich kein Programmierer bin und mich auch bisher nicht weiter mit Programmierung auseinander gesetzt habe.
Mitglied: colinardo
26.03.2013, aktualisiert um 16:26 Uhr
Folgende Batch-Befehle sollte dir helfen:
Beim sc-Befehl ist das Leerzeichen hinter den Gleichheits-Zeichen zu beachten!
01.
sc config  Service obj= "Domain\User" password= "xxxxxx" start= "auto" 
02.
net start Service
http://technet.microsoft.com/de-de/library/cc990290(v=ws.10).aspx

das ganze dann in VBS:
01.
Set WshShell = WScript.CreateObject("WScript.Shell") 
02.
WshShell.Run "sc.exe config Service obj= " & chr(34) & "Domain\User"  & chr(34) & " password= " & chr(34) & "xxxxxx" & " start= " & chr(34) & "auto" & chr(34) 
03.
WshShell.Run "net.exe start Service"
Gruss Uwe
Bitte warten ..
Mitglied: Robbe83
26.03.2013 um 16:25 Uhr
Damit habe ich es schon versucht.

Das Problem daran ist nur das es zwar den Starttyp ändert und die Benutzerdaten hinterlegt bzw. auch versucht den Dienst zu starten.

Nur kommt beim Batchaufruf der Fehler das dass Starten des Dienstes wegen falscher Anmeldedaten nicht ausgeführt werden konnte.

Wenn ich dann hingehe und manuell das Passwort oder auch nur den gleichen Benutzernamen eingebe (per Hand) - erst dann funktioniert das ganze.

Eine Idee woran das liegen könnte?

Problem an der batch ist auch das ich das Passwort unverschlüsselt und gut lesbar in der batch stehen habe - was ich eigentlich vermeiden möchte.

Ein erstelltes WSH Script könnte ich verschlüsseln lassen, so das es nicht mehr für die normalen User hier in der Firma lesbar ist.

Deswegen würde mich stark eine Lösung über WSH bzw. WMI interessieren.

Mfg

Robert
Bitte warten ..
Mitglied: colinardo
26.03.2013, aktualisiert 27.03.2013
Per VBS und WMI kannst du dies folgendermasser machen:
In Zeile 3 musst du noch den Dienstnamen ändern und die Benutzerdaten für den Service in Zeile 6.
01.
strComputer = "." 
02.
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
03.
Set colServices = objWMIService.ExecQuery("SELECT * FROM Win32_Service WHERE Name = 'DBWServer'") 
04.
 
05.
For Each objService In colServices 
06.
    errServiceChange = objService.Change(,,,,"Automatic",,"Domain\User","DeinPassword") 
07.
    if errServiceChange = 0 then 
08.
      wscript.echo "Service erfolgreich geändert!" 
09.
    else 
10.
      wscript.echo "Serviceänderung fehlgeschlagen, Fehlercode:" & errServiceChange 
11.
    end if 
12.
    errServiceStart = objService.StartService()   
13.
Next
Wenn du willst das der Dienst mit Systemrechten läuft musst du Zeile 6 wie folget ändern:
01.
errServiceChange = objService.Change(,,,,"Automatic",,"LocalSystem","")
Zur Info: Ein Programm in dem viele Snippets für die Programmierung mit WMI und VBS enthalten sind ist VBSEdit

Grüße Uwe
Bitte warten ..
Mitglied: Robbe83
27.03.2013, aktualisiert um 09:09 Uhr
Moin,

erstmal Danke für die schnellen Antworten.

Ich habe grade mal die zweite Möglichkeit direkt per WMI getestet und komme aber leider nur zu foldenem Ergebnis.

Und zwar schreibt er mir das der Typ in Zeile 6 nicht passt - sprich er hat ein Problem mit
"...
errServiceChange = objService.Change( , , , , ,"Auto" , "Domain\User" , "DeinPassword")
..."

das "errServiceChange" passt ihm da nicht.

Eine Idee woran das liegen könnte?

Mfg

Robert

EDIT:

Also es funktioniert jetzt so halbwegs.

Hab bei ( , , , , , "Auto".....) noch ein "," eingefügt und so startet er zumindestens dann schonmal den Dienst und meldet keinen Fehler mehr.

Allerdings findet der Ausdruck "errServiceChange" dann keinerlei Beachtung mehr.

Die "," sind Platzhalter richtig? - Kann es ev. sein das die Konstellation der Platzhalter anders verlaufen muss?
Bitte warten ..
Mitglied: colinardo
27.03.2013, aktualisiert um 09:29 Uhr
Habe die Fehler oben korrigiert. Die Parameterreihenfolge war nicht mehr ganz aktuell und "Auto" muss "Automatic" heißen.
Habe noch eine Fehlerabfrage mit eingebaut.
Die Fehlercodes die die Change()-Methode zurückgeben kann sind folgende:
0 Success 
1 Not Supported 
2 Access Denied 
3 Dependent Services Running 
4 Invalid Service Control 
5 Service Cannot Accept Control 
6 Service Not Active 
7 Service Request Timeout 
8 Unknown Failure 
9 Path Not Found 
10 Service Already Running 
11 Service Database Locked 
12 Service Dependency Deleted 
13 Service Dependency Failure 
14 Service Disabled 
15 Service Logon Failure 
16 Service Marked For Deletion 
17 Service No Thread 
18 Status Circular Dependency 
19 Status Duplicate Name 
20 Status Invalid Name 
21 Status Invalid Parameter 
22 Status Invalid Service Account 
23 Status Service Exists 
24 Service Already Paused
Bitte warten ..
Mitglied: Robbe83
27.03.2013 um 10:07 Uhr
Moin,

also jetzt funktioniert es endlich.

Das Problem das der Dienst nicht starten kann besteht aber immernoch.

Habe nun herrausgefunden das dass Problem darin besteht, das wenn ich die Benutzerdaten nochmal erneut eingebe -
Windows dem Konto das Recht "als Dienst anmelden" einräumt.

Erst danach kann der Dienst mit den Benutzerdaten ordentlich gestaret werden.

Gibt es da eine Möglichkeit gleich im Script dem Benutzerkonto dieses Recht einzuräumen??

Mfg

Robert
Bitte warten ..
Mitglied: colinardo
27.03.2013, aktualisiert um 10:28 Uhr
Dazu nehme man das Tool NTRIGHTS aus dem NT Ressource Kit und führen folgende Befehlszeile aus.
01.
ntrights.exe -u domain\domain-user +r SeServiceLogonRight
oder folge dieser Anleitung für das Tool Security Configuration Tool Set
http://technet.microsoft.com/en-us/library/bb742512.aspx
und hier
http://social.technet.microsoft.com/Forums/en-US/winserverGP/thread/bf5 ...

Grüße Uwe
Bitte warten ..
Mitglied: Robbe83
27.03.2013 um 13:21 Uhr
Sooo...

.. also das Script funktioniert jetzt perfekt. Die Installation läuft ohne Fehler durch, der Dienst startet ohne Probleme und das ganze Programm läuft einwandfrei!

Danke dir für deine kompetente und vorallem sehr schnelle Hilfe.

Mfg

Robert
Bitte warten ..
Ähnliche Inhalte
Exchange Server

WMI Dienst nicht vorhanden Exchange Migration

Frage von AlternativendeExchange Server12 Kommentare

Hallo zusammen, ich bin derzeit damit beschäftigt einen völlig lokal agierenden Exchange von einm Server auf einen anderen umzuziehen. ...

Windows Server

PRTG Paessler Monitoring WMI konfigurieren per GPO

Frage von geTr0ffEnWindows Server3 Kommentare

Hallo, ich würde mir gerne das Leben ein wenig einfacher machen. Es geht, wie oben beschrieben, um das Einrichten ...

Netzwerkmanagement

WakeOnLAN für die Netzwerkkarte remote über ein Powershell- oder WMI-Script aktivieren

Frage von GlintofGoldNetzwerkmanagement11 Kommentare

Hallo, ich muss in einem räumlich weit auseinanderliegenden Netzwerk für mehrere Rechner WakeOnLAN aktivieren. Das ist so ziemlich das ...

Batch & Shell

Überwachen des SQL-Dienst mit einem Script und Monitoring

gelöst Frage von Thomas91Batch & Shell5 Kommentare

Guten Morgen, ich möchte unter Debian 7.4 mit einem Script, welches von einer Monitoringsoftware ausgeführt wird. Den Rückgabewert des ...

Neue Wissensbeiträge
Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 21 StundenWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Sicherheit

Zero Day-Schwachstelle im Internet Explorer - wird von APT bereits ausgenutzt

Information von kgborn vor 1 TagSicherheit

Im Kernel des Internet Explorer scheint es eine Zero Day-Lücke zu geben, die von staatlichen Akteuren (APT) im Rahmen ...

Microsoft
Folder Security Viewer-Lizenzen zu gewinnen
Information von kgborn vor 1 TagMicrosoft

Ich nehme das Thema mal in Absprache mit Frank hier auf, da es für den einen oder anderen Administrator ...

Hardware

Feueralarm killt Festplatten in Rechenzentrum - führt zu größerem Ausfall

Information von kgborn vor 1 TagHardware12 Kommentare

Noch ein kleiner Beitrag für Administratoren, die in Rechenzentren aktiv sind - so als Fingerzeig. Denn es gibt Szenarien, ...

Heiß diskutierte Inhalte
Linux
Linux Server oder Windows Server - lohnt eine Umstellung auf Linux und ebenso basierende SW bei einer langfristigen Planung?
Frage von motus5Linux27 Kommentare

Wir brauchen bei uns einen neuen Server. Dieser wird als Fileserver, Domäne Controller sowie Exchange Server verwendet. Wir versuchen ...

C und C++
Frage1 C Programmierung-Makefile Frage2 PHP-Programmierung HTTP-Fehler 404
Frage von KatalinaC und C++24 Kommentare

Hallo, ich habe 2 Fragen, die nichts miteinander zu tun haben aber mit denen ich mich gerade beschäftige: 1. ...

LAN, WAN, Wireless
Watchguard T15 VPN Einrichtung
gelöst Frage von thomasjayLAN, WAN, Wireless22 Kommentare

Hallo zusammen, wir möchten gerne über unsere Watchguard T15 einen VPN-Tunnel (Mobile VPN with IPSec) einrichten! Als Client nutzen ...

DSL, VDSL
ISP Wechsel auf Vodefone Koax, Gebäudeverkabelung nur per Cat 7
gelöst Frage von wusa88DSL, VDSL19 Kommentare

Hallo Zusammen, ich bin momentan bei Mnet als Glasfaser Kunde und möchte Preis/Leistungs-Technisch zu Kabel Deutschland / Vodafone wechseln. ...