Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Закладки » Программирование "удобняшек" на VBScript

Модерирует : ShIvADeSt

ShIvADeSt (12-07-2011 15:12): http://forum.ru-board.com/topic.cgi?forum=33&topic=11963#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112

   

magiogre



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hugo121
Огромное спасибо!

Всего записей: 104 | Зарегистр. 26-01-2009 | Отправлено: 21:43 20-05-2010
HW2yS

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
всем привет ! дали задачу написать vbscript
 
Create a vbScript called: CreateStudents.vbs that creates a
Labs\Students OU in the domain and creates Student01 through
Student20 in the Students OU and makes them Domain Admins and
Enterprise Admins
 
а я дальше создать ou не могу продвинутся
обращаюсь к спецам, помогите пожалуйста !
очень нужен этот скрипт

Всего записей: 87 | Зарегистр. 21-11-2006 | Отправлено: 16:28 22-05-2010
wolf0425



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Black_Lung

Цитата:
В тот файл заносятся список файлов через dir /s /b. выяснил что dir выводит русский текст в dos кодировке, а vbs ее не понимает.
Нужно сделать или чтобы dir выводил в win кодировке или чтобы vbs понимал dos. Еще может у кого-нибудь есть другой аналог создающий список файлов с учетом подкаталогов и "*".  
Ну так скажи диру чтоб вы водил в виндовой - выведет в виндовой. он же просто в текущей выводит.

Код:
chcp 1251 >nul & dir /s /b >list_win.txt


Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 19:27 23-05-2010 | Исправлено: wolf0425, 19:27 23-05-2010
Black_Lung



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HW2yS
пример
http://www.computerperformance.co.uk/vbscript/vbscript_user_create.htm

Всего записей: 275 | Зарегистр. 09-10-2008 | Отправлено: 10:48 25-05-2010
SomeCherry

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пишу скрипт на vbscript
Запускаю через cmd
Когда идет команда WScript.Echo то вывод идет во всплывающее окошко, а не в консоль (причем на каждый вызов WScript.Echo всплывает отдельное окошко). В файл в итоге тоже не перенаправляется (через '>'). Подскажите, пожалуйста, как с этим бороться?

Всего записей: 17 | Зарегистр. 18-03-2010 | Отправлено: 10:18 26-05-2010
bygamer



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SomeCherry
скрипт запускай командой cscript.exe script.vbs

Всего записей: 69 | Зарегистр. 12-07-2006 | Отправлено: 11:22 26-05-2010
degid



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
дель

Всего записей: 31 | Зарегистр. 26-10-2006 | Отправлено: 13:56 27-05-2010 | Исправлено: degid, 14:00 27-05-2010
YURETS777



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как в VBS сделать парсинг строк после считывания всего текстового файла:
Set objTextFile1 = objFSO.OpenTextFile(InFile, ForReading)
StrValue = objTextFile1.ReadAll
For Each Strings ???
WScript.Echo StrValue(i) ???
 
Короче в текстовике 3 миллиона строк, как сделать обработку строк, чтобы она выполнялась с максимальной скоростью
 
 

Всего записей: 2161 | Зарегистр. 29-04-2005 | Отправлено: 23:05 28-05-2010 | Исправлено: YURETS777, 23:06 28-05-2010
vlth

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YURETS777

Код:
astrValue = Split(StrValue, VbCr)
For Each strStroka In astrValue
    MsgBox strStroka
Next

 
Если скорость обработки будет неудовлетворительной, можно организовать считывание файла частями.
пример
(частями на большом файле процентов на 20 быстрее получалось)

Всего записей: 258 | Зарегистр. 22-01-2008 | Отправлено: 00:36 29-05-2010
Hugo121

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не могу найти, как в vbs выгрузить массив на лист экселя без перебора. В самом Экселе работает такое:

Код:
Sub tt()
a = [a1:c10]
Range(Cells(1, 4), Cells(UBound(a, 1), 6)) = a
'or
[d1:f10] = a
End Sub
 

В vbs аналогичный код заполняет ячейки первым элементом массива...

Код:
Set objExcel = CreateObject("Excel.Application"):  objExcel.Workbooks.Add '# открываем новую книгу Excel
objExcel.Visible = True
a=Array("qwer","tyui")
msgbox a(0)
msgbox a(1)
objExcel.Range("A1:A2") = a  
 

