Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

VBS: lokale Dienste verwalten mittels VBS

Frage Entwicklung VB for Applications

Mitglied: Yannosch

Yannosch (Level 2) - Jetzt verbinden

07.10.2013 um 10:45 Uhr, 2136 Aufrufe, 11 Kommentare

Guten Tag liebe Community!

Ist einer von euch hier Anwesenden im Wissen wie man folgendes mittels VBS realisieren könnte? ...

~Alle laufenden Dienste des Systems anzeigen.
~Alle nichtlaufenden Dienste des Systems anzeigen.
~Einen nichtlaufenden Dienst starten.
~Einen laufenden Dienst anhalten.

Leichte Denkanstöße würden mir schon weiterhelfen
Sind die Dienste mittels WMI abrufbar, oder irre ich mich da ? ...

Liebe Grüße von
Y@nnosch!
Mitglied: Bitboy
07.10.2013 um 10:51 Uhr
Hi,

einfaches googlen bringt folgenden Treffer zutage: http://msdn.microsoft.com/en-us/library/aa394602(v=vs.85).aspx
Bitte warten ..
Mitglied: Yannosch
07.10.2013 um 13:03 Uhr
Danke für die schnelle Antwort ! ,

habe jetzt etwas entwickelt , was aber noch Fehler produziert ! Ich will in einer MsgBox alle laufenden Dienste und in einer anderen MsgBox alle nichtlaufenden Dienst angezeigt bekommen...

Ein Beispiel für die Liste der laufenden Dienste :



Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colListOfServices = objWMIService.ExecQuery("Select * from Win32_Service Where State = Running")
For Each objItem in colListOfServices
If objServices.Name <> "" Then
allServices = allServices & objServices.Name & vbNewLine
End If


Next

MsgBox "Dies sind alle laufenden Dienste: " & vbnewline & allServices

In diesem Script soll sich wohl laut WSH in Zeile drei der Fehler verstecken ...
Bitte warten ..
Mitglied: colinardo
07.10.2013 um 13:22 Uhr
da waren ja auch ein paar Fehler drin:
so gehts ...
01.
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") 
02.
Set colListOfServices = objWMIService.ExecQuery("Select * from Win32_Service Where State = 'Running'") 
03.
For Each objItem in colListOfServices 
04.
	If objItem.Name <> "" Then 
05.
		allServices = allServices & objItem.Name & vbNewLine 
06.
	End If 
07.
Next 
08.
MsgBox "Dies sind alle laufenden Dienste: " & vbnewline & allServices
Grüße Uwe
Bitte warten ..
Mitglied: Yannosch
07.10.2013 um 14:04 Uhr
Perfekt, genau das was ich wollte :D .... aber kann man in die MsgBox so ne art "Scrollbar" einbauen ... Die MsgBox ist so lange das ich sie nicht mal mehr auf einen Bildschirm bekomme :D

Liebe Grüße und 1000 Dank an alle beteiligten von
Y@annosch !
Bitte warten ..
Mitglied: Yannosch
07.10.2013 um 14:36 Uhr
Oder vielleicht einfach die Liste anders darstellen [mittels Array]

Dienst 1 Dienst 2 Dienst 3
Dienst 4 Dienst 5 Dienst 6
Dienst 7 Dienst 8 Dienst 9


-> Dann würde alles Dargestellt werden können ...
Bitte warten ..
Mitglied: colinardo
07.10.2013 um 18:24 Uhr
dann machs halt einfach mit einem Trennzeichen:
01.
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") 
02.
Set colListOfServices = objWMIService.ExecQuery("Select * from Win32_Service Where State = 'Running'") 
03.
For Each objItem in colListOfServices 
04.
	If objItem.Name <> "" Then 
05.
		allServices = allServices & objItem.Name & " # " 
06.
	End If 
