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
GELÖST

Powershell Get-Service

Frage Microsoft

Mitglied: Nutzer2013

Nutzer2013 (Level 1) - Jetzt verbinden

30.10.2013 um 08:01 Uhr, 2182 Aufrufe, 4 Kommentare

Guten Morgen,

ich bin etwas unbeholfen bei dieser Aufgabe.

Es soll ueberprueft werden, ob alle Dienste die vom Start-Typ „Automatisch“ sind, auch laufen. Falls einer dieser Dienste derzeit nicht laeuft, ist im naechsten Schritt zu ueberpruefen,
wann dieser seit dem letzten Systemstart zuletzt ausgefuehrt wurde. Diese Informationen sind in einer Tabelle wie folgt auszugeben:

Dienstname Start-Typ Status Zuletzt ausgefuehrt


Mein Problem liegt bei dem "Zuletzt ausgefuehrt".

Das was ich bis jetzt schon für mein Skript habe ist:

$Service = get-wmiobject win32_service -Filter "Startmode='Auto' " | Select-object Name, Startmode,State
$Service |Convertto-html | Set-Content C:\Ausgabe\Dienste.html
& C:\Ausgabe\Dienste.html

Meine Überlegung ist es halt dort sowas hinzupacken:
if $service.state = stopped
then (zeige mir das Datum an, andem es zuletzt ausgefuehrt wurde)
Mitglied: colinardo
30.10.2013, aktualisiert um 10:08 Uhr
Hallo Nutzer2013,
eine solche Eigenschaft "Zuletzt ausgefuehrt" gibt es leider nicht, aber was du machen könntest wäre das System-EventLog zu überprüfen wann ein bestimmter Dienst beendet wurde - und zwar so:
(Achtung: Das Script ist für ein deutsches System ausgelegt, EventLogs in deutscher Ausgabe)
01.
$stoppedServices = get-wmiobject win32_service -Filter "Startmode='Auto' and State='Stopped' and ExitCode <> 0 " 
02.
$arrServices = @() 
03.
foreach ($service in $stoppedServices){ 
04.
    $sName = $service.Name  
05.
    $timeStopped = (Get-EventLog -LogName System | ?{$_.EventID -eq 7036 -and $_.Message -match "$sName.*?Beendet"}| Sort-Object -Descending -Property TimeWritten| select -First 1).TimeWritten 
06.
    echo "Service: $sName stopped at $timeStopped" 
07.
    $arrServices += $service| select Name,StartMode,State,@{Name="LastStopped";Expression={$timeStopped}},ExitCode 
08.
09.
$arrServices| Convertto-HTML | Set-Content "C:\Ausgabe\Dienste.html" -Force
Zu beachten ist das das obige Script, je nachdem wie groß die EventLogs sind, einige Zeit benötigt um die EventLogs auszuwerten. Außerdem sind nur Dienste berücksichtigt welche nur mit einem anderen ExitCode als 0 beendet wurden (also Fehlerhaft), es ist nämlich normal das sich einige Dienste die automatisch starten nach einiger Zeit selber beenden.

Grüße Uwe
Bitte warten ..
Mitglied: Nutzer2013
30.10.2013 um 10:36 Uhr
Danke, dass hilft mir schon etwas weiter.
Nur die Ausgabe soll halt alle services ausgeben die den startmode auf auto haben. Zusätzlich soll dann dieses "zuletzt ausgeführt" dann ausgeben werden bei den Deinsten die das state auf Stopp haben.

Hoffe ich konnte irgendwie das jetzt besser erklären.
Bitte warten ..
Mitglied: colinardo
30.10.2013 um 11:14 Uhr
schon verstanden, schreib einfach die erste Zeile des Scripts so
01.
$stoppedServices = get-wmiobject win32_service -Filter "Startmode='Auto' and State='Stopped'" 
dann hast du's so wie du willst

Grüße Uwe
Bitte warten ..
Mitglied: Nutzer2013
30.10.2013 um 11:27 Uhr
Super Danke
Bitte warten ..
Neuester Wissensbeitrag
Microsoft Office

MS Office Excel - Formel wird angezeigt, aber nicht berechneter Wert!

Tipp von holli.zimmi zum Thema Microsoft Office ...

Ähnliche Inhalte
Batch & Shell
gelöst PowerShell, Get-Date, Sommerzeit Winterzeit, Zeitumstellung (6)

Frage von Rippchen zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell Get-Content Inhalt filtern (1)

Frage von derhoeppi zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell Name des Childs bei Get-ChildItem anzeigen (2)

Frage von reissaus73 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Hyper-V
gelöst Reiner Hyper- V Server oder lieber Rolle (18)

Frage von Winuser zum Thema Hyper-V ...

Windows Server
gelöst Rechte als Admin vergeben - Zugriff verweigert (14)

Frage von Ghost108 zum Thema Windows Server ...

Router & Routing
gelöst IP Kamera für drei unabhängige Netzwerke (12)

Frage von ProfessorZ zum Thema Router & Routing ...