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

gelöst Services aus einem Array auslesen dann stückweise stoppen

Mitglied: DanielBodensee

DanielBodensee (Level 1) - Jetzt verbinden

07.03.2014 um 13:39 Uhr, 1330 Aufrufe, 4 Kommentare, 1 Danke

Hallo zusammen,

ich muss mir eine Funktion schreiben der ich ein Array von zu stoppenden Services übergeben kann. Innerhalb der Funktion möchte ich die Servcies stoppen (wenn möglich) und darauf warten bis der Service den Status stop erreicht hat.

Im Grunde würde ich dann ein True or False zurückgeben (ob alles ohne Fehler lief) und evtl ein Array worin die nicht zu stoppenden Services zurück gegeben werden.

In VisualBasic (meine Heimat) kein Problem, aber ich möchte es per Powershell lösen, ich bin der Meinung das dürfte besser weil auch für Kollegen lesbar sein.

Aber mir geht der Knopf nicht auf wie ich das unter PS (sicher) machen kann.


Viele Grüsse,
Daniel
Mitglied: colinardo
07.03.2014, aktualisiert um 15:43 Uhr
Hallo Daniel,
etwa so:
01.
function Stop-Services([string[]]$services,[int]$maxWaitSeconds = 120){ 
02.
    $arrFehler = @() 
03.
    foreach($service in $services){ 
04.
        $svc = Get-Service $service -ErrorAction SilentlyContinue 
05.
        if ($svc){ 
06.
            if ($svc.Status -ne 'Stopped'){ 
07.
                if ($svc.CanStop){ 
08.
                    $svc.Stop() 
09.
                    $svc.WaitForStatus('Stopped',[TimeSpan]::FromSeconds($maxWaitSeconds)) 
10.
                    if ($svc.Status -ne 'Stopped'){ 
11.
                        $arrFehler += "Dienst '$service' konnte nicht gestoppt werden" 
12.
13.
                }else{ 
14.
                    $arrFehler += "Dienst '$service' darf nicht gestoppt werden (nicht erlaubt)" 
15.
16.
17.
        }else{ 
18.
            $arrFehler += "Dienst '$service' existiert nicht" 
19.
20.
21.
    if ($arrFehler.Count -gt 0){ 
22.
        $arrFehler 
23.
    }else{ 
24.
        $true 
25.
26.
 
27.
} #End Function 
28.
 
29.
# Dienste an Funktion übergeben 
30.
$result = Stop-Services -services @("Dienst1","Dienst2","Dienst3") -maxWaitSeconds 60 
31.
 
32.
# Resultat abfragen 
33.
if ($result -eq $true){ 
34.
    write-host "Keine Fehler aufgetreten" -ForegroundColor Green 
35.
}else{ 
36.
    write-host "Fehler:" -ForegroundColor Red 
37.
    write-host $result -ForegroundColor Yellow 
38.
}
Grüße Uwe
Bitte warten ..
Mitglied: DanielBodensee
07.03.2014 um 14:46 Uhr
Hallo Uwe,

super, vielen Dank, das sieht sehr gut aus und ich baue es gerade als Funktion aus.

Eine Frage habe ich noch...
Da ich diese Funktion wiederverwendbar machen will, möchte ich ein TimeOut als Parameter definieren. Wie kann ich eigentlich die Sekunden (z.Bsp. 120) in die Zeitangabe für WaitForStatus umsetzen? Als Variable habe ich [int] vorgesehen, aber ich brauche ja das Format xx:xx:xx?

Ich denke es macht auch sinn abzufragen ob der Dienst überhaupt gestoppt werden kann?

Viele Grüsse,
Daniel
Bitte warten ..
Mitglied: colinardo
07.03.2014, aktualisiert um 15:41 Uhr
Zitat von DanielBodensee:
Eine Frage habe ich noch...
Da ich diese Funktion wiederverwendbar machen will, möchte ich ein TimeOut als Parameter definieren. Wie kann ich eigentlich
die Sekunden (z.Bsp. 120) in die Zeitangabe für WaitForStatus umsetzen? Als Variable habe ich [int] vorgesehen, aber ich
brauche ja das Format xx:xx:xx?
Das was dort als Parameter eingefügt werden muss ist ein TimeSpan-Objekt
So kannst du Sekunden für den Parameter verwenden
[Timespan]::FromSeconds(10)
[-edit- oben ergänzt]

Ich denke es macht auch sinn abzufragen ob der Dienst überhaupt gestoppt werden kann?
Ja das hatte ich noch nicht berücksichtigt... [- edit - oben eingefügt]
Bitte warten ..
Mitglied: DanielBodensee
07.03.2014 um 17:16 Uhr
Hallo Uwe,

super, tausend Dank, das klappt perfekt

Viele Grüsse,
Daniel
Bitte warten ..
Ähnliche Inhalte
Datenbanken
Mongodb Daten aus Array auslesen
gelöst Frage von BaanauseDatenbanken1 Kommentar

Habe folgendes Programm geschrieben um eine MongoDB auszulesen. Als Ergebnis bekomme ich ein Array wie folgt: { _id: ...

Entwicklung

Powershell: Werte aus Array gezielt auslesen

gelöst Frage von SunnyRainyDayEntwicklung3 Kommentare

Hallo, Stehe ein wenig auf´m Schlauch. Ich möchte aus einem Array nur den Wert eines Feldes auslesen. Also z.b. ...

Basic

AutoIt - Array auslesen und den Inhalt der Dateien in Worddatei einfügen

gelöst Frage von hipfzwirgelBasic4 Kommentare

Hallo an alle AutoIt-Spezialisten, ich erstelle gerade ein Script(genauer eine Funktion :-) ), dass Bilder in eine Worddatei einfügen ...

PHP

Mehrdimensionales Array mit PHP auslesen um es in eine MySql DB zu schreiben

gelöst Frage von IrunGoldsteinPHP2 Kommentare

Hallo Leute, eventuell kann mir jemand hier auf die Sprünge helfen damit. Ich habe ein Mehrdimensionales Array namens $tree ...

Neue Wissensbeiträge
Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 21 StundenWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Sicherheit

Zero Day-Schwachstelle im Internet Explorer - wird von APT bereits ausgenutzt

Information von kgborn vor 1 TagSicherheit

Im Kernel des Internet Explorer scheint es eine Zero Day-Lücke zu geben, die von staatlichen Akteuren (APT) im Rahmen ...

Microsoft
Folder Security Viewer-Lizenzen zu gewinnen
Information von kgborn vor 1 TagMicrosoft

Ich nehme das Thema mal in Absprache mit Frank hier auf, da es für den einen oder anderen Administrator ...

Hardware

Feueralarm killt Festplatten in Rechenzentrum - führt zu größerem Ausfall

Information von kgborn vor 1 TagHardware12 Kommentare

Noch ein kleiner Beitrag für Administratoren, die in Rechenzentren aktiv sind - so als Fingerzeig. Denn es gibt Szenarien, ...

Heiß diskutierte Inhalte
Linux
Linux Server oder Windows Server - lohnt eine Umstellung auf Linux und ebenso basierende SW bei einer langfristigen Planung?
Frage von motus5Linux27 Kommentare

Wir brauchen bei uns einen neuen Server. Dieser wird als Fileserver, Domäne Controller sowie Exchange Server verwendet. Wir versuchen ...

C und C++
Frage1 C Programmierung-Makefile Frage2 PHP-Programmierung HTTP-Fehler 404
Frage von KatalinaC und C++24 Kommentare

Hallo, ich habe 2 Fragen, die nichts miteinander zu tun haben aber mit denen ich mich gerade beschäftige: 1. ...

LAN, WAN, Wireless
Watchguard T15 VPN Einrichtung
gelöst Frage von thomasjayLAN, WAN, Wireless22 Kommentare

Hallo zusammen, wir möchten gerne über unsere Watchguard T15 einen VPN-Tunnel (Mobile VPN with IPSec) einrichten! Als Client nutzen ...

DSL, VDSL
ISP Wechsel auf Vodefone Koax, Gebäudeverkabelung nur per Cat 7
gelöst Frage von wusa88DSL, VDSL19 Kommentare

Hallo Zusammen, ich bin momentan bei Mnet als Glasfaser Kunde und möchte Preis/Leistungs-Technisch zu Kabel Deutschland / Vodafone wechseln. ...