PDA

Показать полную графическую версию : У кого есть Виста? Нужна помощь!


Shanks
07-12-2008, 15:29
Интересует набор команд в Висте для cmd, чтобы у юзера заменялась (копировалась) кодовая страница 1251.nls > 1252.nls в папке system32, с помощью команд takeown, icacls и еще наверное каких-то..
XP у меня вообще таких комманд не знает...

Blast
07-12-2008, 15:32
takeown /? TAKEOWN [/S система [/U пользователь [/P [пароль]]]]
/F имя_файла [/A] [/R [/D приглашение]]

Описание.
Эта программа позволяет администратору восстанавливать доступ к файлу
после отказа из-за переназначения владельца файла.

Параметры:
/S <система> Удаленная система, к которой
выполняется подключение.

/U [<домен\>]<пользователь> Контекст пользователя, в котором
команда будет выполняться.

/P [<пароль>] Пароль для указанного
контекста пользователя.
Приглашение, если опущен.

/F <имя_файла> Шаблон для имени файла или каталога.
Допускается подстановочный знак "*"
при указании шаблона. Разрешен формат
общий_ресурс\имя_файла.

/A Делает владельцем группу администраторов
вместо текущего пользователя.

/R рекурсия: программа будет обрабатывать
файлы в указанном каталоге и всех его
подкаталогах.

/D <ответ> Ответ по умолчанию, когда текущий пользователь
не имеет разрешения "Содержимое папки"
на каталог. Это случается при работе
с подкаталогами в рекурсивном режиме (/R).
Ответы: "Y" (владение) или "N" (пропустить).

/? Вывод справки по использованию.

Примечания. 1) Если не указан параметр /A, владельцем файла становится
текущий вошедший пользователь.

2) Смешанные шаблоны с использованием "?" и "*" не
поддерживаются.

3) Параметр /D подавляет вывод приглашений на подтверждение.

Примеры:
TAKEOWN /?
TAKEOWN /F файл
TAKEOWN /F \\система\общий_ресурс\файл /A
TAKEOWN /F каталог /R /D N
TAKEOWN /F каталог /R /A
TAKEOWN /F *
TAKEOWN /F C:\Windows\System32\acme.exe
TAKEOWN /F %windir%\*.txt
TAKEOWN /S система /F MyShare\Acme*.doc
TAKEOWN /S система /U пользователь /F MyShare\foo.dll
TAKEOWN /S система /U домен\пользователь /P пароль /F ресурс\имя_файла
TAKEOWN /S система /U пользователь /P пароль /F Doc\Report.doc /A
TAKEOWN /S система /U пользователь /P пароль /F Myshare\*
TAKEOWN /S система /U пользователь /P пароль /F Home\Logon /R
TAKEOWN /S система /U пользователь /P пароль /F Myshare\directory /R /A
icacls /? ICACLS name /save ACL-файл [/T] [/C] [/L] [/Q]
сохранить ACL для всех соответствующих имен в ACL-файле для
последующего использования с командой /restore.

ICACLS directory [/substitute SidOld SidNew [...]] /restore ACL-файл
[/C] [/L] [/Q]
применяет сохраненные ACL к файлам в папке.

ICACLS name /setowner пользователь [/T] [/C] [/L] [/Q]
изменяет владельца всех соответствующих имен.

ICACLS name /findsid Sid [/T] [/C] [/L] [/Q]
находит все соответствующие имена, которые включают в себя ACL,
явно содержащие данный Sid.

ICACLS name /verify [/T] [/C] [/L] [/Q]
находит все файлы, чьи ACL не являются каноническими или длина которых
не соответствует количеству ACE.

ICACLS name /reset [/T] [/C] [/L] [/Q]
заменяет ACL унаследованными по умолчанию ACL для всех соответствующих файл
в

ICACLS name [/grant[:r] Sid:perm[...]]
[/deny Sid:perm [...]]
[/remove[:g|:d]] Sid[...]] [/T] [/C] [/L] [/Q]
[/setintegritylevel Level:policy[...]]

/grant[:r] Sid:perm предоставляет указанному пользователю права доступа. Пр
использовании :r
эти права заменяют любые ранее предоставленные явные разрешения.
Если :r не используется, разрешения добавляются
к любым ранее предоставленным явным разрешениям.

/deny Sid:perm явно отклоняет права доступа для указанного пользователя.
ACE явного отклонения добавляется для заявленных разрешений, и любое
явное предоставление этих же разрешений удаляется.

/remove[:[g|d]] Sid удаляет все вхождения Sid в ACL. C
:g, удаляет все вхождения предоставленных прав в этом Sid. C
:d удаляет все вхождения отклоненных прав в этом Sid.

/setintegritylevel [(CI)(OI)]Level явно добавляет ACE уровня целостности
ко всем соответствующим файлам. Уровень может принимать одно из следую
их
значений:
L[ow] - низкий
M[edium] - средний
H[igh] - высокий
Параметры наследования для ACE целостности могут предшествовать
уровню и применяются только к папкам.