Всего записей: 128 | Зарегистр. 14-08-2007 | Отправлено: 18:29 30-05-2010 | Исправлено: Hugo121, 19:10 30-05-2010
vlth

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hugo121
Даже не знаю, как ответить словами, поскольку непонятно, что у тебя вызвало затруднения...
Легче привести рабочий пример (почти весь код посвящён заполнению массива )

Код:
Dim Ar()
Set Excl = CreateObject("Excel.Application.9")
Excl.Visible=True
Redim Ar(12, 5)
For i= 0 to 12
    For j = 0 To 5
        Ar(i, j) = k^2
        k=k+1
    Next
    k=k*2
Next
Set WS=Excl.Workbooks.Add.Worksheets(1)
 
'Собственно ответ
Excl.Range(WS.Cells(1,1),WS.Cells(UBound(Ar,1)+1,UBound(Ar,2)+1)).Value=Ar

 
Добавлено:
Хм... Странно - сначала, вроде бы, продолжения не было? - теперь вопрос понятен.
 
Только транспонировать линейный массив, чтобы вывести его в столбец, нужно и в Excel.

Код:
Set objExcel = CreateObject("Excel.Application"):  objExcel.Workbooks.Add '# открываем новую книгу Excel  
objExcel.Visible = True  
a=Array("qwer","tyui")  
msgbox a(0)  
msgbox a(1)  
objExcel.Range("A1:A2") =objExcel.WorksheetFunction.Transpose(a)

Всего записей: 258 | Зарегистр. 22-01-2008 | Отправлено: 20:11 30-05-2010
Hugo121

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, буду изучать.
off
 
Дошло - просто не туда выгружал. Работает и первый код, если выгружать в  
objExcel.Range("A1:B1") = a
 
P.S. Заработало!
x = 2 'отступ для шапки
objExcel.Range(objExcel.Cells(1+x,1),objExcel.Cells(UBound(Arr1,1)+1+x,UBound(Arr1,2)+1)).Value=Arr1  

Всего записей: 128 | Зарегистр. 14-08-2007 | Отправлено: 21:25 30-05-2010 | Исправлено: Hugo121, 21:51 30-05-2010
galaxyMINSK

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите.
Нужно при входе срабатывал скрипт GPO который делает следующие  
1)    Переместить все находящиеся на рабочем столе папки, файлы и ярлыки в папку «мои документы\с рабочего стола\» (оставляя если можно Мои документы, Мой компьютер, Сетевое окружение, IE, корзина и все из ALL USER)
2)    Текущему  пользователю устанавливает на папку « рабочий  стол» разрешения на запись – запретить.
Спасибо за помочь.

Всего записей: 11 | Зарегистр. 09-02-2007 | Отправлено: 17:21 31-05-2010
mikolamkn

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем, помогите с такой темой:
Нужно автоматизаровать вход на определенную страницу сайта и вытащить с этой страницы значение из таблицы.
Фишка в том, что страница на Java.
 
Логинюсь так:
 
url = "адрес"
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP.3.0")
Set omyIE = CreateObject("InternetExplorer.Application")
omyIE.Visible = True
omyIE.Navigate url
omyIE.StatusBar = True
wscript.sleep(1000)
Set objForm = omyIE.Document.forms(0)
objForm.elements(0).value = "логин"
objForm.elements(2).value = "пароль"
objForm.elements(3).click
 
Логинится и заходит нормально, дальше надо кликнуть по ссылке в выпадающем меню, которая имеет такой вид:  
"javascript: DropDownMenuManager_105.itemClicked("1114")"
Каким образом скрестить java и VBS в данном случае?

Всего записей: 15 | Зарегистр. 28-06-2006 | Отправлено: 18:04 31-05-2010
magiogre



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток, уважаемые знатоки VBS!
Следующая задачка...
 
В локальной сети имеется куча компьютеров. В связи с миграцией на новый домен, необходимо массово поменять настройки на всех компьютерах следующим образом:
 
http://img594.imageshack.us/img594/8941/dns1.png
 
