Войти

Показать полную графическую версию : [решено] Вместо имени пользователя ставится чей-то SID


Bruce Wayne
31-03-2014, 14:14
Добрый день!

Столкнулся с такой проблемой - когда изменяю доступ с помощью утилит Cacls, SubInACL или SetACL, вместо имени пользователя из переменной %username% права меняются для имени в виде SID'a неизвестной мне группы. В итоге, если права заменяются, к файлу (или к ветке реестра) доступ пропадает совсем. Например, доступ меняется для пользователя с именем S-1-5-21-788404825-3457017583-21330542 вместо того, чтобы меняться у пользователя с именем Alex. Подскажите, пожалуйста, чем это может быть вызвано? Такое наблюдается только на одном компьютере с Windows 7 Ultimate x32 (единственная учётная запись с правами администратора), хотя на другом ПК с той же самой системой подобное не происходит...

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

P. S. С помощью скрипта GetUserBySID выяснил, что этот SID относится к пользователю-администратору Alex, но там определился только домен (ALEX), имя же пользователя скрипт не высветил.

Iska
31-03-2014, 14:37
когда изменяю доступ с помощью утилит Cacls, SubInACL или SetACL »
Покажите Ваш код для «Cacls, SubInACL или SetACL».

Такое наблюдается только на одном компьютере с Windows 7 Ultimate x32 (единственная учётная запись с правами администратора), хотя на другом ПК с той же самой системой подобное не происходит... »
А на третьем? На четвёртом?

С помощью скрипта GetUserBySID выяснил, что этот SID относится к пользователю-администратору Alex, но там определился только домен (ALEX), имя же пользователя скрипт не высветил. »
wmic.exe UserAccount where "SID='SID'" get Name,Domain,SID

Bruce Wayne
31-03-2014, 15:06
Iska, вот код для Cacls:

echo y| cacls "%~1" /g "%username%":f

Для SubInACL:

subinacl /file "%~1" /grant="%username%"=f

Для SetACL:

setacl -on "%~1" -ot file -actn ace -ace "n:%username%;m:set;p:full;i:np"

Нет, на остальных компьютерах всё отрабатывает правильно (Vista x64, XP Professional x32, Seven Ultimate x32, Seven Ultimate x64, Windows 8 x64, Windows 8.1 x64). Скрипт же выдал следующее:

Node - ALEX
ERROR:
Description = Invalid query

Iska
31-03-2014, 15:58
Скрипт же выдал следующее: »
Bruce Wayne, Вы вместо выделенного указали потребный SID?

Нет, на остальных компьютерах всё отрабатывает правильно (Vista x64, XP Professional x32, Seven Ultimate x32, Seven Ultimate x64, Windows 8 x64, Windows 8.1 x64). »
Боюсь, дело не в скриптах, а именно в машине.

Bruce Wayne
31-03-2014, 16:09
Iska, упс, по привычке заменил не то (просто на рабочем компьютере нет Интернета, вот и бегаю к нему с флешкой каждый раз). В случае с правильной заменой выдаёт следующее:

No Instance(s) Available.

Iska
31-03-2014, 16:39
Этот пользователь локальный или доменный?

Bruce Wayne
31-03-2014, 16:55
Локальный.

Iska
31-03-2014, 17:53
Так. Совсем перестал понимать.

У Вас имя машины не совпадает ли с именем текущего пользователя?

Bruce Wayne
31-03-2014, 19:53
Выходит, что совпадает: имя компьютера - ALEX, имя пользователя - Alex. Думаете, в этом и есть вся проблема?

Iska
01-04-2014, 03:24
Bruce Wayne, попробуйте использовать в полном виде: «"%UserDomain%\%UserName%"».

Bruce Wayne
01-04-2014, 09:03
Iska, спасибо Вам огромное, всё заработало!) Вот уж никогда бы не подумал, что совпадение этих имён может вызвать такие глобальные проблемы :D Действительно, "век живи - век учись")




© OSzone.net 2001-2012