![]() |
Вход в сетевую папку под учётной записью и работа с ней, архивирование
Добрый день !
1. Возможно ли выполнять скриптом вход на расшаренные ресурсы, именно для юзера (Test01) c паролем (12345), что бы потом работать с архивами ? 2. Сушествует ли тихий архиватор, который бы не отображал саму архивацию (итак будет понятно скрипту что он закончил архивировать после RunWait), желательно со степенью сжатия и с возможностью установки пароля. |
TERMINAL,
1. RunAs() + читать консольный вывод, RunAsWait()? 2. Консольный 7-Zip. |
madmasles, у меня, дело в том, что даже в новом хелпе нет такой команды RunAs(), а только описание старой команды RunAsSet-может ссылочку подкинешь?
На счёт консольного 7-Zip-я так и не нашёл ключа который бы не отображал происходящее-может подскажешь? А для административных шар (такие как $C) RunAs() тоже подойдёт? |
|
madmasles, а пример есть какой-нибудь ? Например как скопировать файл с помощью RunAs() или узнать-есть файл или нет?
|
TERMINAL, ты случаем не используешь русскую справку? если так, то выкинь ее и возьми новую (правда на английском) со свежего дистрибутива. если проблемы с языком, гугл транслейт тебе в помощь
|
kaster, madmasles, С помощью RunAs() возможно не только запускать но и копировать файлы по сети ? Если да-подкиньте любой примерчик плз.
|
TERMINAL, твои вопросы наводят меня на странные мысли. Run и RunAs - это всего лишь обертки для запуска других программ. Второй позволяет сделать это под другим пользователем. Примеры в справке. Ты хочешь чтобы тебе их сюда скопировали? Если тебе надо работать с архивом, то тебе так же подсказали бесплатный консольный архиватор, и раз тебе его подсказали, значит он умеет ходить по расшаренным ресурсам по UMC именам (который типа \\machinename\foldername). тебе остается только глянуть на параметры ком. строки для 7-Zip и запустить его из под пользователя Test01. если тебе лень открыть справку по AutoIt и посмотреть команды архиватора, то так скажи. честность - не самое дурное качество, знаешь ли. может кто возьмется и сделает это за тебя
|
kaster, Может я неправильно тему изложил или описание к ней, но лень тут ни причём...
Суть такая: 1. Есть расшареная папка на сервере. К этой папке имеет только доступ пользователь (к примеру, с учётной записью TEST01 и паролем 123). Мне нужно с помощью AutoIt зайти (к примеру, на \\192.168.100.1\TEMPS) под пользователем TEST01 и скопировать папку к себе на комп \\192.168.100.1\TEMPS\022011 для дальшейшей архивации. Цитата:
а. Неполучается спрятать любыми ключами консольный режим архивации-тоесть сделать её тихой. б. В справке по 7-Zip невтречал ключи которые позволяют ходить по расшаренным ресурсам по UMC именам типа \\machinename\foldername при использовании учётной записи и пароля. 2. После того как будет скопирована папка \\192.168.100.1\TEMPS\022011 на мой ком, нужно ещё и в arhives.ini записать значение. Цитата:
P.S. Проще говоря, с помощью AutoIt я смогу авторизироваться на сетевом ресурсе и потом работать с ним? Если да, подскажите хотябы команду или функцию. |
TERMINAL, мда... читать по всей видимости нет никакого желания. значит остается ждать, пока кто-нибудь сделает это за тебя.
|
kaster, да и так уже разжевал как только мог, а с вашей стороны только наезды читаю и не одной толковой команды-просьба больше тут не отписываться (всеровно говорим на разных языках и не о чём)...
|
Что-то типа такого получилось, маэстро, подправьте, если что не так :)
Код:
Local $sUserName = "Username" |
centaurvv, Спс конечно большое что откликнулся... С командой RunAsWait() я то уже разобрался и если действие выполняется по сети то тогда правильнее будет :
Local $pid = RunAsWait($sUserName, $sDomain, $sPassword, 2, $sProgram, $sPath, @SW_HIDE) Но а как потом сделать, к примеру, IniWrite ( "\\192.168.100.1\TEMPS\arch.ini", "section1", "key1", "выполнено" ) ? Ведь после выполнения RunAsWait() авторизация пользователя пропадает !? |
TERMINAL, ты напрасно обижаешься. я не ставил себе это целью. но тебе 3 человека включая меня подсказали нужную команду
Код:
RunAsWait ну а по поводу второй части твоей просьбы, ты, заметь, ни разу не упомянул, что ini-файл находится на шаре. то есть твоя задача меняется на лету, что не очень хорошо. на вскидку, могу предложить копировать файл через xcopy. делать изменения, а потом обратно на шару. xcopy - входит в WindowsXP и выше и умеет ходить по UNC-путям. нужные ключи погугли. для скрытия окна консоли (если я правильно понял смысл выражения тихое архивирование, и вообще все "тихое") установи флаг show_flag для команд RunAs и RunAsWait в значение @SW_HIDE. |
kaster, centaurvv, Всем спасибо, вроде разобрался (а скорее всего догадался), нужно было всего после выполнения RunAsWait(), к примеру, IniWrite ( "\\192.168.100.1\TEMPS\arch.ini", "section1", "key1", "выполнено" ) тоже заключать как Local !:
Local $sUserName = "Username" Local $sDomain = @ComputerName Local $sPassword = "Password" Local $sProgram = '"C:\Program Files\7-Zip\7z.exe" a "c:\Archives\arch.zip" "\\192.168.100.1\TEMPS\022011\"' Local $sPath = "C:\Program Files\7-Zip\" Local $pid = RunAsWait($sUserName, $sDomain, $sPassword, 2, $sProgram, $sPath, @SW_HIDE) ProcessWaitClose($pid) Local $pid2=IniWrite ( "\\192.168.100.1\TEMPS\arch.ini", "section1", "key1", "нужно ещё и в arhives.ini записать какое-то значение" ) |
TERMINAL, твоя интерпретация команд - неверна.
Local - никак не влияет на права доступа. и в данном скрипте наличие этого ключевого слова излишне. если ты смог записать данные, то тут несколько вариантов 1. твоя шара на самом деле доступна для любых юзеров 2. запуск программ с авторизацией имеют память и сохраняют авторизацию до окончания работы скрипта (это требует проверки) и еще, заключай, плз, код в тэги |
kaster, Если я по сети после выполнения
Цитата:
Цитата:
Цитата:
|
TERMINAL, сложно сказать. ты приводишь не те коды которые "срабатывают" или "не срабатывают". приведи полный, или хотя бы работоспособный код с теми вариантами которые работают и которые нет. в любом случае, то что пространство имен не может играть роли - это точно. для справки, iniwrite - всего лишь возвращает 1 в случае успеха, и 0 - неудачи и не важно, в каком scoop'е он находится. локальном или глобальном.
|
kaster, сорри, прошлое сообщение исправил на правильное
|
kaster, Опять в тупик попал... мне нужно, к примеру, получить данные с помощью IniRead по поти административных шар - \\192.168.10.2\D$\test.ini... Как здесь правильно использовать команду RunAsWait ?
|
Время: 23:24. |
Время: 23:24.
© OSzone.net 2001-