Suche GUI Programm um Windows Dienste zu managen.

Dann spricht ja nichts gegen einen Screenshot...
1723813424991.png
 
@cartridge_case: Und wo ist der Import? ich frage für einen TE.

@Marco199: Die Datei wird ja offensichtlich gefunden. Warum die Abfrage mit dem Dienst nicht klappt, kann ich dir nicht sagen, kann man auch entfernen, wenn man mag.

Schau mal ins CSV, die mit "existiert nicht" haben bestimmt auch "Unbekannt" als Starttyp in der CSV. Wenn man den Export noch verbessert, dass "Unbekannt" nicht exportiert wird...
Ergänzung ()

Und bitte, mach für so etwas Script-Dateien...

Code:
(wieder entfernt)

exportiert nichts mehr mit "Unbekannt".

Aber bei mir findet das import dennoch die Services nicht, ich arbeite daran...
Ergänzung ()

Also so würde ich es wohl machen:
Export:
Code:
# Pfad zur Registry für Dienste
$registryPath = "HKLM:\SYSTEM\CurrentControlSet\Services"
# Array zum Speichern der Dienstinformationen
$dienstDaten = @()
# Hole alle Dienst-Unterschlüssel aus der Registry
Get-ChildItem -Path $registryPath | ForEach-Object {
    $property = Get-ItemProperty $_.PSPath | Select-Object "Start"
    if ($property -ne $null) {
        $startMode = $property.Start
        # Wandle den Starttyp in verständliche Namen um
        $startModeText = switch ($startMode) {
            0 { "Boot" }
            1 { "System" }
            2 { "Automatic" }
            3 { "Manual" }
            4 { "Disabled" }
            default { "Unbekannt" }
        }
        if ($startModeText -ne "Unbekannt") {
            # Füge die Dienstinformationen zum Array hinzu
            $dienstDaten += [PSCustomObject]@{
                Name      = $_.PSPath
                StartMode = $startModeText
            }
        }
    }
}
# Speichere die Dienstinformationen in einer CSV-Datei
$dienstDaten | Export-Csv -Path "C:\DiensteStatusRegistry.csv" -NoTypeInformation

Import:
Code:
# CSV-Datei einlesen
$dienstDaten = Import-Csv -Path "C:\DiensteStatusRegistry.csv"
# Durchlaufe jeden Dienst und stelle den Starttyp und Status wieder her
foreach ($dienst in $dienstDaten) {
    $psPath = $dienst.Name
    $startModeText = $dienst.StartMode
    $name = $dienst.Name.Split('\')[-1];
    # Überprüfen, ob der Dienst existiert
    $property = Get-ItemProperty $psPath -ErrorAction SilentlyContinue | Select-Object "Start"
    if ($property -ne $null) {
        try {
            # Starttyp umwandeln
            $startMode = switch ($startModeText) {
                "Boot"      { 0 }
                "System"    { 1 }
                "Automatic" { 2 }
                "Manual"    { 3 }
                "Disabled"  { 4 }
                default     { continue } # Skip unknown types
            }
            # Ändere den Starttyp des Dienstes in der Registry
            Set-ItemProperty -Path $psPath -Name Start -Value $startMode -ErrorAction Stop
        } catch {
            Write-Output "Fehler beim Wiederherstellen des Dienstes ${name}: $_"
        }
    } else {
        Write-Output "Dienst $name existiert nicht"
    }
}

Aber: Es können nicht alle Dienste so gesetzt werden (Windows Defender, Sicherheitscenterdienst nicht)
1723817306246.png


Wer es als CMD-Datei ausführen will, macht noch das an den Anfang der Scripte:
Code:
@echo off
%windir%\System32\more +12 "%~f0" > "%temp%\%~n0.ps1"
where /q pwsh.exe
if errorlevel 1 (
    set POWERSHELL_EXE=powershell.exe
) else (
    set POWERSHELL_EXE=pwsh.exe
)
%POWERSHELL_EXE% -NoProfile -ExecutionPolicy Bypass -File "%temp%\%~n0.ps1" %*
exit /b
*** Ab hier PowerShell ***
Ergänzung ()

Gerade nochmal das Import-Script verbessert

Sieht dann z.B. so aus:
1723818548963.png


Man könnte nun darüber nachdenken, diese Dienste erst gar nicht zu exportieren... (oder halt manuell aus der CSV entfernen)
"xxx" habe ich manuell eingetragen

Nach Re-Import sollte das System neugestartet werden, damit die Dienste entsprechend gestartet sind.
 
Zuletzt bearbeitet:
tollertyp schrieb:
@Marco199: Die Datei wird ja offensichtlich gefunden. Warum die Abfrage mit dem Dienst nicht klappt, kann ich dir nicht sagen, kann man auch entfernen, wenn man mag.

Wrong Buddy , ich habe die datei auch mal gelöscht da zeigt powershell das selbe an es macht kein unterschied ob die die datei vorhanden ist in dem fall. powershell zeigt bei jeden service an > existiert nicht < muss am script liegen.
 
Also mit den Scripten, wie sie jetzt oben stehen, sollte es gehen. Der Import ist aber nicht mit vorherigem Export "kompatibel".
 
  • Gefällt mir
Reaktionen: Marco199
Frage an Marco199:
Was soll der Nutzen der von dir auszuführenden Operation sein?

Als Backup halte ich es für einen Scherz, dazu habe ich mehrere Systemimages in der Woche die den selben Zweck unterm Strich erfüllen würde irgendwas die Dienste sabotieren…
…wobei ich unschuldig frage ob jenes Irgendwas du bist. Spiele ich an Essentiellem herum sichere ich eben vorher.
Auch kann ich nicht erkennen was es brächte diese Einstellungen auf einen anderen Rechner zu übertragen. Solche Rundumschläge bringen dort nicht wirklich etwas: ein Dienst-Eintrag ohne den wahren Dienst dahinter ist zwecklos. (Ich meine; ich müsste nur den Reg-Zweig exportieren und importieren?!?)

Also wiederhole ich meine Frage: was versprichst du dir davon, welches gewisse Problem soll auf just diese Weise gelöst werden?

CN8

Nachtrag: GUI. Wenn du nicht eh alles exportierst oder gar aus einer dedizierten Sicherung importierst - wie viel Häkchen möchtest du setzen oder löschen um haargenau die paar Dienste zu greifen die zu sichern wären; woher hast du die Information welcher Dienst was ist?
 
cumulonimbus8 schrieb:
Nachtrag: GUI. Wenn du nicht eh alles exportierst oder gar aus einer dedizierten Sicherung importierst - wie viel Häkchen möchtest du setzen oder löschen um haargenau die paar Dienste zu greifen die zu sichern wären; woher hast du die Information welcher Dienst was ist?
Deshalb ja auch die Script-Lösung...
 
  • Gefällt mir
Reaktionen: madmax2010 und Marco199
@tollertyp In der musst du aber auch »Häkchen setzen«, also angeben was denn bewegt werden soll 😉
 
Zurück
Oben