Пункты 1 и 2: Получать параметры автоматически;
Пункт 3: Необходимо вписать три DNS-суффикса;
Пункт 4: Необходимо вписан первый DNS-суффикс из пункта 3.
Пункты 5 и 6: Проставить галочки.
   
Помогите написать скрипт, который будет выполняться через групповую политику и менять настройки автоматически как на скриншоте.
 
 
PS.
По книге намудрил следующий скрипт, который прописывает суффиксы и DNS-ы.
Как вариант, можно попробовать модифицировать его под данную задачку.
 
 
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colNetCards = objWMIService.ExecQuery _
("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
Set objNetworkSettings = objWMIService.Get("Win32_NetworkAdapterConfiguration")
arrDNSSuffixes = Array("dns1.local","dns2.local","dns3.local")
objNetworkSettings.SetDNSSuffixSearchOrder(arrDNSSuffixes)
For Each objNetCard in colNetCards
arrDNSServers = Array("192.168.1.1","192.168.1.2","10.14.11.1","10.14.11.2")
objNetCard.SetDNSServerSearchOrder(arrDNSServers)
Next
 
Заранее спасибо

Всего записей: 104 | Зарегистр. 26-01-2009 | Отправлено: 15:28 02-06-2010
Mark_Titov



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
...Приветствую всех знатоков.

Нужна ваша помощь в дописании скрипта одного -
Очень полезный скриптик, он позволяет по имени компа в домене определить залогиненного юзера!
Хорошо выручает в определенных задачах.
Но хотелось бы немного модернизировать его не много.
В этом варианте -
 

Код:
strComputer = "Comp_name"
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _  
    & strComputer & "\root\cimv2")  
Set colComputer = objWMIService.ExecQuery _
    ("Select * from Win32_ComputerSystem")
 
For Each objComputer in colComputer
    Wscript.Echo "User Name = " & objComputer.UserName _
        & VBNewLine & "Computer Name = " & objComputer.Name
WScript.Echo objComputer.UserName
Next

 
...приходится постоянно редактировать имя компа, нужно что бы при запуске сразу выскакивало окошко с предложением ввести имя компа.
И почему-то после проверки имени пользователя выскакивает 2 окна практически с идентичной инфой, хотя хватило бы и одного, там больше не надо...
А если скрипт вообще не обнаруживает комп в сети - то выскакивает ошибка - можно в место ошибки табличку типа "Компьютер в сети не обнаружен"...
И если можно прикрутить такое -
При успешном обнаружении компа в сети и после нажатия на кнопку "Ок" в окошке которое показывает имя залогинившегося пользователя - выскакивало
бы еще одно окошко для ввода текста с предложением отправить сообщение этому пользователю (net send)...
 
Я думаю что не только мне такое чудо пригодится...
 
Заранее благодарю...

Всего записей: 387 | Зарегистр. 12-04-2010 | Отправлено: 19:31 02-06-2010
ViSiToR



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Mark_Titov 19:31 02-06-2010
Цитата:
нужно что бы при запуске сразу выскакивало окошко с предложением ввести имя компа


Код:
Set objNetwork = CreateObject("WScript.Network")
strComputer = InputBox("Введите пожалуйста имя компьютера:", "Ввод имени компьютера", objNetwork.ComputerName)

 

Цитата:
 почему-то после проверки имени пользователя выскакивает 2 окна практически с идентичной инфой

Потому что два раза вызывается «WScript.Echo».
 

Цитата:
 можно в место ошибки табличку типа "Компьютер в сети не обнаружен"...  
 И если можно прикрутить такое -  
 При успешном обнаружении компа в сети и после нажатия на кнопку "Ок" в окошке которое показывает имя залогинившегося пользователя - выскакивало  
 бы еще одно окошко для ввода текста с предложением отправить сообщение этому пользователю (net send)...

Полный скрипт:

Код:
On Error Resume Next
 
set WShell = CreateObject("WScript.Shell")
Set objNetwork = CreateObject("WScript.Network")
strComputer = InputBox("Введите пожалуйста имя компьютера:", "Ввод имени компьютера", objNetwork.ComputerName)
 
If strComputer = "" Then
    Wscript.Quit()
End If
 
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
 
