Узнать SID по PID и кое-что еще (winapi)

Обсуждение программ nnCron и nnCron LITE

Re: Узнать SID по PID и кое-что еще (winapi)

Postby polly5315 » Fri, 19 Feb 2010, 08:08

В Platform SDK Documentation в разделе "Terminal Services API Functions" нашел вообще много полезных функций.
Code: Select all
ProcessIdToSessionId
WTSDisconnectSession
WTSLogoffSession
WTSQuerySessionInformation (на конце "A")
WTSQueryUserConfig (на конце "A")
WTSSendMessage
и так далее. вообще золотая жила для этой темы.
Я уже все, что мне надо, реализовал. Хоть пока и плоховато, но допишу до нормального. За сим откланиваюсь и надеюсь, что тема продолжит жить и принесет интерес и пользу.
polly5315
 
Posts: 13
Joined: Fri, 29 Jan 2010, 14:01

Re: Узнать SID по PID и кое-что еще (winapi)

Postby dabserver » Fri, 30 Mar 2012, 08:37

А кто подскажет - есть ли способ узнать SID доменного пользователя, при наличии такого же локального?

NAME2SIDS не понимает домен\пользователь
плагин sid.spf - вообще не понял как ему имя не прямым текстом передать, а переменной (

а без указания домена пользователя NAME2SIDS находит sid локального пользователя, а не доменного, хотя задача и выполняется из под доменного пользователя.
dabserver
 
Posts: 6
Joined: Wed, 18 Mar 2009, 12:02

Re: Узнать SID по PID и кое-что еще (winapi)

Postby VoidVolker » Sat, 31 Mar 2012, 07:31

Код задачи?
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Узнать SID по PID и кое-что еще (winapi)

Postby dabserver » Mon, 09 Apr 2012, 11:06

Code: Select all
#( setenviruser
NoActive
WatchLogon: "*"
AsLoggedUser
LoadProfile
CREATE reg_sid 256 ALLOT
CREATE reg_val2 256 ALLOT
Action:
S" %USERNAME%" EVAL-SUBST NAME2SIDS reg_sid PLACE
reg_val2 GET-REG: "HKEY_USERS\%reg_sid COUNT%\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal"
MSG: "%reg_val2 ASCIIZ>%"
)#


проблема в следующем:
если залогиненый пользователь существует локально - находится сид локального пользователя, несмотря на то, что пользователь залогинился в домен.
при этом, если у локального пользователя нет профиля (не входил он ни разу локально) - то и соответствующий путь в реестре не находится.

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

искать решение другими способами пробовал, но всякие прочие утилиты (dsquery dsget) выдают многострочный результат, а форт я не понимаю ни на каком уровне, кроме как простейшие задачи делать, переделывая примеры из справки под себя.

переменную %userdomain% nncron не видит, т.к. она не системная, да и в любом случае как я понял NAME2SIDS не понимает имя пользователя вида %userdomain%\%USERNAME%

интуитивно я понял что это умеет плагин sid.spf , но как ни пробовал - после ключевого слова SID: ему нужен прямой текст с именем пользователя - переменные туда не подставляются.
dabserver
 
Posts: 6
Joined: Wed, 18 Mar 2009, 12:02

Re: Узнать SID по PID и кое-что еще (winapi)

Postby VoidVolker » Mon, 09 Apr 2012, 16:28

Code: Select all
USERNAME NAME2SIDS

В случае, если USERDOMAIN - переменная окружения:
Code: Select all
S" USERDOMAIN" ENV S" \" S+ USERNAME S+ NAME2SIDS

Либо так:
Code: Select all
S" USERDOMAIN" ENV S" \" S+ USERNAME S+ SID

По идее должно сработать.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Узнать SID по PID и кое-что еще (winapi)

Postby dabserver » Tue, 10 Apr 2012, 17:08

.... однакож и тут подводный камень - USERDOMAIN зараза переменная окружения операционной системы, причем живущей в оперативной памяти после логона пользователя - в реестре даже её нет.
а ннкрон как то такие переменные ну вообще не видит ...
мне иногда кажется что он переменные вообще читает только из реестра, из деволтного профиля юзера и из controlset001 ...
dabserver
 
Posts: 6
Joined: Wed, 18 Mar 2009, 12:02

Re: Узнать SID по PID и кое-что еще (winapi)

Postby VoidVolker » Tue, 10 Apr 2012, 18:12

А если руками указать домен - работает? И от имени какого пользователя запускается задача - по умолчанию от системы, от текущего залогиненого или какого-то конкретного пользователя?
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Previous

Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 1 guest