Uploaded Test files
This commit is contained in:
parent
f584ad9d97
commit
2e81cb7d99
16627 changed files with 2065359 additions and 102444 deletions
52
venv/Lib/site-packages/win32/Demos/win32cred_demo.py
Normal file
52
venv/Lib/site-packages/win32/Demos/win32cred_demo.py
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
"""
|
||||
Demonstrates prompting for credentials, saving, and loggging on with marshalled credential.
|
||||
Also shows how to load user's profile
|
||||
"""
|
||||
|
||||
import win32net, win32security, win32api, win32con
|
||||
import win32profile, win32cred
|
||||
|
||||
## Prompt for a username/pwd for local computer
|
||||
uiinfo={'MessageText':'Enter credentials for local machine','CaptionText':'win32cred_demo.py'}
|
||||
target, pwd, save=win32cred.CredUIPromptForCredentials(TargetName=win32api.GetComputerName(), AuthError=0,
|
||||
Flags=win32cred.CREDUI_FLAGS_DO_NOT_PERSIST|win32cred.CREDUI_FLAGS_SHOW_SAVE_CHECK_BOX,
|
||||
Save=False, UiInfo=uiinfo)
|
||||
|
||||
attrs=[
|
||||
{'Keyword':'attr1', 'Flags':0, 'Value':'unicode data'},
|
||||
{'Keyword':'attr2', 'Flags':0, 'Value':'character data'}
|
||||
]
|
||||
cred={'Comment':'Created by win32cred_demo.py', 'UserName':target, 'TargetAlias': None,
|
||||
'TargetName':target,'CredentialBlob':pwd, 'Flags':win32cred.CRED_FLAGS_USERNAME_TARGET,
|
||||
'Persist':win32cred.CRED_PERSIST_ENTERPRISE,'Type':win32cred.CRED_TYPE_DOMAIN_PASSWORD,
|
||||
'Attributes':attrs}
|
||||
win32cred.CredWrite(cred)
|
||||
pwd=None
|
||||
print(win32cred.CredRead(target, win32cred.CRED_TYPE_DOMAIN_PASSWORD))
|
||||
|
||||
## Marshal saved credential and use it to log on
|
||||
mc=win32cred.CredMarshalCredential(win32cred.UsernameTargetCredential, target)
|
||||
th=win32security.LogonUser(mc,None,'',win32con.LOGON32_LOGON_INTERACTIVE, win32con.LOGON32_PROVIDER_DEFAULT)
|
||||
win32security.ImpersonateLoggedOnUser(th)
|
||||
print('GetUserName:',win32api.GetUserName())
|
||||
win32security.RevertToSelf()
|
||||
|
||||
## Load user's profile. (first check if user has a roaming profile)
|
||||
username, domain=win32cred.CredUIParseUserName(target)
|
||||
user_info_4=win32net.NetUserGetInfo(None, username, 4)
|
||||
profilepath=user_info_4['profile']
|
||||
## LoadUserProfile apparently doesn't like an empty string
|
||||
if not profilepath:
|
||||
profilepath=None
|
||||
|
||||
## leave Flags in since 2.3 still chokes on some types of optional keyword args
|
||||
hk=win32profile.LoadUserProfile(th, {'UserName':username, 'Flags':0, 'ProfilePath':profilepath})
|
||||
## Get user's environment variables in a form that can be passed to win32process.CreateProcessAsUser
|
||||
env=win32profile.CreateEnvironmentBlock(th,False)
|
||||
|
||||
|
||||
## Cleanup should probably be in a finally block
|
||||
win32profile.UnloadUserProfile(th, hk)
|
||||
th.Close()
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue