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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Как получить список всех служб не майкрософт (http://forum.oszone.net/showthread.php?t=343308)

icq99999999 16-12-2019 14:10 2900695

Как получить список всех служб не майкрософт
 
нужен скрипт для получения названий сторонних служб и их отключение от автозагрузки
есть скрипт
Код:

for /f "tokens=1,*delims= " %%a in ('sc queryex^|find /v " : "^|find /v ", "') do @echo %%b
но он выводит все службы а нужно только те у которых изготовитель не майкрософт

DJ Mogarych 16-12-2019 14:14 2900696

А по какому критерию это определить?

Вот наколхозили функцию:
https://stackoverflow.com/questions/...-os-and-non-ms

icq99999999 16-12-2019 14:17 2900697

примерно так как это делает утилита Autoruns (только мне нужно отключение в автоматическом режиме)

DJ Mogarych 16-12-2019 15:00 2900705

Ну так можно авторанс и использовать (powershell):
Код:

& D:\temp\SysinternalsSuite\autorunsc.exe -a s -m -c -accepteula -nobanner |convertfrom-csv |? category -eq 'services'

icq99999999 16-12-2019 15:12 2900708

powershell есть не на всех пк. может есть вариант через cmd (или autorunsc) отключить из автозагрузки сторонние службы?

DJ Mogarych 16-12-2019 15:13 2900709

Цитата:

Цитата icq99999999
powershell есть не на всех пк »

У вас есть что-то старше Windows XP?

icq99999999 16-12-2019 15:27 2900711

есть и 7 виндовс но ведь на хп powershell нет(на сколько я знаю) а скрипт должен отрабатывать и там

DJ Mogarych 16-12-2019 15:31 2900712

Цитата:

Цитата icq99999999
на хп powershell нет »

Есть. Насчёт cmd - может, коллеги помогут.

Iska 16-12-2019 17:45 2900740

Цитата:

Цитата icq99999999
но ведь на хп powershell нет… »

…но можно установить версию 2.0.


Цитата:

Цитата icq99999999
…и их отключение от автозагрузки »

icq99999999, а Вас не смущает, что после этого тупо «отвалится» часть железок на машине?

P.S. autoruns скрывает не все компоненты Microsoft.

icq99999999 17-12-2019 09:07 2900852

Цитата:

Цитата Iska
«отвалится» часть железок на машине? »

если это и произойдёт, то всегда можно включить нужную службу

vombat2 17-12-2019 12:15 2900877

Если не получится с автоматикой, могу предложить ручной вариант: Есть программка Serviwin (для управления службами и драйверами). В ней можно отсортировать службы по столбцу "Company" затем выделить все "Microsof.." потом сделать html-отчет. Далее открыть этот отчет в excel, выделить столбец с названиями и скопировать его в текстовый файл.. Далее этот список поставить в игнор вашей "отключалки" каким-нибудь образчиком..
Такой список например у меня на W8.1 Pro
Список служб Microsoft W8.1
AeLookupSvc
ALG
AppIDSvc
Appinfo
AppMgmt
AppReadiness
AppXSvc
AudioEndpointBuilder
Audiosrv
AxInstSV
BDESVC
BFE
BITS
BrokerInfrastructure
Browser
BthHFSrv
bthserv
CertPropSvc
COMSysApp
CryptSvc
CscService
DcomLaunch
defragsvc
DeviceAssociationService
DeviceInstall
Dhcp
DiagTrack
Dnscache
dot3svc
DPS
DsmSvc
Eaphost
EFS
ehRecvr
ehSched
EventLog
EventSystem
Fax
fdPHost
FDResPub
fhsvc
FontCache
FontCache3.0.0.0
gpsvc
hidserv
hkmsvc
HomeGroupProvider
IEEtwCollectorService
IKEEXT
iphlpsvc
KeyIso
KtmRm
LanmanServer
LanmanWorkstation
lfsvc
lltdsvc
lmhosts
LSM
Mcx2Svc
MMCSS
MpsSvc
MSDTC
MSiSCSI
msiserver
MsKeyboardFilter
napagent
NcaSvc
NcbService
NcdAutoSetup
Netlogon
Netman
netprofm
NetTcpPortSharing
NlaSvc
nsi
ose
osppsvc
p2pimsvc
p2psvc
PcaSvc
PeerDistSvc
PerfHost
pla
PlugPlay
PNRPAutoReg
PNRPsvc
PolicyAgent
Power
PrintNotify
ProfSvc
QWAVE
RasAuto
RasMan
RemoteAccess
RemoteRegistry
RpcEptMapper
RpcLocator
RpcSs
SamSs
SCardSvr
ScDeviceEnum
Schedule
SCPolicySvc
seclogon
SENS
SensrSvc
SessionEnv
SharedAccess
ShellHWDetection
smphost
SNMPTRAP
Spooler
sppsvc
SSDPSRV
SstpSvc
stisvc
StorSvc
svsvc
swprv
SysMain
SystemEventsBroker
TabletInputService
TapiSrv
TermService
Themes
THREADORDER
TimeBroker
TrkWks
TrustedInstaller
UI0Detect
UmRdpService
upnphost
VaultSvc
vds
vmicguestinterface
vmicheartbeat
vmickvpexchange
vmicrdv
vmicshutdown
vmictimesync
vmicvss
VSS
W32Time
wbengine
WbioSrvc
Wcmsvc
wcncsvc
WcsPlugInService
WdiServiceHost
WdiSystemHost
WdNisSvc
WebClient
Wecsvc
WEPHOSTSVC
wercplsupport
WerSvc
WiaRpc
WinDefend
WinHttpAutoProxySvc
Winmgmt
WinRM
WlanSvc
wlidsvc
wmiApSrv
WMPNetworkSvc
workfolderssvc
WPCSvc
WPDBusEnum
wscsvc
WSearch
WSService
wuauserv
wudfsvc
WwanSvc


Кстати, там и командная строка поддерживается..
Код:

serviwin.exe  /stab services "c:\temp\serv.txt" /sort "Company" \\comp1

Sham 18-12-2019 10:59 2901024

Имя компании достаётся непосредственно из свойств exe-файла службы. Больше неоткуда.
Есть у меня рабочий вариант и для XP (на jscript). Проверял.
Нужное раскомментить.
Код:

var shellapp = new ActiveXObject("Shell.Application");
var fso = new ActiveXObject("Scripting.FileSystemObject");
var wmi = GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\CIMv2");
var serv = wmi.ExecQuery("SELECT Name, DisplayName, PathName, StartMode, State FROM Win32_Service");

for (var e = new Enumerator(serv), s, sp, f;
        !e.atEnd() && (s = e.item());
        e.moveNext()
) {
        var exe = s.PathName.replace(/^\s+|\s+$/g, "").replace(/\s+/g, " ");
        var RealExePath = exe.charAt(0) === '"'
                ? exe.substring(1, exe.indexOf('"', 1))
                : (/\.exe$/i.test(exe) || (sp = exe.indexOf(" ", 1)) === -1
                        ? exe
                        : exe.substring(0, sp)
                );

        //do we need svchosts?
        if (/svchost(?:\.exe)?$/i.test(RealExePath)) continue;

        WSH.Echo(s.Name + " (" + s.DisplayName + ")");
        WSH.Echo("Stat:", s.StartMode, s.State);
        WSH.Echo("PathName: " + s.PathName);
        WSH.Echo("Exe: " + RealExePath);

        try {
                f = fso.GetFile(RealExePath);
        } catch (ex) {
                try {
                        f = fso.GetFile(RealExePath + ".exe");
                } catch (ex) {
                        WSH.Echo(ex.message + ": " + RealExePath + "\n");
                        continue;
                }
        }

        var comp = shellapp.Namespace(f.ParentFolder + "")
                .ParseName(f.Name + "")
                .ExtendedProperty("Company") || "Empty";
        WSH.Echo("Company: " + comp);

        if (!/Microsoft|Майкрософт/i.test(comp)) { //ANSI cyrillic encoding!
                WSH.Echo("Non-microsoft service found");
                //Disabled, Automatic, Manual
                //WSH.Echo("ChangeStartMode returned " + s.ChangeStartMode("Manual"));
                //WSH.Echo("StopService returned " + s.StopService());
        }

        WSH.Echo();
}


Iska 18-12-2019 17:56 2901095

Именно — локализованные названия (a-la «Майкрософт») autoruns не учитывает.

DJ Mogarych 18-12-2019 22:57 2901174

Ну так можно дополнительно фильтрануть вывод авторанса.
Код:

& & D:\temp\SysinternalsSuite\autorunsc.exe -a s -m -c -accepteula -nobanner |convertfrom-csv |? {$_.category -eq 'services' -and $_.company -notmatch "Майкрософт|Микрософт|Макрософт|Мегахард"}


Время: 15:57.

Время: 15:57.
© OSzone.net 2001-