Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.10 KB | None | 0 0
  1. '==========================================================================
  2. 'ShareSetup.vbs
  3. '==========================================================================
  4. Option Explicit
  5. Const FILE_SHARE = 0
  6. Const MAXIMUM_CONNECTIONS = 25
  7. Dim strComputer
  8. Dim objWMIService
  9. Dim objNewShare
  10.  
  11. strComputer = "."
  12. Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\" & strComputer & "rootcimv2")
  13. Set objNewShare = objWMIService.Get("Win32_Share")
  14.  
  15. Call sharesec ("C:Shared", "Shared", "Work Center Share", "Domain Users")
  16.  
  17.  
  18. Sub sharesec(Fname,shr,info,account) 'Fname = Folder path, shr = Share name, info = Share Description, account = account or group you are assigning share permissions to
  19. Dim FSO
  20. Dim Services
  21. Dim SecDescClass
  22. Dim SecDesc
  23. Dim Trustee
  24. Dim ACE
  25. Dim Share
  26. Dim InParam
  27. Dim Network
  28. Dim FolderName
  29. Dim AdminServer
  30. Dim ShareName
  31.  
  32. FolderName = Fname
  33. AdminServer = "\" & strComputer
  34. ShareName = shr
  35.  
  36. Set Services = GetObject("WINMGMTS:{impersonationLevel=impersonate,(Security)}!" & AdminServer & "ROOTCIMV2")
  37. Set SecDescClass = Services.Get("Win32_SecurityDescriptor")
  38. Set SecDesc = SecDescClass.SpawnInstance_()
  39.  
  40. 'Set Trustee = Services.Get("Win32_Trustee").SpawnInstance_
  41. 'Trustee.Domain = Null
  42. 'Trustee.Name = "EVERYONE"
  43. 'Trustee.Properties_.Item("SID") = Array(1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0)
  44.  
  45. Set Trustee = SetGroupTrustee("LM", account) 'Replace ACME with your domain name.
  46. 'To assign permissions to individual accounts use SetAccountTrustee rather than SetGroupTrustee
  47.  
  48. Set ACE = Services.Get("Win32_Ace").SpawnInstance_
  49. ACE.Properties_.Item("AccessMask") = 2032127
  50. ACE.Properties_.Item("AceFlags") = 3
  51. ACE.Properties_.Item("AceType") = 0
  52. ACE.Properties_.Item("Trustee") = Trustee
  53. SecDesc.Properties_.Item("DACL") = Array(ACE)
  54. Set Share = Services.Get("Win32_Share")
  55. Set InParam = Share.Methods_("Create").InParameters.SpawnInstance_()
  56. InParam.Properties_.Item("Access") = SecDesc
  57. InParam.Properties_.Item("Description") = "Public Share"
  58. InParam.Properties_.Item("Name") = ShareName
  59. InParam.Properties_.Item("Path") = FolderName
  60. InParam.Properties_.Item("Type") = 0
  61. Share.ExecMethod_ "Create", InParam
  62. End Sub
  63.  
  64.  
  65. Function SetAccountTrustee(strDomain, strName)
  66. set objTrustee = getObject("Winmgmts:{impersonationlevel=impersonate}!root/cimv2:Win32_Trustee").Spawninstance_
  67. set account = getObject("Winmgmts:{impersonationlevel=impersonate}!root/cimv2:Win32_Account.Name='" & strName & "',Domain='" & strDomain &"'")
  68. set accountSID = getObject("Winmgmts:{impersonationlevel=impersonate}!root/cimv2:Win32_SID.SID='" & account.SID &"'")
  69. objTrustee.Domain = strDomain
  70. objTrustee.Name = strName
  71. objTrustee.Properties_.item("SID") = accountSID.BinaryRepresentation
  72. set accountSID = nothing
  73. set account = nothing
  74. set SetAccountTrustee = objTrustee
  75. End Function
  76.  
  77. Dim oShell
  78. Set oShell = WScript.CreateObject ("WScript.Shell")
  79. oShell.run "subst z: ""C:Shared"""
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement