У кого есть Виста? Нужна помощь!

Ответить
Аватара пользователя
Shanks

У кого есть Виста? Нужна помощь!

Сообщение Shanks »

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

XP у меня вообще таких комманд не знает...
Аватара пользователя
Blast

Re: У кого есть Виста? Нужна помощь!

Сообщение Blast »

takeown /?

PHP код:

Код: Выделить всё

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:WindowsSystem32acme.exe

    TAKEOWN /F %windir%*.txt

    TAKEOWN /S система /F MyShareAcme*.doc

    TAKEOWN /S система /U пользователь /F MySharefoo.dll

    TAKEOWN /S система /U доменпользователь /P пароль /F ресурсимя_файла

    TAKEOWN /S система /U пользователь /P пароль /F DocReport.doc /A

    TAKEOWN /S система /U пользователь /P пароль /F Myshare*

    TAKEOWN /S система /U пользователь /P пароль /F HomeLogon /R

    TAKEOWN /S система /U пользователь /P пароль /F Mysharedirectory /R /A 






icacls /?

PHP код:

Код: Выделить всё

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

Re: У кого есть Виста? Нужна помощь!

Сообщение Shanks »

Кажется мне нужна дополнительная помощь, кое-чего не понятно, и не могу обробовать варианты так как не имею Висты.

Вот как я понял. начало bat/cmd файла будет выглядеть так:



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

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



дальше я не понял, что за ICACLS, чего он делает, и с какими параметрами писать?

неужели не сущетсвует готового bat для подмены 1251>1252 в Висте, у многих же программ можно встретить глюки с кодировкой... А способ XP, как мне сказали не прокатывает с реестром..

Хотел этот файлик в комплект к игре прикрепить, чтобы юзеры не кричали что у них все крякозябрами! Если кто поможет, буду рад!
Аватара пользователя
Blast

Re: У кого есть Виста? Нужна помощь!

Сообщение Blast »

Shanks, а так ли нужно делать это батником?... Возможно пользователю будет проще сделать это через GUI?

Момент второй: помимо того, что вы станете владельцем файла используя takeown вам необходимо еще обладать разрешениями на этот файл, которых у вас нет. Изменение владельца объекта не компенсирует отсутствие разрешений, но уже позволяет их изменять. Поэтому и нужен icacls, который фактически заменяет и даже больше чем просто заменяет действия через интерфейс, необходимые для выставления разрешений на объекты. То есть команда, необходимая вам примерно выглядит так:

Код:

Код: Выделить всё

takeown /f "%windir%\system32\c_1251.nls" && icacls "%windir%\system32\c_1251.nls" /grant имя_пользователя_или_группы:f

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



в вашем случае наверняа пользователи находятся в группе Администраторы, поэтому там так и можно написать - администраторы[/i]:f и тогда можно делать так:

Код:

Код: Выделить всё

takeown /f "%windir%\system32\c_1251.nls" /a && icacls "%windir%\system32\c_1251.nls" /grant администраторы:f

И так, для пользы дела, почитайте:
Как получить доступ к файлам, папкам, разделам реестра в Windows Vista
Аватара пользователя
Shanks

Re: У кого есть Виста? Нужна помощь!

Сообщение Shanks »

Ок, спасибо почитаю, мне казалось, пользователю будет проще тыкнуть один раз bat, и перезагрузится, чем лазить по окнам и потом вручную выполнять все действия с заменой/копированием...
Ответить

Вернуться в «Хочу все знать»