Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] копирование файлов, папки (http://forum.oszone.net/showthread.php?t=327577)

lox-ness 13-06-2017 23:12 2744335

копирование файлов, папки
 
Добрый День!
Необходимо с сетевого ресурса скопировать папку на ПК пользователя. от имени другого доменного пользователя
в скрипте ошибка. где-то пароль не проходит. Подскажите где ошибка.
Код:

set WshShell = WScript.CreateObject("WScript.Shell")
strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set objShare = objWMIService.Get("Win32_Service.Name='linemon'")
Set objShare = objWMIService.Get("Win32_Service.Name='avp'")
Set objOutParams = objWMIService.ExecMethod("Win32_Service.Name='Linemon'", "StopService")
Set objOutParams = objWMIService.ExecMethod("Win32_Service.Name='avp'", "StopService")

Const OverWriteFiles = True

sFolder = "\\192.168.1.1\klshare\stat"
dFolder = "C:\Documents and Settings\All Users\Application Data\Kaspersky Lab\AVP60MP4\Bases\stat"

Set objFSO = CreateObject ("scripting.fileSystemObject")

WshShell.run "runas /user:domen\user ""objFSO.CopyFolder sFolder, dFolder , OverWriteFiles"""
WScript.Sleep 1000
WshShell.SendKeys "pass" 'send password 
WshShell.SendKeys "{ENTER}"   

WScript.Sleep 60000*0.1

WshShell.SendKeys "exit"  'Close command prompt
WshShell.SendKeys "{ENTER}"

Set objOutParams = objWMIService.ExecMethod("Win32_Service.Name='avp'", "StartService")
WScript.Sleep 60000*0.1
Set objOutParams = objWMIService.ExecMethod("Win32_Service.Name='Linemon'", "StartService")


Iska 14-06-2017 01:15 2744367

У Вас тут две ошибки — .SendKeys() и пароль в открытом виде. Ни того, ни другого быть не должно. Но это не проблемы скрипта, а общей организации.

Busla 14-06-2017 11:11 2744431

lox-ness, и WshShell.run и runas работают со строками - путями к исполняемым файлам и их аргументам, а вы туда объект пытаетесь передать. Нельзя просто обернуть кусок скрипта в runas или WshShell.run - его надо переформулировать в команды внешней среды.

Бросьте вы этот мертворожденный vbs, пишите на jscript

Iska 14-06-2017 11:31 2744441

Цитата:

Цитата Busla
Бросьте вы этот мертворожденный vbs, пишите на jscript »

Я бы поспорил :).

greg zakharov 14-06-2017 12:29 2744459

Цитата:

Цитата Iska
Я бы поспорил :).

Кто Вам мешает? А если серьезно, то у VBScript перед JScript только одно единственное преимущество - Variant, которое в JScript приходится обыгрывать танцами с бубном, но в том необходимость возникает редко. Крайне редко. Просто несказанно крайне редко. В остальном JScript на порядок (а может и несколько) превосходит VBScript по функциональности, - здесь даже и спорить не нужно.

Iska 14-06-2017 13:13 2744468

Цитата:

Цитата greg zakharov
А если серьезно, то у VBScript перед JScript только одно единственное преимущество - Variant, которое в JScript приходится обыгрывать танцами с бубном, но в том необходимость возникает редко. Крайне редко. »

Сюда включена невозможность передачи аргументов по ссылке в JScript (и соответствующие танцы с бубном)?

Цитата:

Цитата greg zakharov
В остальном JScript на порядок (а может и несколько) превосходит VBScript по функциональности, - здесь даже и спорить не нужно. »

Ну да, ну да. Только вот на Script Center до появления PowerShell скриптов на VBScript было этак на пару порядков больше, нежели на JScript. Оно, в общем-то, и сейчас так. И ентих ваших ентернетах ровно та же тенденция наблюдается. Вот с чего бы это, а?

Busla 14-06-2017 13:41 2744489

Цитата:

Цитата Iska
Только вот на Script Center до появления PowerShell скриптов на VBScript было этак на пару порядков больше, нежели на JScript. Оно, в общем-то, и сейчас так. И ентих ваших ентернетах ровно та же тенденция наблюдается. Вот с чего бы это, а? »


