parser.add_option('-u', '--username', action = 'store', help = 'The username to pass to the function (only for the change command')
parser.add_option('-p', '--password', action = 'store', help = "The clear-text password to pass to the function (only for the 'change' command)")
parser.add_option('-m', '--password-matched', action = 'store_false', default = True, help = "Used to specify the password does NOT match (ie, uses False for the PasswordMatch/PasswordMatched arg, both 'auth' and 'change' commands)")
parser.add_option('-s', '--server', action = 'store', help = 'The name of the server to execute the command on')
parser.add_option('-f', '--show_fields', action = 'store_true', default = False, help = 'Print the NET_VALIDATE_PERSISTED_FIELDS returned')
(options, args) = parser.parse_args()
if not args:
parser.error('You must supply an arg')
for arg in args:
if arg == 'auth':
input = {
'PasswordMatched': options.password_matched }
val_type = win32netcon.NetValidateAuthentication
elif arg == 'change':
input = {
'ClearPassword': options.password,
'PasswordMatch': options.password_matched,
'UserAccountName': options.username }
val_type = win32netcon.NetValidatePasswordChange
else:
parser.error("Invalid arg - must be 'auth' or 'change'")