Страница 1 из 1
VBS Script
Добавлено: 07.11.2008, 12:15
danygug
Привет,
Нужен VBS скрипт который определит букву системного диска SYSTEMDRIVE и добавит в registry
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
"Stage1"="SYSTEMDRIVE:\\temp\\stage1.cmd"
есть программеры?
Добавлено: 07.11.2008, 13:08
igor7
danygug,
Тебе обязательно нужен SYSTEMDRIVE? А что если это будет %windir%?
Если тебя устроит, то я и сам напишу такой скрипт. Если нет, нужно будет немного покопаться...
Добавлено: 07.11.2008, 13:16
N_T
script.bat
Код: Выделить всё
@echo off
set Key=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
REG ADD %Key% /V Stage1 /D "%systemdrive%\temp\stage1.cmd" /f
Добавлено: 07.11.2008, 13:47
igor7
N_T,
Конечо же, - "%systemdrive%"!! Что-то я затупил

... Вот такой же VBS скрипт:
Код: Выделить всё
Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Run"
strValueName = "Stage1"
strValue = "%systemdrive%\temp\stage1.cmd"
objRegistry.SetStringValue HKEY_CURRENT_USER, strKeyPath, strValueName, strValue
WScript.Echo "Stage1 value is set"
Параметр strComputer = "." обозначает локальный компютер. Для удаленного нужно будет заменить его на strComputer = "\\Имя компа"
Добавлено: 08.11.2008, 19:20
danygug
N_T,
через батник я и сам умею

спасибо.
кстати через батник (ибо из под доса) %systemdrive% обрабатывается нормально и в регистр пишется буква, а с vbs будет посложнее
igor7,
в регистр должно записаться
"Stage1"="
С:\\temp\\stage1.cmd" , а не "Stage1"="
SYSTEMDRIVE:\\temp\\stage1.cmd"
при условии что
SYSTEMDRIVE = С.
Добавлено спустя 22 минуты 50 секунд:
поясню задачу ...
среда обитания windows xp
скрипт должен определить букву системного диска (C,D,E,F И и так далее)
и подставлять ее в формулу "Stage1"="
буква системного диска:\\temp\\stage1.cmd"
потом получившееся, напрмер если система на диске с, добавить в регистр
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
"Stage1"="
С:\\temp\\stage1.cmd"
скрипт будет использоваться в автоматической установке хрюши
системный диск можно определить встроеной функцией в vbscript (не знаю какой ...)
или посмотреть откуда стартует сам это vbscript, его место расположение будет
системный диск:\temp\script_name.vbs
Добавлено спустя 6 минут 30 секунд:
igor7,
такого результата

я добился он меня не устраивает потомучто винда при старте не обрабатывает %systemdrive% из regestry соответственно нужна жесткая привязка к букве

Добавлено: 08.11.2008, 19:53
N_T
Заново писать лень, поэтому подправлю скрипт Игоря:
Код: Выделить всё
Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
Set WshShell = CreateObject("WScript.Shell")
Set WshEnv = WshShell.Environment("Process")
strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Run"
strValueName = "Stage1"
strvalue = WshEnv.Item("systemdrive")&"\temp\stage1.cmd"
objRegistry.SetStringValue HKEY_CURRENT_USER, strKeyPath, strValueName, strValue
WScript.Echo "Stage1 value is set"
PS у тебя там кое-где стоят двойные бэк-слеши. Думаю, что ты описался, но если нет, то подправь скрипт сам.
Добавлено: 08.11.2008, 21:18
danygug
а может учебнечик какой нибудь по vbs у кого нибудь завалялся?

(в электронном виде конечно)
Добавлено: 08.11.2008, 23:16
igor7
danygug,
Учебника у меня нет, но сам я пользуюсь коллекцией скриптов с объяснениями что там к чему. Рекомендую:
http://rapidshare.com/files/161930892/v ... rchive.chm
Добавлено: 09.11.2008, 01:34
N_T
igor7 писал(а):Учебника у меня нет
Аналогично, к сожалению...
PS
Да... За скрипт - пожалуйста. Не стоит благодарностей. Всегда рад помочь!

Добавлено: 09.11.2008, 18:32
danygug
спасибо спасибо , буду обращаться, будем

Добавлено: 09.11.2008, 20:41
laronov
Помоему хорошая библиотека:
Скрытый текст
Для просмотра скрытого текста необходимо быть авторизованным пользователем.