Показать полную графическую версию : [решено] Проверка процесса
На WSH, пробуйте:
Option Explicit
Dim strProcessName
Dim arrPaths
Dim strLocalAppDataPath
Dim arrItem
Dim objSWbemServicesEx
strProcessName = "chrome.exe"
strLocalAppDataPath = WScript.CreateObject("Shell.Application").NameSpace("shell:Local AppData").self.Path
With WScript.CreateObject("Scripting.FileSystemObject")
arrPaths = Array( _
Array(.BuildPath(strLocalAppDataPath, "Google\Chrome\User Data"), "Local State"), _
Array(.BuildPath(strLocalAppDataPath, "Google\Chrome\User Data\Default"), "Preferences") _
)
For Each arrItem In arrPaths
If Not .FileExists(arrItem(1)) Then
WScript.Echo "Source file [" & arrItem(1) & "] not found."
WScript.Quit 1
End If
If Not .FolderExists(arrItem(0)) Then
WScript.Echo "Destination folder [" & arrItem(0) & "] not found."
WScript.Quit 2
End If
Next
Set objSWbemServicesEx = WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2")
Do
WaitForCloseAllProcesses
For Each arrItem In arrPaths
.CopyFile arrItem(1), .BuildPath(arrItem(0), arrItem(1)), True
Next
WaitForStartAnyProcess
Loop
Set objSWbemServicesEx = Nothing
End With
WScript.Quit 0
'=============================================================================
'=============================================================================
Sub WaitForCloseAllProcesses()
Do Until objSWbemServicesEx.ExecQuery( _
"SELECT * FROM Win32_Process WHERE Name = '" & strProcessName & "'" _
).Count = 0
objSWbemServicesEx.ExecNotificationQuery( _
"SELECT * FROM __InstanceDeletionEvent " & _
"WITHIN 1 WHERE TargetInstance ISA 'Win32_Process' AND " & _
"TargetInstance.Name = '" & strProcessName & "'" _
).NextEvent
Loop
End Sub
'=============================================================================
'=============================================================================
Sub WaitForStartAnyProcess()
objSWbemServicesEx.ExecNotificationQuery( _
"SELECT * FROM __InstanceCreationEvent " & _
"WITHIN 1 WHERE TargetInstance ISA 'Win32_Process' AND " & _
"TargetInstance.Name = '" & strProcessName & "'" _
).NextEvent
End Sub
'=============================================================================
Пишет что не найден сценарий, »
Сохраните приведённый код в файл с расширением «.vbs», а не «.wsh». «.wsh» — файл параметров сценария.
А можно еще дописать в первый раз chrome выключался - заменялись файлы - он включался,т.е перезагрузка с заменой, »
Опишите иначе. Не могу понять.
И еще как прекратить сценарий? вручную »
Сняв соответствующий процесс «wscript.exe»/«cscript.exe» в Диспетчере задач.
возможно вперед добавить закрытие процесса »
Зачем? Снятие браузера чревато — однозначно слетит кэш, иногда — перечень открытых вкладок, бывает, что и закладки отправляются в небытие.
Вы не ответили на вопрос.
поставить скрипт в автозагрузку »
Задайте исполнение скрипта посредством групповой политики «на пользователя».
если хром на пк открыт при запуске скрипта (это если пк только стартовал) »
Google Chrome не открыт в этот момент.
А самым правильным будет ознакомиться вот с этим: Chrome for Business FAQ - Chrome for Business and Education Help (https://support.google.com/chrome/a/answer/188447?hl=en) и использовать групповые политики.
и сбрасывались все настройки на дефолт »
Это очень плохо.
Какой уже смысл? »
Управление посредством групповых политик — наиболее гибкий и надёжный инструмент управления окружением из возможных.
но все же к примеру если браузер остался открытым »
Что значит «остался открытым»? Откуда он возьмётся в момент применения политики, когда будет исполняться скрипт? Я же сказал — просто назначьте исполнение скрипта групповой политикой «на пользователя»: Assign User Logon Scripts (http://technet.microsoft.com/en-us/library/cc770908.aspx).
Не могли бы вы в скрипт дописать ? мне было бы намного проще... »
Что дописать?
Hancog, я думал, что достаточно популярно объяснил, что сие совершенно лишнее в Вашем случае использования.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.