Mail Archives: cygwin/2002/05/09/07:13:01
Jason Tishler wrote:
> You can find your SID (the "proper info" from above), by scanning through
> the following registry key:
>
> HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
>
> Choose the one where ProfileImagePath contains your $USERNAME.
After expanding variables, I was able to look for where
ProfileImagePath is equal to $USERPROFILE. YMMV.
I was able to come up with a short script that does the
equivalent of "mkpasswd -d -u $USERNAME" on my system.
However, I did not know what to do about the group
number. Based on my system and other e-mail I've seen,
I just hardcoded 513 for now, but that's probably not
universally correct. Is there any way to get that info
from the registry?
-Jerry
P.S. Here's the script I used. It's in Python, and only
works using the WINDOWS version right now since Cygwin
Python doesn't support the _winreg module.
-----
#!/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"]
for user in users:
if user.profilePath == profilePath:
# Not clear what to use for group ID. Is 513 universally OK?
# This assumes you want your home directory in /home/userName
print ":".join([userName, \
"unused_by_nt/2000/xp", \
user.sid.split("-")[-1],
"513", \
"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/
- Raw text -