В идеале, я хотел бы записать текущий статус любых приложений / svcs, которые будут изменены, чтобы система также могла быть восстановлена программно.Вот почему я выбрал CSV-файл для хранения этих данных.
Вот как далеко я документирую, какой из них необходимо отключить (а затем снова включить при следующей загрузке):
(На данный момент PowerShell 5)
$svcsRunning = @()
$svcResults = @()
$svcsRunning = Get-WmiObject Win32_Service -Filter "State = 'Running'"
ForEach ($s in $svcsRunning) {
$svcDetails = @{
Date = get-date
ExitCode = $s.ExitCode
Name = $s.Name
ProcessId = $s.ProcessId
StartMode = $s.StartMode
State = $s.State
Status = $s.Status
}
# for iterations
$svcResults += New-Object PSObject -Property $svcDetails
}
# when done, export
$svcResults | export-csv -Path c:\users\yumi\startupServices.csv -NoTypeInformation
$appsRunning = @()
$appResults = @()
$appsRunning = Get-WmiObject Win32_StartupCommand
ForEach ($a in $appsRunning) {
$appDetails = @{
Date = get-date
Caption = $a.Caption
ClassPath = $a.ClassPath
Command = $a.Command
Container = $a.Container
Description = $a.Description
Location = $a.Location
Name = $a.Name
Path = $a.Path
Site = $a.Site
User = $a.User
UserSID = $a.UserSID
}
# for iterations
$appResults += New-Object PSObject -Property $appDetails
}
# when done, export
$appResults | export-csv -Path c:\users\yumi\startupApplications.csv -NoTypeInformation
Я не уверен, что приведенное выше может показать все приложения / svcs, которые необходимо отключить для чистой загрузки.