1

Тема: VBS: подключение сетевого диска

Добрый вечер. Имеем локальный комп с windows7, в рабочей группе еще находяться несколько ПК с Windows7 и XP. Имена пользователей и пароли на удаленных ПК известны. Имеем скрипт:

Dim WshNetwork 
Set WshNetwork = WScript.CreateObject("WScript.Network") 
Set oDrives = WshNetwork.EnumNetworkDrives
For Each Drive In oDrives
    On Error Resume Next
    WSHNetwork.RemoveNetworkDrive Drive, TRUE, TRUE
next
WshNetwork.MapNetworkDrive "z:", "\\192.168.42.10\d$", , "sergey", "12345"

В случае когда на удаленной машине также стоит windows7 скрипт работает нормально и подключает диск. А если на ПК windows XP - выдает ошибку http://upload.akusherstvo.ru/thumbs/903912.png. Подскажите, что я делаю не так? Настройки безопасности на всех ПК установлены по умолчанию - после установки windows, кроме добавления ПК в рабочую группу и присвоения ему статического ip, никакие изменения не вносились. Заранее спасибо.

2

Re: VBS: подключение сетевого диска

godvin
А 10 строка с Remove или с Map?

P.S. Используйте вместо скриншотов копипаст.

3 (изменено: godvin, 2015-12-18 09:17:51)

Re: VBS: подключение сетевого диска

Flasher
10-я строчка

WshNetwork.MapNetworkDrive "z:", "\\192.168.42.10\d$", , "sergey", "12345"

4 (изменено: Flasher, 2015-12-28 09:43:55)

Re: VBS: подключение сетевого диска

godvin
Права админские? Так ещё можно попробовать:

With CreateObject("WScript.Shell")
  .Run "rundll32.exe shell32.dll, SHHelpShortcuts_RunDLL Disconnect",, True
  .Run "cmd /c net use z: \\192.168.42.10\d$ ПАРОЛЬ /user:sergey &&net use /persistent:yes", 0
End With

Либо одной строкой:

CreateObject("WScript.Shell").Run "cmd /c net use  /Delete|net use z: \\192.168.42.10\d$ ПАРОЛЬ /user:sergey &&net use /persistent:yes", 0

5

Re: VBS: подключение сетевого диска

godvin пишет:

Подскажите, что я делаю не так?

Тут все - "не так".
1. Кто же предоставляет пользователю админскую шару (d$)?
2. После отработки скрипта, на ПК пользователя останутся админские логин и пароль. (Я так понимаю, sergey/12345 - это админ?)
3. О какой такой "удаленной машине" речь? Скрипт выполняется локально от имени пользователя запустившего скрипт и ни к каким удаленным машинам не подключается!
4. "Имена пользователей и пароли на удаленных ПК известны". Ну это вообще - жесть...

Если стоит задача подключения всем пользователям определенной шары, то это делается так:
1. Создается нормальная (не админская) шара. Советую сразу отрубить кеширование.
2. Даются права (и NTFS и сетевые) всем пользователям на эту шару. Советую всем дать полные сетевые права, а с помошью NTFS прав регулировать доступ к каталогам.
3. На компах, от имени пользователя, запускается скрипт подключения. Если все сделано правильно, то указывать логин/пароль пользователя нет необходимости. Чтобы не заставлять пользователя вручную выполнять скрипт достаточно впихнуть его в автозагрузку.

Вообще тема то - не скриптовая, а элементарных админских знаний.

6

Re: VBS: подключение сетевого диска

mozers
Там рабочая группа (например, свои домашние компы), не домен. Админской шары быть не может. Все равны.
Удалённая машина - любая из группы, где локально запускается скрипт. Всё тут ясно как день.
В автозагрузку пихать одноразовую задачу - не дело.

7

Re: VBS: подключение сетевого диска

2Flasher
Админские шары имеются на NT системах независимо от того входит машина в домен или нет. (Кстати, если взглянуть на скрипт, то увидим что godvin и пытается подключить ее с компа пользователя используя админский логин/пароль).
Просто пипец какой то, а не идея.
Насчет автозагрузки - личное дело каждого. Я бы включил, чтобы не обегать 200 машин и просить каждого пользователя запустить мой скрипт.

8

Re: VBS: подключение сетевого диска

Flasher
http://forum.script-coding.com/viewtopi … 739#p99739 выполняется без ошибок, но в перечне дисков Моего компьютера, сетевой диск не отображается.