ответ, в общем-то, очевиден: для поддержания реномэ MS демонстрирует в первую очередь свою технологию, а не цельнотянутую со стороны.
В целом javascript более распространён, знать и помнить его синтаксис проще, доступнее и перспективнее, чем зубрить нишевый vbs.

Iska 14-06-2017 13:54 2744501

Цитата:

Цитата Busla
ответ, в общем-то, очевиден: для поддержания реномэ MS демонстрирует в первую очередь свою технологию, а не цельнотянутую со стороны. »

Для меня — тоже очевиден. Но причину я вижу в другом: Скрипач — не нужен™. Большая часть функционала JScript никогда не потребуется для задач администрирования или автоматизации, а часть — только вредит.

Цитата:

Цитата Busla
В целом javascript более распространён »

Вообще-то, JavaScript и JScript — два разных языка.

megaloman 14-06-2017 14:54 2744535

Iska, Busla, Если работать с продуктами MS, то VBS просто удобнее, так как хорошо (не без исключений) совместим с VBA, на котором приходится ваять макросы для офисных продуктов MS. Иметь же в системе из многих компьютеров хаос из инструментов - это головная боль для айтишника. А возможности для автоматизации администрирования у VBS и JS одинаковы. И, кстати, всякие копирования легче, надёжнее и эффективнее по времени выполнения делать на CMD. С PowerShell не сравнивал

greg zakharov 14-06-2017 15:47 2744553

Цитата:

Цитата Iska
Вообще-то, JavaScript и JScript — два разных языка.

Скорее JScript - это всего лишь один из диалектов JavaScript, а не концептуально отличная от последнего технология. В противном случае, если следовать Вашей логике выходит, что и Node не имеет ничего общего с JavaScript. Как бы там ни было все диалекты опираются на ECMAScript.
Цитата:

Цитата Iska
Большая часть функционала JScript никогда не потребуется для задач администрирования или автоматизации, а часть — только вредит.

Какая именно?

Iska 14-06-2017 15:58 2744556

Цитата:

Цитата greg zakharov
Скорее JScript - это всего лишь один из диалектов JavaScript, а не концептуально отличная от последнего технология. »

Соглашусь.

Цитата:

Цитата greg zakharov
Как бы там ни было все диалекты опираются на ECMAScript. »

И с этим — тоже.

Цитата:

Цитата greg zakharov
Какая именно? »

Бо́́льшая ;).

Busla 16-06-2017 11:46 2745117

Цитата:

Цитата megaloman
Если работать с продуктами MS, то VBS просто удобнее, так как хорошо (не без исключений) совместим с VBA, на котором приходится ваять макросы для офисных продуктов MS. Иметь же в системе из многих компьютеров хаос из инструментов - это головная боль для айтишника. »


Почему-то у меня из аналогичных предпосылок получается противоположный вывод.
VBA и VBS - концептуально разные языки: в VBA используется явная типизация, в VBS - неявная. Поэтому совместимость там сомнительная. И задачи решаются разные - как правило копипастить фрагмент из VBS в VBA и наоборот не имеет смысла. Поэтому некоторая схожесть только в минус: пишешь вроде бы такой же код, как вчера, а он не работает.

greg zakharov 16-06-2017 12:27 2745132

Busla, есть такая тотальная проблема человечества, коллективное [бес]сознательное, порабощающее порой даже светлые умы настолько, чтобы те не понимали что поросту зомбированы. Что Вы, как правило, слышите в пользу той или иной технологии: "большое комьюнити", "хорошая документация", "большое количество примеров"? - но разве это говорит о некой безальтернативности? Впрочем, суть даже не в альтернативе как таковой, а в простоте выражения решения поставленной задачи. Синтаксически JScript гибок настолько, что VBScript по сравнению с ним кажется (хотя это действительно так) просто активно прорихиваемой маркетологами технологией. То, что Iska называет излишествами, на поверку - преимущество; отладка VBScript в представлении системного администратора сродни ректальным пыткам паяльной лампой кошмару, в то время как try..catch.. в JScript упростит поиск ошибки; моделирование объектов (упорно именуемых некоторыми классами), возможность реализации функций обратного вызова и т.д., все это не просто свистоперделки, а очень удобные средства к созданию своего собственного набора библиотек. Короче, если спор продолжится, скорее всего он повернет в русло софистики. Так что делайте выводы.


Время: 22:46.

Время: 22:46.
© OSzone.net 2001-