Snippets ( Windows Users ): Difference between revisions
Jump to navigation
Jump to search
m (+Snippets Category (+ normalize top)) |
|||
Line 1: | Line 1: | ||
__TOC__ | |||
[[category:Snippets]] | |||
{{Snippet Credit Header}} | |||
===== <blockquote style="background-color:white; padding:1em; border:2px solid #8FBC8F">''' _Add User Accounts ~ Author - [http://www.autoitscript.com/forum/user/2709-mhz/ MHz] '''</blockquote> ===== | ===== <blockquote style="background-color:white; padding:1em; border:2px solid #8FBC8F">''' _Add User Accounts ~ Author - [http://www.autoitscript.com/forum/user/2709-mhz/ MHz] '''</blockquote> ===== | ||
Revision as of 15:18, 12 November 2012
_Add User Accounts ~ Author - MHz
_Add User Accounts ~ Author - MHz
_NetUser('Jack', 'pw_abc')
_NetUser('Jill', 'pw_def')
; Add User Accounts
Func _NetUser($sName, $sPassword = '', $sGroupName = 'Administrators', $iAutoLogon = 0)
; Creates user accounts. Only 1 user can have autologon, if set.
If Not FileExists(EnvGet('AllUsersProfile') & '\..\' & $sName) Then
RunWait(@ComSpec & ' /c ' & _
'Net User ' & $sName & ' ' & $sPassword & ' /add &&' & _
'Net LocalGroup ' & $sGroupName & ' ' & $sName & ' /add &' & _
'Net Accounts /MaxPwAge:UnLimited', '', @SW_HIDE)
If $iAutoLogon Then
Local $sRegKey = 'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon'
RegWrite($sRegKey, 'DefaultUserName', 'Reg_sz', $sName)
RegWrite($sRegKey, 'DefaultPassword', 'Reg_sz', $sPassword)
RegWrite($sRegKey, 'AutoAdminLogon', 'Reg_sz', 1)
EndIf
EndIf
EndFunc ;==>_NetUser
_GetLogonTime() ~ Author - guinness
_GetLogonTime() ~ Author - guinness
; Get the last date and time the user logged on.
#include <Date.au3>
ConsoleWrite(_GetLogonTime() & @LF)
Func _GetLogonTime($sUserName = @UserName, $sComputerName = ".") ; Idea by trancexx: http://www.autoitscript.com/forum/topic/113611-if-isadmin-not-detected-as-admin/
Local $aRet = DllCall("netapi32.dll", "long", "NetUserGetInfo", "wstr", $sComputerName, "wstr", $sUserName, "dword", 11, "ptr*", 0)
If @error Or $aRet[0] Then Return SetError(1, 0, False)
Local $sHours = DllStructGetData(DllStructCreate("ptr;ptr;ptr;ptr;dword;dword;dword;ptr;ptr;dword;dword;dword;dword;ptr;dword;ptr;dword;dword;byte;dword", $aRet[4]), 18)
DllCall("netapi32.dll", "long", "NetApiBufferFree", "ptr", $aRet[4])
Return _DateAdd("h", "-" & $sHours, _NowCalc())
EndFunc ;==>_GetLogonTime
_GetUserFullName() ~ Author - guinness
_GetUserFullName() ~ Author - guinness
ConsoleWrite('Current user''s full name is: ' & _GetUserFullName() & @CRLF)
; Get the full name of the current user. May be blank if you haven't set a full name.
Func _GetUserFullName()
Local $oWMIService = ObjGet('winmgmts:\\localhost\root\CIMV2'), $sReturn = ''
Local $oColItems = $oWMIService.ExecQuery('Select * From Win32_UserAccount', 'WQL')
If IsObj($oColItems) Then
For $oItem In $oColItems
Return $oItem.FullName
Next
EndIf
EndFunc ;==>_GetUserFullName
_IsAdminEnabled() ~ Author - guinness
_IsAdminEnabled() ~ Author - guinness
ConsoleWrite(_IsAdminEnabled() & @CRLF)
Func _IsAdminEnabled() ; By Rover and guinness
Local $oWMIService = ObjGet('winmgmts:\\localhost\root\CIMV2')
Local $oColItems = $oWMIService.ExecQuery('SELECT * FROM Win32_UserAccount WHERE Name = "Administrator"', "WQL", 0x30)
If IsObj($oColItems) Then
For $oItem In $oColItems
Return $oItem.Disabled = False
Next
EndIf
Return True
EndFunc ;==>_IsAdminEnabled
_IsAdminEnabledEx() ~ Author - guinness
_IsAdminEnabledEx() ~ Author - guinness
#include <Constants.au3>
ConsoleWrite(_IsAdminEnabledEx() & @CRLF)
; Check if the Administrator account is enabled. Using 'net user' and reading the Standard Stream Output.
Func _IsAdminEnabledEx()
Local $iPID = Run(@ComSpec & ' /c net user Administrator', @SystemDir, @SW_HIDE, $STDOUT_CHILD + $STDERR_CHILD), $sReturn = ''
While 1
$sReturn &= StdoutRead($iPID)
If @error Then
ExitLoop
EndIf
WEnd
Local $aReturn = StringRegExp($sReturn, 'Account active\s*(.*?)\r', 3)
If @error Then
Return SetError(1, 0, False)
EndIf
Return $aReturn[0] = 'Yes'
EndFunc ;==>_IsAdminEnabledEx
_IsGuestEnabled() ~ Author - guinness
_IsGuestEnabled() ~ Author - guinness
ConsoleWrite(_IsGuestEnabled() & @CRLF)
Func _IsGuestEnabled() ; By Rover and guinness
Local $oWMIService = ObjGet('winmgmts:\\localhost\root\CIMV2')
Local $oColItems = $oWMIService.ExecQuery('SELECT * FROM Win32_UserAccount WHERE Name = "Guest"', "WQL", 0x30)
If IsObj($oColItems) Then
For $oItem In $oColItems
Return $oItem.Disabled = False
Next
EndIf
Return True
EndFunc ;==>_IsGuestEnabled
_IsGuestEnabledEx() ~ Author - guinness
_IsGuestEnabledEx() ~ Author - guinness
#include <Constants.au3>
ConsoleWrite(_IsGuestEnabledEx() & @CRLF)
; Check if the Guest account is enabled. Idea by Chimaera.
Func _IsGuestEnabledEx()
Local $iPID = Run(@ComSpec & ' /c net user Guest', @SystemDir, @SW_HIDE, $STDOUT_CHILD + $STDERR_CHILD), $sReturn = ''
While 1
$sReturn &= StdoutRead($iPID)
If @error Then
ExitLoop
EndIf
WEnd
Local $aReturn = StringRegExp($sReturn, 'Account active\s*(.*?)\r', 3)
If @error Then
Return SetError(1, 0, False)
EndIf
Return $aReturn[0] = 'Yes'
EndFunc ;==>_IsGuestEnabledEx
_IsPasswordExpired() ~ Author - guinness
_IsPasswordExpired() ~ Author - guinness
ConsoleWrite(_IsPasswordExpired() & @CRLF)
Func _IsPasswordExpired($sComputerName = @UserName)
Local $oWMIService = ObjGet('winmgmts:\\localhost\root\CIMV2')
Local $oColItems = $oWMIService.ExecQuery('Select * From Win32_UserAccount Where Name = "' & $sComputerName & '"', "WQL", 0x30)
If IsObj($oColItems) Then
For $oItem In $oColItems
Return $oItem.PasswordExpires
Next
EndIf
Return True
EndFunc ;==>_IsPasswordExpired
_SetWorkGroupName() ~ Author - JScript
_SetWorkGroupName() ~ Author - JScript
$sNewWorkgroupName = "HOMEOS"
_SetWorkGroupName($sNewWorkgroupName)
Func _SetWorkGroupName($sGroupName)
Local $aRet = DllCall("Netapi32.dll", "long", "NetJoinDomain", "int", 0, "wstr", $sGroupName, "int", 0, "int", 0, "int", 0, "dword", 0x00000040)
Return $aRet[0]
EndFunc ;==>_SetWorkGroupName
_WhoAmI() ~ Author - guinness
_WhoAmI() ~ Author - guinness
#include <Constants.au3>
ConsoleWrite(_WhoAmI() & @CRLF)
; Displays the username and domain for the currently logged in user.
Func _WhoAmI()
Local $iPID = Run(@ComSpec & ' /c whoami', @SystemDir, @SW_HIDE, $STDOUT_CHILD + $STDERR_CHILD), $sReturn = ''
While 1
$sReturn &= StdoutRead($iPID)
If @error Then
ExitLoop
EndIf
WEnd
Return StringRegExpReplace(StringUpper($sReturn), '\n|\r', '')
EndFunc ;==>_WhoAmI