/inheritance:e|d|r
e - включение наследования
d - отключение наследования и копирование ACE
r - удаление всех унаследованных ACE


Примечание.
Sid могут быть представлены либо в числовой форме, либо в форме понятного и
ени. Если задана числовая
форма, добавьте * в начало SID.

/T означает, что это действие выполняется над всеми соответствующими
файлами и папками ниже уровня папок, указанных в имени.

/C указывает, что это действие будет продолжено при всех ошибках файла.
Однако сообщения об ошибках будут выводиться на экран.

/L означает, что это действие выполняется над самой символической ссылкой,
а не над ее целью.

/Q означает, что команда ICACLS подавляет сообщения об успешном выполнении.

ICACLS сохраняет канонический порядок записей ACE:
Явные отклонения
Явные предоставления
Унаследованные отклонения
Унаследованные предоставления

perm - это маска разрешений, она может быть указана в одной из двух форм:
последовательность простых прав:
F - полный доступ
M - доступ на изменение
RX - доступ на чтение и выполнение
R - доступ только на чтение
W - доступ только на запись
в скобках список определенных прав, разделенных запятыми:
D - удаление
RC - чтение
WDAC - запись DAC
WO - смена владельца
S - синхронизация
AS - доступ к безопасности системы
MA - максимально возможный
GR - общее чтение
GW - общая запись
GE - общее выполнение
GA - все общие
RD - чтение данных, перечисление содержимого папки
WD - запись данных, создание файлов
AD - добавление данных, создание папок
REA - чтение дополнительных атрибутов
WEA - запись дополнительных атрибутов
X - выполнение файлов и обзор папок
DC - удаление вложенных объектов
RA - чтение атрибутов
WA - запись атрибутов
права наследования могут предшествовать любой форме и применяются
только к папкам:
(OI) - наследуют объекты
(CI) - наследуют контейнеры
(IO) - только наследование
(NP) - не распространять наследование

Примеры:

icacls c:\windows\* /save AclFile /T
- в файле AclFile будут сохранены ACL для всех файлов папки c:\windows
и ее подкаталогов.

icacls c:\windows\ /restore AclFile
- из файла AclFile будут восстановлены Acl для каждого файла,
существующего в папке c:\windows и ее подкаталогах

icacls file /grant Administrator:(D,WDAC)
- пользователю Administrator будут предоставлены разрешения на удаление
и запись DAC для файла

icacls file /grant *S-1-1-0:(D,WDAC)
- пользователю с sid S-1-1-0 будут предоставлены разрешения
на удаление и запись DAC для файла

Shanks
07-12-2008, 16:05
Кажется мне нужна дополнительная помощь, кое-чего не понятно, и не могу обробовать варианты так как не имею Висты.
Вот как я понял. начало bat/cmd файла будет выглядеть так:

takeown /f %windir%\system32\c_1251.nls
takeown /f %windir%\system32\c_1252.nls

дальше я не понял, что за ICACLS, чего он делает, и с какими параметрами писать?
неужели не сущетсвует готового bat для подмены 1251>1252 в Висте, у многих же программ можно встретить глюки с кодировкой... А способ XP, как мне сказали не прокатывает с реестром..
Хотел этот файлик в комплект к игре прикрепить, чтобы юзеры не кричали что у них все крякозябрами! Если кто поможет, буду рад!

Blast
07-12-2008, 16:22
Shanks, а так ли нужно делать это батником?... Возможно пользователю будет проще сделать это через GUI?
Момент второй: помимо того, что вы станете владельцем файла используя takeown вам необходимо еще обладать разрешениями на этот файл, которых у вас нет. Изменение владельца объекта не компенсирует отсутствие разрешений, но уже позволяет их изменять. Поэтому и нужен icacls, который фактически заменяет и даже больше чем просто заменяет действия через интерфейс, необходимые для выставления разрешений на объекты. То есть команда, необходимая вам примерно выглядит так: takeown /f "%windir%\system32\c_1251.nls" && icacls "%windir%\system32\c_1251.nls" /grant имя_пользователя_или_группы:f

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

в вашем случае наверняа пользователи находятся в группе Администраторы, поэтому там так и можно написать - администраторы:f и тогда можно делать так: takeown /f "%windir%\system32\c_1251.nls" /a && icacls "%windir%\system32\c_1251.nls" /grant администраторы:f

И так, для пользы дела, почитайте: Как получить доступ к файлам, папкам, разделам реестра в Windows Vista (http://www.oszone.net/7836/)

Shanks
07-12-2008, 16:42
Ок, спасибо почитаю, мне казалось, пользователю будет проще тыкнуть один раз bat, и перезагрузится, чем лазить по окнам и потом вручную выполнять все действия с заменой/копированием...




© OSzone.net 2001-2012