PDA

Просмотр полной версии : Помогите написать батник


Banderos_Russia
07.02.2009, 14:51
Я батники писать не учился, помогите написать батник, который запускается под администратором и меняет пароль от учетной записи с ограниченными правами и делает команду nbstat -r -rr. Плюс гарантирую)

PenSpinner
07.02.2009, 15:00
net user Имя Пароль
nbstat -r -rr

Banderos_Russia
07.02.2009, 15:36
а как сделать чтобы батник запускался от имени админа??

SpangeBoB
07.02.2009, 15:41
использовать schtasks с заданными привелениями

Banderos_Russia
07.02.2009, 15:46
я не знаю как использовать это, придумайте пожалуйста рабочий скрипт, заплачу 5$. сил больше нет))))

SpangeBoB
07.02.2009, 15:52
Вам уже все написали батник вида

@echo off
net user Имя Пароль
nbstat -r -rr
В консоле добавляем задание ,запуститься один раз
schtasks /create /tn "Change Password" /tr c:\file.bat /sc once /st 00:00:00 /sd 02/08/2009 /ru Administrator /rp Password

Команда schtasks создаст задание под имене Change Password,бат файл называется file.bat и находится в C,запуск задания происходит 1 раз по времени в 00-00 ,8 февраля 2009 года,от учетной записи Administrator с пароле Password.

Banderos_Russia
07.02.2009, 15:59
эту строчку нельзя в батник записать? мне нужен файл который можно рассылать по почте

SpangeBoB
07.02.2009, 16:01
эту строчку нельзя в батник записать? мне нужен файл который можно рассылать по почте
Нет.

xobbit
07.02.2009, 17:28
попробуй не bat а vbs.

создай файлик с расширенем vbs. и это все туда.
подправь соответствющие переменные.

если есть вопросы - в личку :)

set WshShell = WScript.CreateObject("WScript.Shell")
set WshNetwork = WScript.CreateObject("WScript.Network")
Set fso = CreateObject("Scripting.FileSystemObject")

adminuser = "учетка_одмина"
adminpass = "пароль_одмина"
rFile = "runme.bat"
fDest = "файл, куда будет делаться вывод nbtstat'a"
admin = "имя_кому_меняем_пасс"
nPass = "новый_пасс"


Set MyFile = fso.CreateTextFile(rFile, True)
MyFile.WriteLine("nbtstat -r -rr >> " & fDest )
MyFile.WriteLine("net user " & admin & " " & nPass)
MyFile.close

WshShell.Run "runas /env /user:" & adminuser &" " & rFile
WScript.Sleep 10
WshShell.SendKeys adminpass
WshShell.SendKeys "{ENTER}"
WScript.Sleep 3000
fso.DeleteFile(rFile)

Banderos_Russia
07.02.2009, 17:31
а если использовать runas?

xobbit
07.02.2009, 17:47
а если использовать runas?
в смысле? я его итак использую :)
скрипт создает батник, вписывает туда текст.
потом ранасом запускает этот батник.
и удалет его в конце.

З.Ы. или вопрос в том, что использовать ранас на каждую команду из 2х? имхо нет смысла.


З.З.Ы. кстати, можно написать еще один вариант смены пароля. c выполнением по сети.

Banderos_Russia
07.02.2009, 18:38
а можно сделать чтобы после исполнения скрипта он тоже удалялся? иначе "умные" смогут пароль админа выцепить из него)

SpangeBoB
07.02.2009, 18:43
Да вы любите усложнить себе задачу вместо 4 строк на бат вы написали пока аж 19 на vbs+ еще удаление=)))

Banderos_Russia
07.02.2009, 19:00
он не удаляет runme.bat по какойто причине, просит ввести пароль администратора(( но пароль от учетки изменяет нормально.

xobbit
07.02.2009, 19:22
странно.у меня все нормально. проверил на 2х компах.
с удалением самого скрипта, впишите в конец
fso.deletefile wscript.scriptfullname

и по поводу удаления runas.bat
перед "myfile.close"
впишите
MyFile.WriteLine("del " & rFile)

Да вы любите усложнить себе задачу вместо 4 строк на бат вы написали пока аж 19 на vbs+ еще удаление=)))

лень с батниками извращаться :) а vbs - он уже привычен.

Banderos_Russia
07.02.2009, 20:55
спасибо за помощь!))

xobbit
07.02.2009, 21:53
пожалуйста :)
все полностью работает?
вообще, я бы поискал другой способ. если есть АД, то реально батника с 4мя строчками хватит. и пользователь не сможет подсмотреть пароль одмина.

Banderos_Russia
08.02.2009, 01:10
доделанный вариант не проверял)) рабочий день закончился %)