Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 10 (http://forum.oszone.net/forumdisplay.php?f=118)
-   -   Пакетная работа со службами Windows 10, резервирование настроек и откат (http://forum.oszone.net/showthread.php?t=354841)

adgeuk 25-01-2024 17:07 3023185

Пакетная работа со службами Windows 10, резервирование настроек и откат
 
Добрый день,

нужна возможность бекапа настроек всех служб Windows 10 чтобы потом быстро к ним откатиться.
Также, нужна возможность пакетного включения/выключения и изменения типа запуска служб.
Например, я имею какую-либо ошибку на ПК или что-то не работает, в этот момент я бы хотел разом запустить все службы на компьютере, проверить не исчезла ли ошибка, а затем откатиться к предыдущему состоянию служб.

Из более-менее похожего нашёл вот это:

Easy Services Optimizer - поддерживает пакетный вкл/выкл и изменение способа запуска, поддерживает бекап, но не видит большинство служб, не обновлялась с 2017 года.

FireDeamon Pro - поддерживает пакетный вкл/выкл и изменение способа запуска, но не поддерживает бекап, работает коряво.

NirSoft ServiWin - поддерживает пакетный вкл/выкл и изменение способа запуска, даже сохраняет состояние о выбранной группе служб в файл, но этот файл нельзя использовать для отката, а только для ознакомления и последующей ручной настройки.

Win10Tweaker - сам включает/отключает службы основываясь на ответах пользователя о его способе использования операционной системы,
создаёт резервную копию ответов пользователя, затем основываясь на них включает/отключает определённые группы служб, но сами настройки служб не сохраняются. Если самому персонально изменить настройки конкретной службы, то в резервной копии Win10Tweaker это никак не отобразится, поскольку там хранятся лишь общие предпочтения пользователя.

В идеале, нужен аналог Easy Services Optimizer который увидит все службы или аналог NirSoft ServiWin с возможностью отката к сохранённым настройкам.

adgeuk 27-01-2024 19:49 3023307

Есть вариант с PowerShell:

Включение выполнения скриптов:

Код:

Set-ExecutionPolicy RemoteSigned
Создание бекапа:

Код:

Get-Service | Export-Clixml -Path "D:\Desktop\ServicesBackup.xml"
Восстановление из бекапа:

Код:

$services = Import-Clixml -Path "D:\Desktop\ServicesBackup.xml"
foreach ($service in $services) {
    Set-Service -Name $service.Name -StartupType $service.StartType
    if ($service.Status -eq 'Running') {
        Start-Service -Name $service.Name
    }
}

Такой способ подсказал мне GPT чат, пока не пробовал.

adgeuk 28-01-2024 15:49 3023341

А для того чтобы службы запускались при восстановлении в правильном порядке, GPT предлагает следующий код:

HTML код:

# Создание бэкапа состояния служб
Get-Service | Export-Clixml -Path "D:\Desktop\ServicesBackup.xml"

# Восстановление служб из бэкапа с учетом зависимостей
$services = Import-Clixml -Path "D:\Desktop\ServicesBackup.xml"

# Определение порядка запуска служб
function Start-ServicesInOrder {
    param(
        [array]$services
    )

    $servicesToStart = @()

    foreach ($service in $services) {
        # Если служба зависит от других служб, они должны быть запущены сначала
        $dependentServices = Get-Service -Name $service.Name | Select-Object -ExpandProperty DependentServices

        foreach ($dependentService in $dependentServices) {
            if ($dependentService.Status -ne 'Running' -and $dependentService.Name -notin $servicesToStart) {
                $servicesToStart += $dependentService.Name
            }
        }

        # Затем добавляем текущую службу
        if ($service.Status -ne 'Running' -and $service.Name -notin $servicesToStart) {
            $servicesToStart += $service.Name
        }
    }

    # Восстанавливаем службы в правильном порядке
    foreach ($serviceToStart in $servicesToStart) {
        Start-Service -Name $serviceToStart
    }
}

Start-ServicesInOrder -services $services

Думаю, надо потестировать на виртуалке сначала


Время: 23:59.

Время: 23:59.
© OSzone.net 2001-