我找到了一些关于如何启用文件共享和共享文件夹的vbscript示例,但是他们离开了"公共文件夹共享"关闭,以便您必须登录,而不是仅允许任何具有网络访问权限的人读/写公共文件夹。
对于我的所有谷歌搜索,我似乎无法找到如何自动化最后一块。 Vbscript或任何可以通过命令行运行的东西都是我这样做的首选方法,但我真的愿意听到任何可以自动化的解决方案。
编辑:
如果它是相关的,我应该指出我将在非域计算机上以管理员权限在本地运行。
EDIT2:
我已经尝试过下面列出的解决方案,但是我需要更改的选项会影响连接到计算机以查看共享列表的能力。它并不特定于特定的份额。
答案 0 :(得分: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