WindowsRemote-UserAnleger-Script

  • ja der Name ist nicht gerade einfallsreich -.-

    mein erstes script deswegen auch keine GUI^^ Verbesserungsvorschläge werden gerne entgegengenommen.

    Was macht das Script?
    Es liest aus einer INI-Datei raus was alles gemacht werden soll und legt daraus ein User an und legt den in einer bestimmten Benutzergruppe. Anschließend wird der Remote von Windows aktiviert und auf Wunsch wird der Rechner neu gestartet.

    In der INI datei wird 1 als Ja gezählt und 0 als ein Nein.

    config.ini:

    Spoiler anzeigen

    AutoIt Source:

    Spoiler anzeigen
    [autoit]

    ;###############################################################
    ;###### WindowsRemote-UserAnleger-Script ######
    ;###### by bebop ######
    ;###############################################################

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #Include <process.au3>

    [/autoit] [autoit][/autoit] [autoit]

    ;ini datei lesen und den bestimmten wert raus holen
    ;bereich für den user der angelegt werden soll oder nicht
    $user = IniRead(@ScriptDir & "\config.ini", "User_anlegen", "user", "user")
    $pw = IniRead(@ScriptDir & "\config.ini", "User_anlegen", "pw", "123456")
    $anlegen = IniRead(@ScriptDir & "\config.ini", "User_anlegen", "anlegen", "0")
    $gruppe = IniRead(@ScriptDir & "\config.ini", "User_anlegen", "gruppe", "Remotedesktopbenutzer")

    [/autoit] [autoit][/autoit] [autoit]

    ;bereich für den remote
    $aktivieren = IniRead(@ScriptDir & "\config.ini", "remote", "aktivieren", "1")
    $port = IniRead(@ScriptDir & "\config.ini", "remote", "port", "3389")
    $restart = IniRead(@ScriptDir & "\config.ini", "remote", "restart", "0")
    $firewall = IniRead(@ScriptDir & "\config.ini", "remote","firewall","0")
    $speicher = IniRead(@ScriptDir & "\config.ini", "remote", "speicherwarnungabschalten","0")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;DOS befehle um ein Benutzter anzulegen und ihm in eine bestimme gruppe zu legen
    If $anlegen = 1 Then
    _RunDOS("net user " & $user & " " & $pw & " /add")
    _RunDOS("net localgroup " & $gruppe & " " & $user & " /add")
    RegWrite( "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList\",$user,"REG_DWORD","0")
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;jetzt wird in der regestrierung ein wenig rummgemacht damit der remote aktiviert wird
    If $aktivieren = 1 Then
    RegWrite( "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Terminal Server\","TSEnabled","REG_DWORD","1")
    RegWrite( "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Terminal Server\","TSUserEnabled","REG_DWORD","1")
    RegWrite( "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Terminal Server\","fAllowToGetHelp","REG_DWORD","1")
    RegWrite( "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\","fDenyTSConnections","REG_DWORD","0")
    RegWrite( "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\","PortNumber","REG_DWORD",$port)
    _RunDOS('net start "Terminal Services"')
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;Speicherwarnung abschalten:
    If $speicher = 1 Then
    RegWrite( "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\","NoLowDiskSpaceChecks","REG_DWORD","1")
    EndIf


    ;hier wird der port in der windowsfirewall geöffnet
    If $firewall = 1 Then
    _RunDos('netsh firewall set portopening protocol=TCP port=' & $port & ' name="Microsoft Terminal Service"')
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;nun wird geschaut ob restarted werden soll
    If $restart = 1 Then
    _RunDOS("shutdown -r")
    EndIf

    [/autoit]