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

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

Bruce Wayne 31-03-2014 14:14 2330945

Вместо имени пользователя ставится чей-то SID
 
Добрый день!

Столкнулся с такой проблемой - когда изменяю доступ с помощью утилит 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 2330953

Цитата:

Цитата Bruce Wayne
когда изменяю доступ с помощью утилит Cacls, SubInACL или SetACL »

Покажите Ваш код для «Cacls, SubInACL или SetACL».

Цитата:

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

А на третьем? На четвёртом?

Цитата:

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

Код:

wmic.exe UserAccount where "SID='SID'" get Name,Domain,SID

Bruce Wayne 31-03-2014 15:06 2330964

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 2330996

Цитата:

Цитата Bruce Wayne
Скрипт же выдал следующее: »

Bruce Wayne, Вы вместо выделенного указали потребный SID?

Цитата:

Цитата Bruce Wayne
Нет, на остальных компьютерах всё отрабатывает правильно (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 2331001

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

Код:

No Instance(s) Available.

Iska 31-03-2014 16:39 2331013

Этот пользователь локальный или доменный?

Bruce Wayne 31-03-2014 16:55 2331016

Локальный.

Iska 31-03-2014 17:53 2331041

Так. Совсем перестал понимать.

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

Bruce Wayne 31-03-2014 19:53 2331124

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

Iska 01-04-2014 03:24 2331279

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

Bruce Wayne 01-04-2014 09:03 2331330

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


Время: 22:37.

Время: 22:37.
© OSzone.net 2001-