Как стать автором
Обновить

Комментарии 25

А не проще посмотреть папку «C:\Windows\system32\appmgmt» вручную? и не таскать за собой батник,
и в каких целях вам нужен SID в текстовом файле? тем более что файл получится не отформатирован.
Скажем вы хотите записать какую то информацию в реестр где в пути имеется СИД юзера.
Передача в файл не имеет смысла, просто этим закончили логическую цепочку, но передать сид в переменную и вставить где это необходимо, дело техники. Натыкался что не мне одному надо. Например тут
Ну соответственно вы не знаете на каком компе будет запускаться батник, т.е. на вашей локальной машине это не имеет смысла.
> но передать сид в переменную и вставить где это необходимо
видимо только батником это не обойдется.
Зачем же тогда использовать «батник»+«программа»?
Рациональнее и быстрее будет просто «программа».
Не вижу никакой надобности в таком методе, разве что просто ради интереса потестить батник.
Через батник можно записать информацию в реестр, далее мы передаём сид в переменную в пути реестра и изменяем то что нам нужно. Собственно никакой программы и нет :)
Само собой что можно через батник реестр править,
но строку то достать вам теперь надо из «30.10.2009 22:51 S-1-5-21-4213386043-2108199273-415744165-500», а это в батнике больший геморой чем написать лубую прогу на VS/VB/Qt
Отпечатался :) VS=VC
Но пример выше это же и делает, а как я уже говорил, использовать VB не представлялось возможным :)
Данным способом имя пользователя с SID'ом не удастся сопоставить? (Если нужно не для текущего пользователя.)
В своё время делал VBscript для WiX с этой целью.
Данным способом СИД с юзером вроде бы нельзя сопоставить, но к стати можно подумать в этом направлении
Ну раз уж извращаться, так хоть по-человечески:

for /d %i in (%systemroot%\system32\appmgmt\S-*) do echo %~ni
Хотя, если честно, не вижу смысла узнавать SID системы — он ведь является константой :)
Я чуть выше написал, если вам в реестр надо добавить инфу где по дороге в пути есть СИД то это достаточно простой вариант.
Хорошо бы еще был вариант, когда appmgmt нет. А что там должно быть, кстати?
Вот с 7кой и не работает потому что нету appmgmt, другой вариант это парсить реестр, но тут опять же дело техники)
А у меня есть в семерке. Но читать константу откуда-то — это все равно не круто.
Не вижу помех забить эту константу в батник при записи пути в реестр.
Наверное потому что у меня 64 бита, не смог найти, значит в 32х должно работать. Подскажите, как можно забить эту константу если не читать её откуда то? Я не нашел какой то переменной которая возвращает СИД, в серверных версиях винды где есть Resource Kit Tools это не проблема, но в xp/vista этого нет, я нашел решения только на VB, есть плюсы, но есть и минусы в моём случае.
SID системы всегда равен S-1-5-18.
Советую взглянуть на список известных SID-ов тут: support.microsoft.com/kb/243330
Спасибо, гляну. Но сид юзера всё же разный в итоге в любом случае.
Vista у меня.
whoami /user — не то разве?
стандарстными средствами с XP точно
Хм, вы знаете, кажется мы всё же точно сделали велосипед. :) whoami /logonid действительно возвращает СИД ;) спасибо, учтём
Упс, поправочка, в ХП не пашет. Виста/7ка.
en.wikipedia.org/wiki/Whoami начиная с висты есть это команда, т.е. наш вариант всё же универсален :)
точно =) ну ладно тогда, ошибся
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории