slydon
Goto Top

Windows PowerShell - bin Neuling und hab paar Fragen

Windows Dienste mit PowerShell überwachen und gegebenfalls steuern.

Bin Fachinformatiker - Azubi, und beschäftige mich jetzt mit dem Thema.

Hallo Forum,

habe mich gerade hier angemeldet, und hoffe auf gute Zusammenarbeit ;D

Also mein Ausbilder hat mir ne Aufgabe gegeben...die ist wiefolgt:

Ich soll mir PowerShell aneignen.... um damit ein Script zu entwickeln.
Bei einem Kunden macht der Server monatlich eine Dienste-Aktualisierung, und nach der Aktualisierung beenden die Dienste sich und starten wieder.
Doch der DNS-Serverdienst startet sich seit ein paar Wochen nichtmehr automatisch.

Nun soll ich mit PowerShell ein Script entwickeln, dass diesen Fehler erkennt und den Dienst mit Meldung wieder startet - ganz automatisch versteht sich.

Habe mir heute morgen die ersten PowerShell Tutorials reingezogen, und komme soweit auch schon ganz gut klar. Habe damit ein bisschen rumgespielt, und
ich bin jetzt soweit das ich mit if-abfragen Prozesse starten / beenden und kontrollieren kann ob die laufen ( Responding - true/false).

Aber mit den Diensten scheint das ja etwas komplizierter zu sein..


Nun brauche ich Informationen - und ja, habe viel gegoogelt für Tutorials usw, aber zum DNS Serverdienst, also zu meiner Aufgabe habe ich nichts konkretes Gefunden.

Ich möchte keinen kompletten Lösungsvorschlag, ich will es ja lernen.
Aber wo fange ich am besten an, was muss ich beachten, wie funktioniert das bei PowerShell mit den Diensten?


MfG Slydon

Content-Key: 151707

Url: https://administrator.de/contentid/151707

Printed on: April 26, 2024 at 06:04 o'clock

Member: filippg
filippg Sep 24, 2010 at 11:05:44 (UTC)
Goto Top
Hallo,

wenn ich nach "Powershell start service" suche bekomme ich als ersten treffer http://www.computerperformance.co.uk/powershell/powershell_service_star .... Dort steht, wie man den Status eines Services abfragt und einen Service starten kann. Wenn man das kombiniert muss man nur noch einen entsprechenden Scheduled Task einrichten, und schon sollte man alles haben...

Gruß

Filipp
Member: sLydon
sLydon Sep 24, 2010 at 12:17:23 (UTC)
Goto Top
also mit get-help service zeigt es mir ja schonmal die service befehle an, und wenn ich mir nen dienst zum testen aussuche, z.b. den dhcp dienst, dann funktioniert das auch wenn ich ihn starte bzw beende.

nur ich brauch ja ein script das einen bestimmten dienst nach zeitangabe z.b. 30 minuten kontrolliert und wenn der dienst aus ist das er ihn startet..

und mit dem "scheduled task" soll das funktionieren, also mit der zeitlichen überwachung?
hab von diesem scheduled task gar keine ahnung :/
Member: Florian.Sauber
Florian.Sauber Sep 24, 2010 at 20:04:01 (UTC)
Goto Top
Über scheduled/geplante Tasks wirsd Du sicher was findenface-wink

Aber noch ein Tipp am Rande: Gewöhn Dir am besten gleich an mit TechNet, MSDN etc. zu arbeiten.

Dabei könnte für Dich, bezogen auf Deine Aufgabe, folgendes von Interesse sein:
Powershell:

Taskplaner

Dienste

Grüße Florian
Member: sLydon
sLydon Oct 21, 2010 at 06:23:00 (UTC)
Goto Top
danke... funktioniert jetzt, also das script + den scheduled task.

echt cooles forum.
mfg
Member: Florian.Sauber
Florian.Sauber Oct 21, 2010 at 20:41:09 (UTC)
Goto Top
Schön, dass es funktioniert und schön, dass Du es uns noch wissen lässt face-smile
Im Idealfall kannst Du das Script ja auch noch poste. Der nächste, der auf Lösungssuche über den Beitrag stolpert dankt es Dir bestimmt. Aber das wär nur das Tüpfelchen auf dem i face-wink

LG Florian
Member: ra1den
ra1den Jun 14, 2011 at 13:13:31 (UTC)
Goto Top
Hi,

bin ebenfalls ein Neuling und hab eine ganz spezifische Frage und zwar gibt es pro Verknüpfung ja unter den Eigenschaften und
dem Reiter Verknüpfung, die Möglichkeit ja noch seperate Befehle dran zu hängen wie "exec" oder "path". Leider funktioniert es nicht so
wie z.B. bei einer Batchdatei. Kennt jemand die Möglichkeit dieses zu umgehen.
Als Beispiel poste ich mal mein Beispielskript hier rein.
Ich würde mich sehr über eine Antwort bzw. Verständniskorrekturen freuen face-smile

#=====================================
  1. Funktionsbereich des Skriptes
#=====================================

Function Test1
{
Write-Host "In diesem Bereich wird Test1 durchgeführt"
set-location D:\Test2\Test
Start-Process ..\exe\Strukturarchivierung
  1. weiß nicht wie das eingebettet wird -path= D:\Test2\test -dump -clean -exec
}

Function Test2
{
Write-Host "In diesem Bereich wird Test2"
set-location D:\test2\test
Start-Process ..\exe\index a
}

Function Test3
{
Write-Host "In diesem Bereich wird Test3 durchgeführt"
set-location D:\test
Start-Process all /a
}

#======================================
  1. Skriptbody
#======================================
$Auswahl = Read-Host "Welche Funktion soll ausgeführt werden? [1] Test1 [2] Test2 [3] Test3"
if ($Auswahl -eq "1")
{
Test1
}
elseif ( $Auswahl -eq "2")
{
Test2
}
elseif ( $Auswahl -eq "3")
{
Test3
}
else
{
Write-Host "Auswahl ist fehlerhaft!"
}
Member: Florian.Sauber
Florian.Sauber Jun 15, 2011 at 18:50:23 (UTC)
Goto Top
Eröffne doch bitte nächstesmal einen neuen Beitrag!

So erkennt ausser denjenigen, die diesen Beitrag unter Benachrichtigung gesetzt hatten niemand, dass Du ein Problem hast.

Grundsätzlich kannst Du bei einer Verknüpfung zu einer Batch unter Ziel verschiedene Parameter anhängen, die innerhalb der Batch mit %1 bis %9 ausgelesen werden können. BTW, %0 gibt den Namen der Datei aus.
Die Einzelnen Parameter werden dabei durch ein Leerzeichen, Semikolon oder Komma getrennt.

Bsp: Du hast unter C:\irgendwo\ 2 Batchdateien: parameter.bat und startparameter.bat mit folgenden Inhalt:

parameter.bat:
@echo off
echo %0
echo %1
echo %2
pause
und startparameter.bat:
@echo off
"C:\irgendwo\parameter.bat",param1,param2  
REM Kommentar: In obiger Zeile könnte der absolute Pfad auch weggelassen werden. Auch Leerzeichen oder Semikolon VOR den Parametern anstatt Kommata würden gehen...
pause
Beim Starten der startparameter.bat erhälst Du dann folgende Ausgabe:
"C:\irgendwo\parameter.bat"  
param1
param2
Drücken Sie eine beliebeige Taste....
Selbige Ausgabe erhälst Du auch, wenn Du bei einer Verknüpfung zu parameter.bat unter Ziel
"C:\irgendwo\parameter.bat",param1,param2  
angeben würdest.

Ich hoffe, das hilft Dir beim Verständnis. Alle anderen Fragen -wie gesagt- bitte in einem extra Beitrag.

Grüsse Florian