Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Не работает автозапуск скрипта

Ответить
Настройки темы
VBS/WSH/JS - Не работает автозапуск скрипта

Новый участник


Сообщения: 23
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброго всем времени суток.
Столкнулся с такой проблемой: на машине стоит скрипт (os Windows 7 x64), копирующий файлы из папки А в папку В; автозапуск скрипта обеспечивается записью в реестре: "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\ScriptName", d:\Distr\ScriptName.vbs". До недавнего времени все работало отлично, но после перестановки винды автозапуск перестал работать. При старте машины диспетчер задач отображает процесс wscript.exe, при этом скрипт не работает. Если запустить его принудительно (щелкнуть enter-ом по файлу скрипта), то появляется процесс wscript.exe*32 и тогда скрипт отрабатывает как надо.
Помогите пожалуйста восстановить автозапуск!

Отправлено: 16:52, 24-01-2012

 


Moderator


Сообщения: 53479
Благодарности: 15507

Профиль | Отправить PM | Цитировать


Цитата Dzutte:
появляется процесс wscript.exe*32
Это ненормально (запуск 32-битной версии вместо 64-битной).
Попробуйте в командной строке (cmd.exe) от имени Администратора выполнить:
Код: Выделить весь код
regsvr32 atl.dll
regsvr32 dispex.dll
regsvr32 jscript.dll
regsvr32 scrrun.dll
regsvr32 scrobj.dll
regsvr32 vbscript.dll
regsvr32 msxml3.dll
regsvr32 ole32.dll
regsvr32 oleaut32.dll
wscript /regserver
После этого убедитесь, что в разделе реестра HKEY_CLASSES_ROOT\VBSFile\Shell\Open\Command параметр по умолчанию типа REG_EXPAND_SZ равен
"%SystemRoot%\System32\WScript.exe" "%1" %*

Цитата Dzutte:
Если запустить его принудительно (щелкнуть enter-ом по файлу скрипта)
Откуда вы его щелкаете, в каком 32-битном файловом менеджере?

Последний раз редактировалось Petya V4sechkin, 24-01-2012 в 17:55.


Отправлено: 17:05, 24-01-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 23
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Petya V4sechkin:
Откуда вы его щелкаете, в каком 32-битном файловом менеджере?
Total Commander 7.56a

Цитата Petya V4sechkin:
После этого убедитесь, что в разделе реестра HKEY_CLASSES_ROOT\VBSFile\Shell\Open\Command параметр по умолчанию типа REG_EXPAND_SZ равен
"%SystemRoot%\System32\WScript.exe" "%1" %*
Все так

Последний раз редактировалось Dzutte, 25-01-2012 в 09:47.


Отправлено: 09:40, 25-01-2012 | #3



Moderator


Сообщения: 53479
Благодарности: 15507

Профиль | Отправить PM | Цитировать


Цитата Dzutte:
Total Commander
Ну естественно, он же 32-битный.
Из проводника запустите скрипт.

Цитата Dzutte:
на машине стоит скрипт
Содержимое выложите?

Отправлено: 09:42, 25-01-2012 | #4


Новый участник


Сообщения: 23
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Petya V4sechkin:
Содержимое выложите?
Просто текстом в сообщение вставить или как лучше сделать?

Цитата Petya V4sechkin:
Из проводника запустите скрипт.
Запуск из проводника дает 64-х битный процесс wscript.exe. Скрипт соответственно не отрабатывает.

Отправлено: 09:49, 25-01-2012 | #5



Moderator


Сообщения: 53479
Благодарности: 15507

Профиль | Отправить PM | Цитировать


Цитата Dzutte:
Просто текстом в сообщение вставить
С тегом CODE.

Отправлено: 09:53, 25-01-2012 | #6


Новый участник


Сообщения: 23
Благодарности: 0

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
ON ERROR RESUME NEXT
Set fso = CreateObject("Scripting.FileSystemObject") 
Set WshShell = WScript.CreateObject("WScript.Shell") 
folder_out = ".........................." ' папка откуда копировать
folder_in = "............................" ' папка куда копировать
period = 3000 'милисекунды

'' Запускаться при каждой перезагрузке 
'Set File2 = f.GetFile(WScript.ScriptFullName) 
'File2.Copy ("d:\Distr\Gigabyte.vbs") 
's.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\Gigabyte", d:\Distr\Gigabyte.vbs" 


do
' Получаем список файлов
Set f_out = fso.GetFolder(folder_out)
Set f_in = fso.GetFolder(folder_in)
Set fc = f_out.Files
s = "File name" & vbtab & "created" & "accessed" & vbtab & "modified" & vbcrlf
For Each f1 in fc
  ' если файл сушествеут проверяем изменился ли он 
  If (fso.FileExists(folder_in & f1.name)) Then
      ' существует... проверяем изменился ли он (по дате модификации)
      set f_inc = fso.GetFile(folder_in & f1.name)
      if (f1.DateLastModified = f_inc.DateLastModified) then
          
      else
           ' одноименный фаил во входной папке переименовываем с добавлением даты модификации
	   tmp = replace(f_inc.DateLastModified & "."  & fso.GetExtensionName(f_inc.name),":","_")
	   tmp = replace(tmp," ","_")
	   'WScript.Echo tmp & vbtab & f_inc.name
	   'Wscript.Echo replace(f_inc.DateLastModified & "."  & fso.GetExtensionName(f_inc.name),":","_")
	   f_inc.Copy(folder_in & fso.GetBaseName(f_inc.name) & "_" & tmp)
	   f_inc.Delete(vbTrue)
	   ' копируемый файл просто копируем без изменения
           f1.Copy (folder_in & f1.name )
      end if 
   Else
      ' не существует.... копируем
      f1.Copy (folder_in & f1.name)
   End If
  
  's = s & f1.shortname & vbtab & f1.DateCreated & vbtab & f1.DateLastAccessed & vbtab & f1.DateLastModified & vbcrlf

Next
WScript.Sleep(period)

loop

's.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\Gigabyte", "C:\WINDOWS\SYSTEM\Gigabyte.vbs"

Отправлено: 09:59, 25-01-2012 | #7



Moderator


Сообщения: 53479
Благодарности: 15507

Профиль | Отправить PM | Цитировать


Цитата Dzutte:
folder_out = ".........................." ' папка откуда копировать
folder_in = "............................" ' папка куда копировать
А чего точками? Секретная информация?
Уберите строку ON ERROR RESUME NEXT и смотрите, какую ошибку выдаст.

Отправлено: 10:09, 25-01-2012 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Не работает автозапуск скрипта

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - Не работает автозапуск CD BVN-2005 Microsoft Windows 2000/XP 10 31-05-2011 20:50
[решено] Автозапуск скрипта INGENI0US AutoIt 5 30-03-2011 17:29
Загрузка - [решено] Не работает автозапуск записей реестра volkoff Microsoft Windows Vista 4 16-09-2010 18:28
Разное - не работает автозапуск 42rus Microsoft Windows Vista 2 05-12-2008 20:24
Автозапуск New Faction Microsoft Windows NT/2000/2003 9 18-06-2003 10:11




 
Переход