видимо, я торможу уже - никак не соображу, куда там пароль пихать, чтоб от имени пользователя запускал без его участия?
runas.exe /user:imm "cmd /c c:\pgp\test.bat"
при такой строчке спрашивает пароль и после ввода проходит нормально, по-другому не получается..
> Запустить по at cmd, а потом интерактивно вызывать, то тоже > не работает?
нет, та же картина - команда прошла, но результатов нет.
> > получится то возможно придется почитать про > > MSDN\CreateProcessWithLogonW Ж) =))
> Попробуй runas.exe, но чтобы это все выполнялось автоматом, > то надо перенаправлять ввод из файла, а в файл запихать > плайнтекстовый пароль - не сильно секурно.
Имеется БАТник, который надо запускать ежедневно.
команда at 10:48 /interactive /every:m,t,w,th,f,s,su F:\tst.bat
внутренности БАТника:
file.rar.pgp
file.r00.pgp
file.r01.pgp
При ручном запуске БАТника раскриптование ПГП-файликов проходит нормально, при запуске по расписанию - хрен. Окошко "пролетает", ничего заметить даже не успеваю.
Пробовал и на NT4 и на Win2k prof SP4 - результат одинаковый.
В чем дело - не пойму :(
а еще кстати..10.10.03 16:46 Автор: Killer{R} <Dmitry> Статус: Elderman
> Имеется БАТник, который надо запускать ежедневно. > команда at 10:48 /interactive /every:m,t,w,th,f,s,su > F:\tst.bat > внутренности БАТника: > file.rar.pgp > file.r00.pgp > file.r01.pgp > > При ручном запуске БАТника раскриптование ПГП-файликов > проходит нормально, при запуске по расписанию - хрен. > Окошко "пролетает", ничего заметить даже не успеваю. > Пробовал и на NT4 и на Win2k prof SP4 - результат > одинаковый. > В чем дело - не пойму :( как я понимаю раскриптование происходит т.к. файлы типа .pgp ассоциированы с прогой той которая умеет раскриптовывать. Настройки ассоциации файлов хранятся одельно для каждого юзера в юзерский ветках реестра. И для All users наверно ниче не сопоставлено. Запускай самоу прогу которая их обрабатывает а файл передавай как параметр.
:( и так не получается10.10.03 17:12 Автор: !mm <Ivan Ch.> Статус: Elderman
А куда оно их раскриптовывает? В текущий каталог? Тогда наверно надо делать cd каталогкадараскриптовывать. Не поможет - можешь еще попробовать открыть regedit и перенести все что относится к pgp из ветки HKEY_CURRENT_USER в ветку HKEY_USERS\.DEFAULT. Ну если не получится то возможно придется почитать про MSDN\CreateProcessWithLogonW Ж)
А если10.10.03 18:40 Автор: amirul <Serge> Статус: The Elderman
Запустить по at cmd, а потом интерактивно вызывать, то тоже не работает?
> получится то возможно придется почитать про > MSDN\CreateProcessWithLogonW Ж)
Попробуй runas.exe, но чтобы это все выполнялось автоматом, то надо перенаправлять ввод из файла, а в файл запихать плайнтекстовый пароль - не сильно секурно.
видимо, я торможу уже - никак не соображу, куда там пароль пихать, чтоб от имени пользователя запускал без его участия?
runas.exe /user:imm "cmd /c c:\pgp\test.bat"
при такой строчке спрашивает пароль и после ввода проходит нормально, по-другому не получается..
> Запустить по at cmd, а потом интерактивно вызывать, то тоже > не работает?
нет, та же картина - команда прошла, но результатов нет.
> > получится то возможно придется почитать про > > MSDN\CreateProcessWithLogonW Ж) =))
> Попробуй runas.exe, но чтобы это все выполнялось автоматом, > то надо перенаправлять ввод из файла, а в файл запихать > плайнтекстовый пароль - не сильно секурно.
"runas /?" ничего про ввод из файла не говорит :(
Всем спасибо! Нашел аналог runas, теперь совсем все ок =))10.10.03 20:12 Автор: !mm <Ivan Ch.> Статус: Elderman Отредактировано 10.10.03 20:16 Количество правок: 2
RUNAS in Windows 2000 is nice, but not very script friendly. Unlike SU from the
NT Resource Kit, you can't pass a password. Here is an alternative.
You can use the following script to execute a command via RUNAS. You might
find this helpful for yourself, or run it from a batch file (although the password will
be in clear text). Another alternative is to hardcode the command, username and
password in the script, then use the Script Encoder (download from
http://msdn.microsoft.com/scripting) to encode it. You run the script the same
way, the file will just have a different extension: cscript vbrunas.vbe. Then if you
have repeatable admin tasks you or your users, just execute the script.
код: (на всякий случай)
запускать: %systemroot%\system32\cscript.exe Vbrunas.vbs
'Start of Script
'VBRUNAS.VBS
'v1.2 March 2001
'Jeffery Hicks
'jhicks@quilogy.com http://www.quilogy.com
'USAGE: cscript|wscript VBRUNAS.VBS Username Password Command
'DESC: A RUNAS replacement to take password at a command prompt.
'NOTES: This is meant to be used for local access. If you want to run a command
'across the network as another user, you must add the /NETONLY switch to the RUNAS
'command.
'*******************************************************************************
' * THIS PROGRAM IS OFFERED AS IS AND MAY BE FREELY MODIFIED OR ALTERED AS *
' * NECESSARY TO MEET YOUR NEEDS. THE AUTHOR MAKES NO GUARANTEES OR WARRANTIES, *
' * EXPRESS, IMPLIED OR OF ANY OTHER KIND TO THIS CODE OR ANY USER MODIFICATIONS. *
' * DO NOT USE IN A PRODUCTION ENVIRONMENT UNTIL YOU HAVE TESTED IN A SECURED LAB *
' * ENVIRONMENT. USE AT YOUR OWN RISK. *
'*******************************************************************************
On Error Resume Next
dim WshShell,oArgs,FSO
set oArgs=wscript.Arguments
if InStr(oArgs(0),"?")<>0 then
wscript.echo VBCRLF & "? HELP ?" & VBCRLF
Usage
end if
if oArgs.Count <3 then
wscript.echo VBCRLF & "! Usage Error !" & VBCRLF
Usage
end if
sUser=oArgs(0)
sPass=oArgs(1)&VBCRLF
sCmd=oArgs(2)
set WshShell = CreateObject("WScript.Shell")
set WshEnv = WshShell.Environment("Process")
WinPath = WshEnv("SystemRoot")&"\System32\runas.exe"
set FSO = CreateObject("Scripting.FileSystemObject")
if FSO.FileExists(winpath) then
'wscript.echo winpath & " " & "verified"
else
wscript.echo "!! ERROR !!" & VBCRLF & "Can't find or verify " & winpath &"." &
VBCRLF & "You must be running Windows 2000 for this script to work."
set WshShell=Nothing
set WshEnv=Nothing
set oArgs=Nothing
set FSO=Nothing
wscript.quit
end if
rc=WshShell.Run("runas /user:" & sUser & " " & CHR(34) & sCmd & CHR(34), 2, FALSE)
Wscript.Sleep 30 'need to give time for window to open.
WshShell.AppActivate(WinPath) 'make sure we grab the right window to send password to
WshShell.SendKeys sPass 'send the password to the waiting window.
set WshShell=Nothing
set oArgs=Nothing
set WshEnv=Nothing
set FSO=Nothing
wscript.quit
**********************
'* Usage Subroutine *
**********************
Sub Usage()
On Error Resume Next
msg="Usage: cscript|wscript vbrunas.vbs Username Password Command" & VBCRLF & VBCRLF &
"You should use the full path where necessary and put long file names or
commands" & VBCRLF & "with parameters in quotes" & VBCRLF & VBCRLF &
"For example:" & VBCRLF &" cscript vbrunas.vbs quilogy\jhicks luckydog
e:\scripts\admin.vbs" & VBCRLF & VBCRLF &"cscript vbrunas.vbs quilogy\jhicks
luckydog " & CHR(34) &"e:\program files\scripts\admin.vbs 1stParameter
2ndParameter" & CHR(34)& VBCRLF & VBCRLF & VBCLRF & "cscript
vbrunas.vbs/?? will display this message."
wscript.echo msg
wscript.quit
end sub
'End of Script
---
Можно было проще: runas /user:USER <passwd.txt script.bat11.10.03 00:21 Автор: amirul <Serge> Статус: The Elderman
Проверял все на своей системе - win2k, думал - NTя - она и есть NTя, а хрен там. На NT4 sp6a (куда и надо привинтить) это все не работает. И runas там тоже нет.
Начал тестить - и на самом интересном месте - облом :(
Тьфу.
Будем дальше ковырять.
Run as в NT действительно нету.10.10.03 21:55 Автор: Killer{R} <Dmitry> Статус: Elderman
Скорее всего дело в различии "environment". Наверняка PGP использует какие-либо переменные. Попробуй запустить по AT просто cmd.exe или FAR, и сравни результаты set с "интерактивными".
[NT] Точно - запускается с другими переменными..10.10.03 15:24 Автор: !mm <Ivan Ch.> Статус: Elderman
> Скорее всего дело в различии "environment". Наверняка PGP > использует какие-либо переменные. Попробуй запустить по AT > просто cmd.exe или FAR, и сравни результаты set с > "интерактивными".
at:
TEMP=C:\WINNT\TEMP
TMP=C:\WINNT\TEMP
USERPROFILE=C:\Documents and Settings\Default User
"вручную":
TEMP=C:\DOCUME~1\imm\LOCALS~1\Temp
TMP=C:\DOCUME~1\imm\LOCALS~1\Temp
USERDOMAIN=SRV
USERNAME=imm
USERPROFILE=C:\Documents and Settings\imm
---
интересно, как это побороть :(
буду смотреть.
переопределяй переменные в начале батника с помощью SET10.10.03 15:41 Автор: Killer{R} <Dmitry> Статус: Elderman