Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Как получить права на папку\файл в Windows Seven через батник? (http://forum.oszone.net/showthread.php?t=159363)

Pozia 06-12-2009 19:23 1288018

Как получить права на папку\файл в Windows Seven через батник?
 
Есть такой вот твик:

Код:

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\runas]
@="Стать владельцем и задать полный доступ к объекту"
"Extended"=""
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\*\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"

[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="Стать владельцем и задать полный доступ к объекту"
"Extended"=""
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"

Он дает права на выбранную папку или файл в Seven. Может можно как то автоматизировать этот процесс через батник для заранее заданной папки или файла? Помогите кто знает пожалуйста.

Ingolder 06-12-2009 21:05 1288078

А чего тут непонятного, команду то вы сами написали. Можно сделать такой же бантик, будет делать то же самое для директории, в которой он лежит (и всех поддиректорий):
Код:

cd %~dp0
cmd.exe /c takeown /f "%CD%" /r /d y && icacls "%CD%" /grant Administrators:F /t

или если хотите в ручную просто напишите в команднойстроке или в бантике одну строчку:
Код:

cmd.exe /c takeown /f "ваша директория" /r /d y && icacls "ваша директория" /grant Administrators:F /t
вот и всё

Pozia 06-12-2009 23:05 1288154

Цитата:

Цитата Ingolder
А чего тут непонятного »

ну знаете... ))) я в командной строке только азы знаю )
То что вы предложили ща попробую

Pozia 08-12-2009 00:08 1289124

Ingolder, первый код работает а второй нет. Делал так:

Код:

cmd.exe /c takeown /f "d:\WindowsSeven\00_SevenWork\Mount\Windows\notepad.exe" /r /d y && icacls "d:\WindowsSeven\00_SevenWork\Mount\Windows\notepad.exe" /grant Administrators:F /t
а мне нужен именно второй код

Ingolder 08-12-2009 09:44 1289278

собственно, я тоже ещё ламер :)

по всей видимости, ему не нравиться то, что вы ему суёте файл, а в команде takeown параметры /r и /d предназначены для папок (рекурсивное выполнение команды по подпапкам и ответ по умолчанию). поэтому надо писать без них.

собственно если вы пишете батник то cmd.exe /c можно не писать. Параметр /c закрывает окно после выполнения команд, а батник и так закрывается сам.
итого:


Код:

takeown /f "d:\WindowsSeven\00_SevenWork\Mount\Windows\notepad.exe" && icacls "d:\WindowsSeven\00_SevenWork\Mount\Windows\notepad.exe" /grant Administrators:F /t

Pozia 08-12-2009 11:56 1289380

теперь заработало. только написало что параметр /ta не нужен. Но этой командой как выяснилось я только становлюсь владельцем файла, а как открыть полный доступ для меня на файл?

Ingolder 08-12-2009 18:50 1289782

ошибся, простите, ошибку исправил. изначально там был параметр /t, просто опечатался.
он тоже в вашем случае собственно не нужен - он показывает подтверждение выполнения операции во всех вложенных папках.

Pozia 08-12-2009 21:47 1289955

Ingolder, спасибо за помощь. я проблему решил для себя с помощью этой темы


Время: 03:57.

Время: 03:57.
© OSzone.net 2001-