07.
Next 
08.
MsgBox "Dies sind alle laufenden Dienste: " & vbnewline & allServices
ansonsten hast du via Powershell wesentlich mehr Möglichkeiten mit Windows Forms:
01.
function GenerateForm($sText) { 
02.
 
03.
#region Import the Assemblies 
04.
[reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null 
05.
[reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null 
06.
#endregion 
07.
 
08.
#region Generated Form Objects 
09.
$form1 = New-Object System.Windows.Forms.Form 
10.
$textBox1 = New-Object System.Windows.Forms.TextBox 
11.
$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState 
12.
#endregion Generated Form Objects 
13.
 
14.
$System_Drawing_Size = New-Object System.Drawing.Size 
15.
$System_Drawing_Size.Height = 276 
16.
$System_Drawing_Size.Width = 362 
17.
$form1.ClientSize = $System_Drawing_Size 
18.
$form1.DataBindings.DefaultDataSourceUpdateMode = 0 
19.
$form1.MaximizeBox = $False 
20.
$form1.MinimizeBox = $False 
21.
$form1.Name = "form1" 
22.
$form1.Text = "Running Processes" 
23.
 
24.
$textBox1.Anchor = 15 
25.
$textBox1.DataBindings.DefaultDataSourceUpdateMode = 0 
26.
$System_Drawing_Point = New-Object System.Drawing.Point 
27.
$System_Drawing_Point.X = 12 
28.
$System_Drawing_Point.Y = 12 
29.
$textBox1.Location = $System_Drawing_Point 
30.
$textBox1.Multiline = $True 
31.
$textBox1.Name = "textBox1" 
32.
$textBox1.ReadOnly = $True 
33.
$textBox1.ScrollBars = 2 
34.
$System_Drawing_Size = New-Object System.Drawing.Size 
35.
$System_Drawing_Size.Height = 252 
36.
$System_Drawing_Size.Width = 338 
37.
$textBox1.Size = $System_Drawing_Size 
38.
$textBox1.TabIndex = 0 
39.
$textBox1.text = $sText 
40.
 
41.
$form1.Controls.Add($textBox1) 
42.
 
43.
#Save the initial state of the form 
44.
$InitialFormWindowState = $form1.WindowState 
45.
#Init the OnLoad event to correct the initial state of the form 
46.
$form1.add_Load($OnLoadForm_StateCorrection) 
47.
#Show the Form 
48.
$form1.ShowDialog()| Out-Null 
49.
 
50.
} #End Function 
51.
 
52.
$runningServices = Get-Service | ?{$_.Status -eq "Running"} | %{"$($_.Name)`r`n"} 
53.
GenerateForm $runningServices
Grüße Uwe
Bitte warten ..
Mitglied: Yannosch
08.10.2013, aktualisiert um 07:11 Uhr
Hey Uwe , vielen lieben Dank für die fixe und auch so umfangreiche Antwort ... klappt alles prima, bis auf die Sache mit der Textbox ... irgendwie zeigt sie mir trotz des Trennzeichens " | " nicht alles an ... es scheint so alsob die MsgBox "vollgelaufen" wäre ... also es wird beispielsweise nur bis zu den Diensten mit "s" vorne gegangen... wenn ich dann das Trennzeichen weglasse dann siehts zwar bisschen komisch aus , ABER es werden die Dienste beispielsweise auch bis "w" angezeigt .... Kann die MsgBox nur begrenzt Inhalt haben ? .... Haber darüber nichts gefunden ...

Liebe Grüße von
Y@nnosch!

[UPDATE]: Ich habe doch herrausgefunden, dass die MsgBox auf 1200 Zeichen begrenzt ist ... jetzt schreibe ich es einfach in eine .txt Datei mit Document.writeline ... ABER wie bekomme ich das hin, das das Editorfenster geöffnet wird UND in den Vordergrund gestellt wird ? ... Sodass derjenige der das Script ausführt den EditorPad auch sieht ...


Liebe Grüße von
Y@nnosch!
Bitte warten ..
Mitglied: colinardo
08.10.2013, aktualisiert um 09:15 Uhr
01.
Set objShell = CreateObject("WScript.Shell") 
02.
objShell.Run "notepad " & "c:\textdatei.txt", 1, true
Wenn du willst das das Script wartet bis das Notepad geschlossen wird, setzt du den letzten Parameter auf True , wenn es nicht warten soll auf False.

Grüße Uwe
Bitte warten ..
Mitglied: Yannosch
08.10.2013 um 08:50 Uhr
Set meineDatei = fso.CreateTextFile("c:\textdatei.txt")
meineDatei.writeline (allServices)
Set objShell = CreateObject("WScript.Shell")
objShell.Run("notepad " & "c:\textdatei.txt", 1, true)

Fehlermeldung [Letzte Zeile] : Unterroutinen (Sub) dürfen keine Klammern enthalten.
Datei soll auch nach dem anschauen, sobald sie wegge "X" t wird gelöscht werden ... aber einfach datei.delet , das bekomm ich ja noch hin....
Bitte warten ..
Mitglied: colinardo
08.10.2013 um 09:16 Uhr
waren die Klammern zu viel,ist oben korrigiert
Bitte warten ..
Mitglied: Yannosch
08.10.2013 um 09:30 Uhr
Perfekt, vielen Dank... Und wie bekomme ich die MsgBox die nach dem Notepad folgt wieder in den Vordergrund ?
Bitte warten ..
Ähnliche Inhalte
Windows Server
Remotedesktop-Dienste auf Windows 2016 Essentials (8)

Frage von Kontex zum Thema Windows Server ...

Exchange Server
Probleme mit Exchange-Dienste, E-Mails sind nicht angekommen (2)

Frage von cramtroni zum Thema Exchange Server ...

Ubuntu
gelöst Dienste fahren nach Neustart nicht vernünftig hoch (Uhrzeit) (5)

Frage von Moddry zum Thema Ubuntu ...

DNS
gelöst Öffentliche Domain wie eine lokale Domain behandeln (5)

Frage von mikahaapamaeki zum Thema DNS ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Statische Routen mit Shorewall, ISC-DHCP Server konfigurieren für Android Devices (25)

Frage von terminator zum Thema LAN, WAN, Wireless ...

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

Hardware
16-20 Port POE Switch mit VLAN (19)

Frage von thomasreischer zum Thema Hardware ...

Windows Server
Exchange HyperV Prozessorlast (18)

Frage von theoberlin zum Thema Windows Server ...