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

Frage Entwicklung Batch & Shell

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, 2930 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
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 2 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 2 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 2 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 2 TagenSicherheit10 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Entwicklung
VBS: alle PDF-Dateien in einem Ordner gleichzeitig öffnen
gelöst Frage von JuweeeEntwicklung9 Kommentare

Hallo, ich habe in deiner Ordnerstruktur (.\Tagesberichte\xx.18\) mehrere dynamische PDF-Formulare (mit LCD erstellt). Die Berichtsformulare sind im Layout alle ...

Firewall
Penetrationstester-Labor - Firewalls
Frage von Oli-nuxFirewall9 Kommentare

Mich würde interessieren warum man beim Einrichten eines Penetrationstester-Labor (VMs) die Firewall der Systeme deaktivieren soll? Hat das nur ...

Netzwerkgrundlagen
IPv6 Inter-VLAN Routing
gelöst Frage von clSchakNetzwerkgrundlagen8 Kommentare

Hi ich befasse mich gerade mit der Implementierung von IPv6 was bisher (in einem VLAN) korrekt funktioniert inkl. DNS ...