This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Finding your SID (was Re: problem starting inetd as NT service)


Problem solved.

I thought that I was able to contact the domain controller,
since I was able to change my domain password successfully
and do other sorts of things that required me to login.
However, apparently this was something other than the PDC
or BDC. Or at least I was in a situation where I wasn't
"trusted" enough to contact them via mkpasswd. Thinking it
was the latter, I even tried hacking mkpasswd to use the
appropriate Active Directory calls, to no avail.

But today, after finding someone that could use mkpasswd,
I simply copied his WINS settings and now it works for
me, too. Doh!

Thanks for the help,

-Jerry Williams

P.S. I don't know if anyone's interested in this, but here's
my previous Python script updated to provide more correct
results:
-----
#!/usr/bin/echo THIS_IS_ONLY_FOR_WINDOWS_PYTHON

from _winreg import *
from os import environ

class User:
    def __init__(self,masterkey,sid):
        self.sid = sid
        userkey = OpenKey(masterkey,sid)
        self.data = {}
        for valueno in range(QueryInfoKey(userkey)[1]):
            (name,data,type) = EnumValue(userkey,valueno)
            self.data[name] = data
        userkey.Close()
        profilePath = self.data['ProfileImagePath'].split("%")
        for i in range(1,len(profilePath),2):
            profilePath[i] = environ[profilePath[i]]
        self.profilePath = "".join(profilePath)

users = []

masterkey = OpenKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\ProfileList")
for userno in range(QueryInfoKey(masterkey)[0]):
    users.append(User(masterkey,EnumKey(masterkey,userno)))
masterkey.Close()

profilePath = environ["USERPROFILE"]
userName = environ["USERNAME"]
userDomain = environ["USERDOMAIN"]

# Offset of 10000 is for domain users. Use 0 for local users.
offset = 10000

for user in users:
    if user.profilePath == profilePath:
        # Group 513/10513 is for all users.
        # This assumes you want your home directory in /home/userName
        print ":".join([userName, \
                        "unused_by_nt/2000/xp", \
                        str(int(user.sid.split("-")[-1])+offset),
                        str(513+offset), \
                        "U-" + userDomain + "\\" + userName + "," + user.sid, \
                        "/home/" + userName, \
                        "/bin/bash"])


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]