Cambiar nombre del Usuario (Ayuda)

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
Avatar de Usuario
jassir
Mensajes: 14
Registrado: 30 Jul 2012, 18:54

Cambiar nombre del Usuario (Ayuda)

Mensaje por jassir »

Bueno la idea es cambiar el nombre del Usuario y no tengo idea para nada
nota vale recalcar que si se cambiar manualmente
pero la idea es cambiarlo con un scrip de autoit de forma desatendida

Código: Seleccionar todo

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

$Ventana = GUICreate("Nombre de Usuario", 250, 200, -1, -1)
$Input = GUICtrlCreateInput(@UserName, 24, 64, 185, 21)
$Button = GUICtrlCreateButton("Aceptar", 32, 112, 161, 41)
$Label = GUICtrlCreateLabel("Nombre de usuario", 40, 20, 200, 17)
GUISetState(@SW_SHOW)

While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
      Case $GUI_EVENT_CLOSE
         Exit
      Case $Button
         MsgBox(0, "Windows", "El nombre del Usuario ha sido cambiado")
   EndSwitch
WEnd
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2091
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: Cambiar nombre del Usuario (Ayuda)

Mensaje por BasicOs »

Aquí hay un programa reciente que hace algo parecido:

http://www.emesn.com/autoitforum/viewto ... 199#p14199

Por otro lado:
Arrancar en modo admin con RunAs() y el comando net y lo que quieras, net user te permite bastantes cosas pero para cambiar grupo/usuario.
net group x: Aņadir/ver/modificar grupos de usuarios en un dominio
/Domain:x -> nombre del dominio
/add x -> aņadir un grupo nuevo

net user usuario clave: Aņadir/ver/modificar usuarios en un dominio
/domain:nombre -> nombre del dominio
/add x -> agregar usuario al dominio
net user para llamarlo con Autoit algunos ejemplos en http://ss64.com/nt/net_useradmin.html :
desde el cmd o Run() o RunAs() http://support.microsoft.com/kb/251394
y en http://technet.microsoft.com/en-us/libr ... 90718.aspx


Aquí un ejemplo de como usar los objetos wscript que con la opcion NETWORK accedes a esto::

http://www.emesn.com/autoitforum/viewto ... =13&p=9313

Ejemplo de conversión de VbScript a Autoit solo cambia lo que está entre parentesis ;) :

Código: Seleccionar todo

En WsScript
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters =  objWMIService.ExecQuery _
    ("Select * from Win32_Printer Where Name = 'HP QuietJet'")
For Each objPrinter in colInstalledPrinters
    objPrinter.CancelAllJobs()
Next

-->>Lo mismo en Autoit creando el objeto y luego llamado a las funciones y métodos, pero puedes usar la potencia de Autoit para complementarlo:
$strComputer = "localhost"
$objWMIService = ObjGet("winmgmts:\" & $strComputer & " ootcimv2")
$colInstalledPrinters = $objWMIService.ExecQuery ("Select * from Win32_Printer Where Name = 'HP LaserJet 3200 Series PCL'")
For $objPrinter in $colInstalledPrinters
    $objPrinter.CancelAllJobs()
Next
Este es el codigo en VB para cambiar el usuario:

Código: Seleccionar todo

' Description: 
' Script that renames a local user account 
' Will return errorlevel 1 if it fails 

Set oArgs = Wscript.Arguments 
If oArgs.Count <> 2 Then 
WScript.Echo "Invalid input, needs to be: " & vbCrLf & vbCrLf _ 
& WScript.ScriptName & " <old-name> <new-name>" 
WScript.Quit 1 ' return with errorlevel 1 
End If 

Set oWshNet = CreateObject("WScript.Network" ) 

' get computer name for local computer 
sComputerName = oWshNet.ComputerName 

' Turn off internal error handling 
On Error Resume Next 

' connect to user object 
Set oUser = GetObject("WinNT://" & sComputerName & "/" _ 
& oArgs(0) & ",user" ) 

If Err.Number = 0 Then 
Set oComputer = GetObject("WinNT://" & sComputerName) 

' rename user 
Set oNewUser = oComputer.MoveHere(oUser.ADsPath, oArgs(1)) 

If Err.Number = 0 Then 
WScript.Echo "User account successfully renamed from " _ 
& oArgs(0) & " to " & oArgs(1) 
Else 
WScript.Echo "Was not able to rename user account from " _ 
& oArgs(0) & " to " & oArgs(1) 
WScript.Quit 1 ' return with errorlevel 1 
End If 

Else 
WScript.Echo "User account " & oArgs(0) & " does not exist!" 
WScript.Quit 1 ' return with errorlevel 1 
End If 
Reamente no tengo hecho lo que necesitas, si no te explico las técnicas que hay, también puedes usar un programa externo que lo haga y llamarlo desde el interface que pones dentro del Select/Case:
Case $Button
Lo que haces realmente es crear tu propio interface para otro programa que ya lo hace en cmd/batch

Salu22:)
Avatar de Usuario
melvinhn
Hacker del Foro
Mensajes: 75
Registrado: 16 Jul 2011, 22:14
Ubicación: Honduras, Cortes, Puerto Cortes, Col Miraflores
Contactar:

Re: Cambiar nombre del Usuario (Ayuda)

Mensaje por melvinhn »

Pues mira yo para muchas cosas utilizo la consola de windows. CMD
este comando es muy amplio wmic (Windows Management Instrumentation Command)
los cuales son compatibles con autoit

Código: Seleccionar todo

#NoTrayIcon
$value = InputBox("Renombrar Usuario...", @CRLF&"1= Recuerde reiniciar el equipo"&@CRLF&"      para que los cambios surjan efecto"&@CRLF&@CRLF&"2= Solo 60 caracteres maximo", @UserName, "")
If $value <> "" Then
_RunDos('wmic UserAccount where Name="%username%" call Rename Name="'&$value&'"')
EndIf

Func _RunDos($sCommand)
	Local $nResult = RunWait(@ComSpec & " /C " & $sCommand, "", @SW_HIDE)
	Return SetError(@error, @extended, $nResult)
EndFunc
Cheque bien esta parte ya que es la mas importante
wmic UserAccount where Name="%username%" call Rename Name="Nombre nuevo"

tambien te recomiendo busques ayuda en "net user" ya que con ese comando puedes agregar usuarios editar el fullname activarlo desactivarlo
solo lo aplicas a un comando y listo...

tambien te recomiendo le heches un vistazo al siguiente programa que hice en autoit en su debido momento talvez te sirven muchas opciones de configuracion...
http://www.emesn.com/autoitforum/viewto ... f=4&t=3469
Responder