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

VBS: lokale Dienste verwalten mittels VBS

Mitglied: Yannosch

Yannosch (Level 2) - Jetzt verbinden

07.10.2013 um 10:45 Uhr, 2296 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
Netzwerke
Serverumzug lokal (physisch)
Frage von freakalabenniNetzwerke10 Kommentare

Hallo Allerseits, ich hätte da eine Frage bzgl. eines Projektes das wir uns für eine unserer Niederlassungen vorstellen. Derzeit ...

Windows Server

Verwendung lokal angeschlossener Geräte

Frage von raba34Windows Server17 Kommentare

Liebe Gemeinde, ich möchte in einer RDP-Sitzung (PC mit Windows 10 Pro -> Windows Server 2012 R2) die Verwendung ...

Exchange Server

Exchange 2010 AutoDiscover lokal

gelöst Frage von chb1982Exchange Server16 Kommentare

Hallo zusammen, ich habe ein Problem in einer Umgebung um Exchange 2010 und damit verbunden Ladehämmungen was das Verständnis ...

Windows Server

Serverplanung - Hosted vs. Lokal

Frage von martin2309Windows Server8 Kommentare

Hallo! Ich muss nächstes Jahr einen Server neu plane, die Hardware kommt in die Jahre und es sind neue ...

Neue Wissensbeiträge
Humor (lol)
Administrator.de Perlen
Tipp von DerWindowsFreak2 vor 10 StundenHumor (lol)2 Kommentare

Hallo, Heute beim stöbern auf dieser Seite bin auf folgenden Thread aus dem Jahre 2006 gestossen: Was meint ihr? ...

Erkennung und -Abwehr
OpenSSH-Backdoor Malware erkennen
Tipp von Frank vor 1 TagErkennung und -Abwehr

Sicherheitsforscher von Eset haben 21 Malware-Familien untersucht. Die Malware soll Hintertüren via OpenSSH bereitstellen, so dass Angreifer Fernzugriff auf ...

iOS
WatchChat für Whatsapp
Tipp von Criemo vor 4 TageniOS5 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor!
Tipp von Criemo vor 5 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
SSD zeigt falsche Werte
Frage von karl2014Festplatten, SSD, Raid25 Kommentare

Ich habe ein Problem mit der SSD in meinem Laptop mit Windows 10. Es ist eine 1Tb Platte die ...

Server-Hardware
WS 2016 Essentials Hardware
Frage von ChefknechtServer-Hardware23 Kommentare

Moin welche Hardware würdet ihr empfehlen? Dell Poweredge HP Proliant Fujitsu Ich bin total konfus was nun nötig ist, ...

Ubuntu
Installation freerdp 2.0.0-rc4
Frage von kristovUbuntu20 Kommentare

Hallo, möchte freerdp 2.0.0-rc4 auf linux mint 18.3 installieren, habe aber keine Ahnung, wie das funktioniert. freerdp 1.1 ist ...

Windows Server
Welche Option fürs Windows Server Installations besser
Frage von backitWindows Server20 Kommentare

Hi Zusammen, ich werde unserer AD (SBS 2011) und Exchange 2010 Servern auf neuen physikalischen Server umziehen. ich habe ...