9

Re: VBS: подключение сетевого диска

mozers
В рабочей группе все ПК равноправны. На моем ПК установлена Windows 7, создана шара с общедоступными документами. Но иногда возникает необходимость получить доступ к своим личным данным с чужого ПК - для этого в моей расшаренной папке лежит VBS скрипт, в который я вписываю свой пароль и запустив на чужой машине получаю доступ к диску Д:. Все было отлично, но теперь появилась необходимость проделать тоже самое но с ПК на котором установлена Windows XP. Вот здесь и возникла проблема. Заморачиватся с программами удаленного доступа посчитал нецелесообразным.

10

Re: VBS: подключение сетевого диска

2godvin
192.168.42.10 - твой комп.
d$ - "шара с общедоступными документами" на этом компе.
Ты, на том ПК (где стоит ХР) хочешь эту шару подключить как диск Z:
Я правильно понял?
Тогда забываем про скрипт, идем на ПК (где стоит ХР) и делаем Пуск - Выполнить и пишем там "\\192.168.42.10\d$" (без кавычек) - Enter. Открылось окно проводника с твоим каталогом ? Если - нет, то тебе никакой супер-пупер скрипт не поможет.

Я одного не понимаю. Как ты на ПК (где стоит ХР) открываешь скрипт, который, по твоим же словам, лежит у тебя в этом же расшаренном каталоге к которому ты не можешь получить доступ.

11 (изменено: godvin, 2015-12-18 20:30:29)

Re: VBS: подключение сетевого диска

mozers
192.168.42.10 - мой комп
$d - не общедоступная, личные документы, к которым иногда нужно получить доступ с другого ПК
Да, поняли правильно. Когда на моем компе стояла семерка я легко к ней подключался, теперь стоит ХР и возникли проблемы.
Пуск - Выполнить и пишем там "\\192.168.42.10\d$ к результату не приводит и при семерке не помогал, а скрипт справлялся.
Скрипт (без указаного пароля) лежит в общедоступной расшареной папке "Сетевая" - физическое расположение - "С:\Работа\1\Сетевая"

12

Re: VBS: подключение сетевого диска

godvin пишет:

пишем там "\\192.168.42.10\d$ к результату не приводит и при семерке не помогал, а скрипт справлялся

Полный бред. Не думаю что есть смысл продолжать.

13 (изменено: godvin, 2015-12-18 22:40:29)

Re: VBS: подключение сетевого диска

mozers
Полный бред пытаться войти на удаленный комп без логина с паролем.

14 (изменено: madjahed, 2015-12-19 18:22:13)

Re: VBS: подключение сетевого диска

mozers
Согдасен с godvin - vbs скрипт на виндовс 7 действительно подключает сетевой диск если указан логин и пароль админа за другим пк, при этом команда в пуск-выполнить \\ай.пи\d$ не давала результата.
На ХР к сожалению нету возможности проверить

15

Re: VBS: подключение сетевого диска

2godvin
Повторяю: Любой скрипт лишь использует возможности операционной системы. И если подключение не работает, то поиск решения надо начинать с операционки, с классического подключения по net use или через проводник, а не со скрипта. Поддержка ламеров утверждающих обратное, лишь усугубляет заблуждения.
Да, и если я не написал о логине, то это не значит что он не потребуется.
Поскольку тема совершенно не относится к скриптам написал тебе в личку. Если готов распрощаться с иллюзиями - отвечай там.

16

Re: VBS: подключение сетевого диска

mozers пишет:

Админские шары имеются на NT системах независимо от того входит машина в домен или нет.

Ну, да. Я вообще о сервере думал, а не админах.

mozers пишет:

Насчет автозагрузки - личное дело каждого. Я бы включил, чтобы не обегать 200 машин и просить каждого пользователя запустить мой скрипт.

200? Скорее там даже 10 нет. И автозагрузка в каком виде? Если говорить
про планировщик с однократным заданием, то ещё можно согласиться, а так нет.

mozers пишет:

пытается подключить ее с компа пользователя используя админский логин/пароль

Согласен, что телега не ахти, но для ламеров и обфускация сойдёт.

mozers пишет:

с классического подключения по net use или через проводник, а не со скрипта.

Каждый сам решает, как ему удобней. Я привёл скрипты в комбинации с net use. Ничего в этом криминального не вижу.


godvin пишет:

выполняется без ошибок, но в перечне дисков Моего компьютера, сетевой диск не отображается.

Я там со спеху двоеточия после user забыл поставить. Исправил.

17

Re: VBS: подключение сетевого диска

Flasher
Спасибо.
net use, по крайней мере для одного пк на windows xp выполнился, а для второго никак - возвращает отказ в доступе, хотя имя и пароль пользователя мне известны.

18

Re: VBS: подключение сетевого диска

godvin
Так диск z: свой. Зачем знать пароль др. пользователя?

19

Re: VBS: подключение сетевого диска

Flasher
диск z: я монтирую на другой машине, а он уже ссылается на мой комп диск d:

20

Re: VBS: подключение сетевого диска

godvin
Пусть будет d:, вопрос прежний.

21

Re: VBS: подключение сетевого диска

Flasher
я его монтирую по сети с другого пк, по этому и требуется предоставить логин и пароль админа той машины к которой подключаюсь.

22

Re: VBS: подключение сетевого диска

godvin
Верно, то бишь к своей машине, а не текущего пользователя.

23 (изменено: godvin, 2015-12-27 21:46:30)

Re: VBS: подключение сетевого диска

Flasher
Да, верно. Уж свой пароль то я знаю - а мне в ответ ошибка доступа.

24

Re: VBS: подключение сетевого диска

godvin
А. Не туда прописал. См. сейчас.

25 (изменено: BeS Yara, 2016-01-11 17:53:58)

Re: VBS: подключение сетевого диска

godvin, может быть уже поздно, но мне кажется ситуацию стоит прояснить.

1. Как уже упоминал mozers, имя_диска$ - стандартная NT-вая шара. Во-первых, она есть вне зависимости от доменности, кроме случаев когда данные шары(а кроме дисков есть и ADMIN$, IPC$) были специально отключены администратором. Во-вторых, для доступа к данным ресурсам требуются права локального администратора(администратор тоже существует даже при отсутствии домена, и даже на домашних версиях).
2. Если пользователь, под которым запускается скрипт, присутствует на удалённом компьютере, и пароль на удалённом ПК совпадает с локальным - этих данных достаточно для авторизации при доступе к шаре(сталкивался с некоторыми нюансами авторизации между разнесёнными доменами на 2012 R2 <--> 2012 R2, но явно не ваш случай). Если пароли не совпадают - будет ошибка авторизации(может звучать и как отсутствие доступа, точнее нужно смотреть логи безопасности "сервера"). Если такой пользователь на удалённом ПК отсутстсует - тогда запрашивается логин/пароль(если заходить эксплорером, например), но есть нюанс(см. п.3).
3. В локальных политиках Windows имеется политика переключающая режим сетевой авторизации,  как авторизовывать сетевых пользователей - как гостей, или давать им "представиться"? Если в политиках стоит гостевой доступ, то хоть обвводитесь логин/паролями - вы гость. А гость не может иметь доступ к административным ресурсам(Access denied!). Честно говоря, не уловил закономерность - на недоменном компе сталкивался и с нормальной авторизацией, и с включённым гостевым доступом(речь про нетюненные свеже установленные с оригинальных образов, и обновлённые версии).
4. Сообщение об ошибке вполне конкретное. В локальных политиках "сервера"  включаете аудит безопасности(я всегда включаю и успех и отказ - но не забудьте указать размер журнала побольше стандартного и разрешить перезапись старых событий при достижении максимума), повторяете ошибку, идёте в лог безопасности "сервера" и смотрите подробное описание ошибки(хост, юзернейм, описание) - 99% что увидите там попытку зайти гостём .

Примечание: "сервер" - компьютер к которому выполняется подключение, даже если это не Windows Server.

Другими словами, как уже упоминал mozers, это не вопрос скрипта, это вопрос системного администрирования.

P.S.

godvin пишет:

Flasher
http://forum.script-coding.com/viewtopi … 739#p99739 выполняется без ошибок, но в перечне дисков Моего компьютера, сетевой диск не отображается.

Эта строка и не должна вам выдавать ошибку при отсутствии прав доступа. В этой строке вы вызываете запуск CMD.EXE, в сессии которого осуществляется запуск NET.EXE. Даже если NET.EXE вернёт в консоль Access Denied, вы об этом не узнаете(разве что косвенно - по тому, что шара в результате так и не подключилась). Поэтому нужно проверять как эта команда отрабтывает напрямую, в консоли.