none
Скрипт создания папок по имени пользователя с правами

    Вопрос

  • Здравствуйте помогите доработать скрипт

    Папки создаются и права даются 

    Но хочу чтобы название папки было не по logon name а Display Name

    Заранее всем спасибо!!

    Set objNet = WScript.CreateObject("WScript.Network") 
    Set FSO = CreateObject("scripting.filesystemobject") 

    sUserName = objNet.UserName 
    sDomainName= objNet.UserDomain 

    folderToCheckFor = "\\server1.domain.local\test\" & sUserName 
    If (FSO.FolderExists(folderToCheckFor)) = False Then 
    FSO.CreateFolder(folderToCheckFor) 
    Set WshShell = WScript.CreateObject("WScript.Shell") 
    Call WshShell.Run("CACLS " & folderToCheckFor & " /T /E /C /G " & sDomainName & "\" & sUserName & ":F",2,True) 
    Call WshShell.Run("CACLS " & folderToCheckFor & " /T /E /C /G " & sDomainName & "\Domain Admins:F",2,True) 
    Call WshShell.Run("CACLS " & folderToCheckFor & " /T /E /C /G " & sDomainName & "\GLOBAL_SUPERVISORS:F",2,True) 
    Set WshShell = nothing 
    End If 

    Set FSO = nothing 
    Set objNet = nothing

    4 февраля 2019 г. 12:30

Ответы

  • Set objSysInfo = CreateObject("ADSystemInfo")

    Set objUser = GetObject("LDAP://" & objSysInfo.UserName)

    folderToCheckFor = "\\server1.domain.local\test\" & objUser.displayName



    • Изменено KazunEditor 4 февраля 2019 г. 12:49
    • Предложено в качестве ответа Vector BCOModerator 4 февраля 2019 г. 15:25
    • Помечено в качестве ответа KazunEditor 5 февраля 2019 г. 8:58
    4 февраля 2019 г. 12:48
    Отвечающий
  • наверно потому что дисплейнейм это не совсем самаккаунтнейм, не?

    sUserName = objUser.sAMAccountName

    З.Ы. параметры WshShell.Run не смотрел, бо лениво.
    • Изменено Svolotch 5 февраля 2019 г. 7:30
    • Помечено в качестве ответа KazunEditor 5 февраля 2019 г. 8:58
    5 февраля 2019 г. 7:19

Все ответы

  • Set objSysInfo = CreateObject("ADSystemInfo")

    Set objUser = GetObject("LDAP://" & objSysInfo.UserName)

    folderToCheckFor = "\\server1.domain.local\test\" & objUser.displayName



    • Изменено KazunEditor 4 февраля 2019 г. 12:49
    • Предложено в качестве ответа Vector BCOModerator 4 февраля 2019 г. 15:25
    • Помечено в качестве ответа KazunEditor 5 февраля 2019 г. 8:58
    4 февраля 2019 г. 12:48
    Отвечающий
  • заработало. создал папку так как надо

    но полное право самого пользователя не добавляется можете помочь пожалуйста?

    5 февраля 2019 г. 5:48
  • Экранируйте путь:

    Call WshShell.Run("CACLS " & Chr(34) & folderToCheckFor & Chr(34) & " /T /E /C /G " & sDomainName & "\" & sUserName & ":F",2,True) 
    Call WshShell.Run("CACLS " & Chr(34) & folderToCheckFor & Chr(34) & " /T /E /C /G " & sDomainName & "\Domain Admins:F",2,True) 
    Call WshShell.Run("CACLS " & Chr(34) & folderToCheckFor & Chr(34) &" /T /E /C /G " & sDomainName & "\GLOBAL_SUPERVISORS:F",2,True) 

    5 февраля 2019 г. 6:10
    Отвечающий
  • отредактировал так все таки не добавил право что у меня не так?

    Set objSysInfo =CreateObject("ADSystemInfo")
    Set objNet = WScript.CreateObject("WScript.Network") 
    Set FSO = CreateObject("scripting.filesystemobject")
    Set objUser =GetObject("LDAP://"& objSysInfo.UserName)

    sUserName = objUser.displayName
    sDomainName= objNet.UserDomain

    folderToCheckFor = "\\file-pc\full_share\USERS\" & sUserName 
    If (FSO.FolderExists(folderToCheckFor)) = False Then 
    FSO.CreateFolder(folderToCheckFor) 
    Set WshShell = WScript.CreateObject("WScript.Shell") 
    Call WshShell.Run("CACLS " & Chr(34) & folderToCheckFor & Chr(34) & " /T /E /C /G " & sDomainName & "\" & sUserName & ":F",2,True) 
    Call WshShell.Run("CACLS " & Chr(34) & folderToCheckFor & Chr(34) & " /T /E /C /G " & sDomainName & "\Domain Admins:F",2,True) 
    Call WshShell.Run("CACLS " & Chr(34) & folderToCheckFor & Chr(34) &" /T /E /C /G " & sDomainName & "\GLOBAL_SUPERVISORS:F",2,True) 
    Set WshShell = nothing 
    End If 

    Set FSO = nothing 
    Set objNet = nothing

     
    5 февраля 2019 г. 6:28
  • наверно потому что дисплейнейм это не совсем самаккаунтнейм, не?

    sUserName = objUser.sAMAccountName

    З.Ы. параметры WshShell.Run не смотрел, бо лениво.
    • Изменено Svolotch 5 февраля 2019 г. 7:30
    • Помечено в качестве ответа KazunEditor 5 февраля 2019 г. 8:58
    5 февраля 2019 г. 7:19
  • когда указываешь это 

    sUserName = objUser.sAMAccountName

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

    но когда указываю эту команду

    sUserName = objUser.displayName

    то создает папку с названием пользователя по дисплею но без прав

    5 февраля 2019 г. 7:39
  • да блин дисплейнейм это "иванов иван иванович"

    самаккаунтнейм это "iivavov"

    соответственно когда вы права вешаете на cacls bla~bla~bla mydomain\иванов иван иванович у вас и не вешается ничего.

    заведите 2 переменных ептиль

    sUserName = objUser.displayName

    sSAMName = objUser.sAMAccountName

    затем уже Call WshShell.Run("CACLS " & Chr(34) & folderToCheckFor & Chr(34) & " /T /E /C /G " & sDomainName & "\" & sSAMName & ":F",2,True) 

    З.Ы. вы скриптуете сами не зная как?

    5 февраля 2019 г. 7:45
  • ну и комент про вбс которому сто лет в обед

    юзайте пош :-Р

    5 февраля 2019 г. 7:47
  • Строки нельзя менять:

    sUserName = objNet.UserName 
    sDomainName= objNet.UserDomain

    5 февраля 2019 г. 7:57
    Отвечающий
  • спасибо большое все заработало
    5 февраля 2019 г. 8:30