If Not IsObject(objWMIService) Then
    MsgBox "Компьютер в сети не обнаружен" & VBNewLine & VBNewLine & "OK ==> EXIT", 48, "Внимание"
    Wscript.Quit()
End If
 
Set colComputer = objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
 
For Each objComputer in colComputer
    Wscript.Echo "User Name = " & objComputer.UserName & VBNewLine & "Computer Name = " & objComputer.Name
    strMessage = InputBox("Отправить сообщение пользователю <" & objComputer.UserName & ">", "Отправка сообщения", "Ваше сообщение")
     
    If strMessage <> "" Then
            WShell.Run "NET SEND " & objComputer.UserName & " " & strMessage, 0, True
    End If
Next


----------
ViSiToR a.k.a CreatoR
CreatoR это не ник, CreatoR это стиль жизни!

Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 02:37 03-06-2010
Mark_Titov



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ViSiToR - Огромнейшее тебе спасибо!
Работа просто супер!

Всего записей: 387 | Зарегистр. 12-04-2010 | Отправлено: 04:11 03-06-2010
galaxyMINSK

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
При первом срабатывании скрипта переименовываем рабочий стол, пусть будет на всякий случай и каждый последующий раз при входе просто удаляется рабочий стол, но ни как не могут придумать как можно установить запрещающей ntfs разрешения на запись текущему пользователю (CU) в домене (CUDomain), что бы не мог ничего сохранить. Помогите если кто знает. Спасибо.
 
Set FSO = CreateObject("Scripting.FileSystemObject")
set WSHShell = WScript.CreateObject("WScript.Shell")
Set WshNetwork = CreateObject("WScript.Network")
 
FolderRS = WSHShell.SpecialFolders(4) ' Путь к пользователя (Рабочий стол)
CU= WshNetwork.UserName ' текущий пользователь
CUDomain= WshNetwork.UserDomain ' домен текущего пользователя
 
If FSO.FolderExists(FolderRS&".old") = false Then ' проверка если папка рабочий стол.old
    If FSO.FolderExists(FolderRs)= true Then ' проверка  если папка рабочий стол
        FSO.MoveFolder FolderRs, FolderRS&".old" ' переименовываем рабочий стол в old
        FSO.CreateFolder FolderRs ' создаем рабочий стол, а то нету общих ярлыков
    End if
else
    FSO.DeleteFolder FolderRs, 1 ' удаляем рабочий стол
    FSO.CreateFolder FolderRs ' и создаем его
End if
 
P.S. Может сильно не красиво написал ну как смог ))

Всего записей: 11 | Зарегистр. 09-02-2007 | Отправлено: 17:43 03-06-2010
YURETS777



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
После перехода на вин7 перестала работать одна очень полезная удобняшка
 

Код:
 
Set ObjFSO = CreateObject("UserAccounts.CommonDialog")
ObjFSO.Filter = "Text Documents|*.txt|All Files|*.*"
ObjFSO.FilterIndex = 3
ObjFSO.InitialDir = "."
 
InitFSO = ObjFSO.ShowOpen
If InitFSO = False Then
    Wscript.Echo "Script Error: Please select a file!"
    Wscript.Quit
Else
    InFile = ObjFSO.FileName
End If
 

 
Нагуглил таое решение:
 
REGEDIT4
 
[HKEY_CLASSES_ROOT\Licenses\4D553650-6ABE-11cf-8ADB-00AA00C00905]
@="gfjmrfkfifkmkfffrlmmgmhmnlulkmfmqkqj"
 
[HKEY_CLASSES_ROOT\Licenses\78E1BDD1-9941-11cf-9756-00AA00C00908]
@="yjrjvqkjlqqjnqkjvprqsjnjvkuknjpjtoun"
 
Но к сожалению на вин7 это не решило проблему.
 
Кто победил данный недуг, поделитесь лекарством.
 
Может нужно какую библиотеку прорегить ?

Всего записей: 2161 | Зарегистр. 29-04-2005 | Отправлено: 10:46 04-06-2010 | Исправлено: YURETS777, 11:14 04-06-2010
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Закладки » Программирование "удобняшек" на VBScript
ShIvADeSt (12-07-2011 15:12): http://forum.ru-board.com/topic.cgi?forum=33&topic=11963#1


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru