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, 2112 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Erkennung und -Abwehr
gelöst Lokale Sicherheitsrichtlinie mit Admin-Konto konfigurieren (6)

Frage von garack zum Thema Erkennung und -Abwehr ...

VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

Erkennung und -Abwehr
Lokale Virenprüfstation : Windows 10: Ändern von Einstellungen verhinden (5)

Frage von TryAndSolve zum Thema Erkennung und -Abwehr ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...