Страница 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 8-)

Код: Выделить всё

@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%"!! Что-то я затупил :roll: ... Вот такой же 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 у кого нибудь завалялся? :oops: (в электронном виде конечно)

Добавлено: 08.11.2008, 23:16
igor7
danygug,
Учебника у меня нет, но сам я пользуюсь коллекцией скриптов с объяснениями что там к чему. Рекомендую:
http://rapidshare.com/files/161930892/v ... rchive.chm

Добавлено: 09.11.2008, 01:34
N_T
igor7 писал(а):Учебника у меня нет
Аналогично, к сожалению...

PS
Да... За скрипт - пожалуйста. Не стоит благодарностей. Всегда рад помочь! :jokingly:

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

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