PDA

View Full Version : تغییر دادن پسورد ویندوز



S_VB.max
جمعه 18 اسفند 1385, 20:08 عصر
سلام
چجوری می تونم پسورد admin (و یا یک کاربر معمولی ویندوز) در کامپیوتر لوکال را تغییر دهم ؟

adaman
جمعه 18 اسفند 1385, 20:19 عصر
Shell ("net user Admin Password"), vbHide

فقط با دسترسی ادمین کار می کنه، به جای Admin اسم یوزری رو بنویس که میخوای پسوردشو عوض کنی ، جای Password هم پسورد مورد نظرتو

S_VB.max
جمعه 18 اسفند 1385, 20:46 عصر
ممنون دوست عزیز همینا می خواستم

romina2006
شنبه 19 اسفند 1385, 00:40 صبح
اگه می خوای با توابع Api کار کنی می تونی از کد زیر استفاده کنی


Private Declare Function NetUserChangePassword Lib "Netapi32.dll" (ComputerName As Any, User As Any, OldPass As Any, NewPass As Any) As Long
Private Const ERROR_ACCESS_DENIED = 5&
Private Const ERROR_INVALID_PASSWORD = 86&
Private Const NERR_InvalidComputer = 2351
Private Const NERR_NotPrimary = 2226
Private Const NERR_UserNotFound = 2221
Private Const NERR_PasswordTooShort = 2245
Private Const ERROR_CANT_ACCESS_DOMAIN_INFO = 1351

Function ChangeUserPassword(ByVal Server As String, ByVal User As String, ByVal OldPassword As String, ByVal NewPassword As String) As String
Dim r As Long, msg As String
Dim bComputer() As Byte: bComputer = GetByteArray(Server)
Dim bUser() As Byte: bUser = GetByteArray(User)
Dim bOldPassword() As Byte: bOldPassword = GetByteArray(OldPassword)
Dim bNewPassword() As Byte: bNewPassword = GetByteArray(NewPassword)
r = NetUserChangePassword(bComputer(0), bUser(0), bOldPassword(0), bNewPassword(0))
Select Case r
Case ERROR_ACCESS_DENIED: msg = "Error: Access denied."
Case ERROR_INVALID_PASSWORD: msg = "Error: Invalid password."
Case NERR_InvalidComputer: msg = "Fehler: Invalid Computer-/Domainname."
Case NERR_NotPrimary: msg = "Error: This operation can only performed on the primary domain controler."
Case NERR_UserNotFound: msg = "Error: User not found."
Case NERR_PasswordTooShort: msg = "Error: Password does not match Password-Restrictions. (Password to short, to long or has already been used by this user.)"
Case ERROR_CANT_ACCESS_DOMAIN_INFO
msg = "Error: Error accessing info for domain controler. Maybe the computer is not available or access was denied."
Case 0: msg = "Operation performed successfully."
Case Else: msg = "Error: Unexpected Error " & r & " occured."
End Select
ChangeUserPassword = msg
End Function

Private Function GetByteArray(ByVal str As String) As Byte()
Dim Buf() As Byte
Buf = str
ReDim Preserve Buf(Len(str) * 2 + 1)
GetByteArray = Buf
End Function

Private Sub ChangePassword_Click()
ChangeUserPassword "ComputerName", "UserName", "OldPassword", "NewPassword"
End Sub

Bahram0110
شنبه 19 اسفند 1385, 09:48 صبح
سلام
یه سوال!
اگه پسورد ادمین رو داشته باشم می شه با کد بالا رمز یوزری که اختیارات ادمین رو داره رو عوض کرد؟

senator_aka
شنبه 19 اسفند 1385, 11:39 صبح
سلام romina2006

من اکثر مطالب شما را خواندم.

و جالب اینجا بود که شما در اکثر مطالبتون از توابع api استفاده کرده بودید.

لطفا اگر مرجع خواصی برای توابع api دارید برای ما هم معرفی کنید تا بتوانیم از آنها استفاده کنیم.

romina2006
شنبه 19 اسفند 1385, 12:18 عصر
سلام
یه سوال!
اگه پسورد ادمین رو داشته باشم می شه با کد بالا رمز یوزری که اختیارات ادمین رو داره رو عوض کرد؟

این کد فقط در یوزرهای ادمین کار می کنه ولی در یوزرهای لیمیت نمی تونی استفاده کنی.من برنامه اون رو نوشتم حتی می تونی با دستورات API یوزر جدید درست کنی یا حذفش کنی

Bahram0110
شنبه 19 اسفند 1385, 12:41 عصر
این کد فقط در یوزرهای ادمین کار می کنه ولی در یوزرهای لیمیت نمی تونی استفاده کنی.من برنامه اون رو نوشتم حتی می تونی با دستورات API یوزر جدید درست کنی یا حذفش کنی

من هم منظورم تو ادمین بود
می شه کدتو بزاری؟

adaman
شنبه 19 اسفند 1385, 15:30 عصر
Shell ("net user Admin Password"), vbHide

فقط با دسترسی ادمین کار می کنه، به جای Admin اسم یوزری رو بنویس که میخوای پسوردشو عوض کنی ، جای Password هم پسورد مورد نظرتو

با این روش نیازی به داشتن پسورد قبلی نیست ، با دسترسی ادمین پسورد همه ی یوزرهای سیستم رو می تونی عوض کنی حتی Administrator