none
добавить NTFS права на shared folder'е на Remote server'е RRS feed

  • Вопрос

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

     

    имеется \\server\folder

    надо добавить в NTFS права пользователю

     

    У меня даже enum прав не работает

     

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")

    Set colItems = objWMIService.ExecQuery( _
        "SELECT * FROM Win32_LogicalFileSecuritySetting WHERE Path=""file:////server//foler""",,48)
    For Each objItem in colItems 
        Wscript.Echo "ControlFlags: " & objItem.ControlFlags
    Next

     

     

    если поменять strComputer="server", тогда вываливается ошибка Permission Denied в GetObject. При этом из GUI права назначаются без проблем.

    4 сентября 2008 г. 7:35

Ответы

Все ответы

  • Скорее всего без административных прав у вас не получится управлять настройками на удаленном компьютере.

     

    4 сентября 2008 г. 9:47
    Модератор
  • т.е. получается в vbs такой возможности нету, может в powershell есть?

    Ведь я же могу при этом поменять права через Explorer вызвав диалог Properties>Security

     

    4 сентября 2008 г. 12:21
  • а как на счёт SetAcl.exe?

    http://www.helge.mynetcologne.de/setacl/

     

     

    • Помечено в качестве ответа Pavel Dzemyantsau 25 сентября 2009 г. 17:19
    4 сентября 2008 г. 13:15
  •  

    при использовании внешних утилит возникают проблемы с обработкой ошибок.

    надо вызывать утилиту, забирайть лог в файл, парсить этот лог...

     

    по возможности очень хочется этого избежать.

    может есть тотже setacl.exe в варианте com объекта, который можно было бы вызвать чере createobject?

    4 сентября 2008 г. 17:36
  • в PowerShell для данной операции нужно как-то заиспользовать SeSecurityPrivilege, но я так и не нашёл, как именно это реализовать. Проинсталлировал PSCX, включил данную привилегию, но не прокатило. Тут дело в чём, что при изменении прав на удалённой машине из GUI вместе с вызовом нужных API подключаются необходимые привилегии. В скриптах же это нужно делать вручную. Вопрос только - как? Пока не знаю, поэтому предложил другое решение. Можно ещё через PsExec запускать скрипт удалённо (будь то VBS, PoSh, icacls, etc), но придётся отдельно решать обработку ошибок.

    4 сентября 2008 г. 17:45
  •  

    удаленный запуск не подходит, у запускающего нет прав совсем на удаленном сервере.

    пошел от безысходности смотреть предложенный SetAcl.exe, там заявлена возможность менять права на шареных папках.

    И тут такая удача, оказывается в последней версии setacl доступен как com объект, т.е. можно будет заиспользовать CreateObject.

     

    буду пробовать.

    5 сентября 2008 г. 9:15
  •  PaulD123123 написано:

    у запускающего нет прав совсем на удаленном сервере.

     

    Ну что вы кругами ходите? Если нет прав, то локальный ли запуск, удаленный ли - какая разница?! - все равно работать не будет! Сначала надо дать права

    8 сентября 2008 г. 9:23
    Модератор
  • Илья, от вас негатив исходит.
    Тема хоть и бородатая, последний пост я только сейчас увидел.

    Задача решилась с помощью setacl com объекта. Для изменения прав на папке, пользователю необходимо иметь права на этой папке(как описано выше, они есть), и совсем не важно админ или не админ этот пользователь на самом удалённом сервере.


    25 сентября 2009 г. 17:23
  • Если вас устроит вариант на PowerShell, то на эту тему есть несколько отличных постов (и даже готовые скрипты) у Vadims Podans. Вот последний.
    MCP | scriptoholic | PowerShell | SCCM 2007 | SMS 2003
    28 сентября 2009 г. 11:52