2013-09-18 4 views
0

Я нашел несколько примеров vbscript о том, как включить общий доступ к файлам и обмениваться папками, однако они оставляют «общий доступ к общим папкам» отключенным, поэтому вы должны войти в систему, а не просто разрешать всем, у кого есть доступ к сети для чтения/записи в общедоступные папки.Автоматизация обмена файлами

Для всего моего поискового робота я не могу понять, как автоматизировать эту последнюю часть. Vbscript или что-то, что может быть запущено через командную строку, было бы моим предпочтительным способом сделать это, но на самом деле я открыт для слушания о любом решении, которое автоматизировало бы это.

EDIT:

В случае, если это уместно, я должен отметить, что я буду работать в этом локально с правами администратора на недоменных компьютерах.

EDIT2:

Я попытался решения перечисленных ниже, однако вариант мне нужно изменить влияет на возможность подключения к компьютеру, чтобы увидеть список акций; это не касается конкретной доли.

ответ

0

Самый простой способ будет выкладывая:

Set sh = CreateObject("WScript.Shell") 
sh.Run "net share sharename=C:\some\folder /grant:Everyone,FULL", 0, True 

Делать это полностью в VBScript возможно, но требует значительно больше кода. В примере сценария это было опубликовано here, которые можно было бы упростить для ваших конкретных требований, как это:

path  = "C:\some\folder" 
sharename = "name" 
comment = "foo" 

Set wmi = GetObject("winmgmts://./root/cimv2") 

Set trustee = wmi.Get("Win32_Trustee").SpawnInstance_() 
trustee.Domain = Null 
trustee.Name = "Everyone" 
trustee.SID = Array(1,1,0,0,0,0,0,1,0,0,0,0) 'SID S-1-1-0 (binary) 

Set ace = wmi.Get("Win32_Ace").SpawnInstance_() 
ace.AccessMask = 2032127 'full access 
ace.AceFlags = 3  'object inheritance + container inheritance 
ace.AceType = 0  'allow access 
ace.Trustee = trustee 

Set sd = wmi.Get("Win32_SecurityDescriptor").SpawnInstance_() 
sd.DACL = Array(ace) 

Set share = wmi.Get("Win32_Share") 
rc = share.Create(path, sharename, 0, 10, comment, "", sd) 

If rc = 0 Then 
    WScript.Echo "Folder " & path & " has been shared as " & sharename & "." 
Else 
    WScript.Echo "Error sharing folder " & path & ": " & rc 
End If 
+0

Он не должен быть VBScript, и я, вероятно, следовало бы отметить, что я попробовал первый вариант вы предложили в простой пакетный файл. Проблема в том, что когда я открываю общий доступ с другого компьютера в рабочей группе, мне все равно предлагается ввести имя пользователя и пароль. Я знаю, как это исправить, перейдя на расширенные параметры совместного доступа и изменив параметр «Общий доступ к общим папкам», но я не знаю, как изменить этот параметр в командной строке или скрипте. – BVernon

+0

Я пробовал ваш vbscript, но, как я подозревал, это то же самое, что и использование команды net share. Опция, которую мне нужно изменить, не специфична для определенного ресурса, поэтому я не думаю, что что-то, что фактически создает эту часть, - это то, что мне нужно. – BVernon

+0

Помогает ли [этот ответ] (http://stackoverflow.com/a/10244495/1630171)? –

Смежные вопросы