2021年12月

Windows10内置一个超级管理员帐户,但是默认情况下,出于安全原因,它是隐藏和禁用的,启用或禁用它的方法如下。

在Windows 10安装结束时,Windows安装程序会提示你创建一个用户帐户,这是系统上的主帐户,默认配置为管理员帐户。尽管Windows将管理员用户状态授予了此帐户,而且它拥有几乎所有的管理权限。但是,你是否知道,在默认情况下,Windows10在安装过程中会自动生成另一个超级或高级的管理员帐户吗?是的,由于安全原因(通常用于解决Windows问题),默认情况下内置管理员帐户是隐藏的。它不是必需的,这个超级帐户通常用于故障排除或管理目的。如果你需要此帐户,可以有不同的方法在Windows 10上启用隐藏的管理员帐户。

内置管理员与本地管理员

内置的Windows 10管理员帐户与当前的管理员帐户不同。用户的管理员帐户与此内置管理员帐户的主要区别在于:前者接收UAC提示,而后者不接收。用户帐户是未提升的管理员帐户,而内置管理员帐户是提升的管理员帐户,它提供了更多更改操作系统中内容的权限,它还提供了比普通管理员帐户更多的权限。默认情况下,内置的管理员帐户运行具有管理员权限的所有程序和工具,这意味着从该帐户启动的所有程序都在不受任何限制的情况下运行。

启用Windows 10管理员帐户

Windows10提供了多种不同的方法来启用这个隐藏的管理员帐户。可以使用命令提示符通过本地用户和组启用管理员帐户,还可以使用本地安全策略(组策略)启用管理员帐户。

使用本地用户和组

1.按Windows + R,键入lusrmgr.msc,单击“确定”,打开“本地用户和组”窗口。

2.在左侧单击“用户”文件夹,会在中间窗格中看到各种帐户名,找到带有箭头标记的Administrator帐户(这意味着该帐户已被禁用)。

3.右键单击Administrator帐户,选择“属性”命令。

4.在“常规”选项卡下,取消选中“帐户已禁用”。

5.单击“确定”进行保存更改并启用管理员帐户。

6.为该管理员帐户设置密码。

7.再次右键单击管理员,然后选择“设置密码”。

8.输入此管理员帐户的密码。

现在,可以通过在“开始”中单击你的用户帐户名,然后单击“管理员”帐户来访问新启用的内置管理员帐户,这个隐藏的管理员现在也将出现在Windows 10的登录屏幕上。

禁用Windows 10管理员帐户

如果你仅出于排除故障的目的启用了超级管理员帐户,或者在没有任何限制的情况下运行了一个程序,完成任务后,你只需在管理员“属性”窗口中简单地选中“帐户已禁用”选项即可禁用这个超级Windows10管理员帐户。

使用命令提示

使用命令提示符启用管理员帐户是一项非常简单的任务,用户只需输入命令行即可完成此操作。

1.以管理员身份打开命令提示符。

2.输入命令net user administrator /active: yes,然后按Enter键。

3.将提示命令成功完成。

现在,可以通过在“开始”中单击你的用户帐户名,然后单击“管理员”帐户来访问新启用的内置管理员帐户。现在,这个隐藏的管理员现在也将出现在Windows 10的登录屏幕上。

要禁用内置的管理员帐户,请键入Net user administrator /active:no,然后按Enter键。

使用本地组策略

还可以使用本地安全策略(组策略)编辑器来启用隐藏的管理员帐户。注意组策略在Windows10家庭版上不可用。

1.按Windows + R,键入secpol.msc,然后单击确定,打开“本地安全策略”窗口。

2.在左窗格中,展开“本地策略”,然后单击“安全选项”。

3.在中间窗格找到名为“帐户:管理员帐户状态”的策略。

4.双击打开它,然后选择“已启用”。

5.单击“应用”后再单击“确定”将其启用。

现在就可以使用管理员帐户登录系统了。

禁用管理员帐户的操作方法与上述相同,在第4步中,选择“已禁用”选项即可


在Windows 10上,用户不必亲临现场,就可以使用远程桌面远程访问计算机或服务器,以帮助其他用户解决问题或管理服务。

你可能希望使用此方法创建一个脚本,以便于在多台计算机上快速配置远程桌面,或将脚本发送给用户,这样,用户无需执行其他操作,只需双击该脚本即可自动设置功能,大大提高了工作效率。

在本文中,将学习如何使用命令提示符启用或禁用远程桌面,并打开所需的防火墙端口,然后在Windows 10上成功连接的操作方法。

本文目录

如何使用命令提示符启用远程桌面如何使用命令提示符禁用远程桌面

重要提示:远程桌面不是Windows 10家庭版上的可用功能,仅在Windows 10专业版和企业版上可用。另外,建议你在继续下面的操作之前对计算机进行完整备份,因为错误地修改注册表会给你的系统造成不可挽回的损害。

一、使用命令提示符启用远程桌面

要使用命令提示符启用远程桌面协议,请使用以下步骤:

1.打开开始。

2.搜索“命令提示符”,右键单击顶部结果,然后选择“以管理员身份运行”选项。

3.输入以下命令以启用远程桌面协议,然后按Enter键:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f

4.(可选)键入以下命令以通过Windows防火墙启用远程桌面,然后按Enter:

netsh advfirewall firewall set rule group="remote desktop" new enable=Yes

完成这些步骤后,该协议将启用,就能够远程访问计算机了。

二、使用命令提示符禁用远程桌面

要使用命令提示符禁用远程桌面协议,请使用以下步骤:

1.打开开始。

2.搜索“命令提示符”,右键单击顶部结果,然后选择“以管理员身份运行”选项。

3.输入以下命令以禁用远程桌面协议,然后按Enter键:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f

4.(可选)键入以下命令以通过Windows防火墙禁用远程桌面,然后按Enter:

netsh advfirewall firewall set rule group="remote desktop" new enable=No

完成这些步骤后,将禁用远程桌面服务,并且Windows防火墙端口将关闭。

提示:

虽然本文是以命令提示符为例介绍启用或禁用远程桌面和防火墙的方法,但是,我们都知道,win10中有一个和命令提示符相同的工具:PowerShell,使用它也可以完成相同的操作,使用的方法与命令提示符完全相同。只需右键单击“开始”菜单,在弹出的快捷菜单中选择“Windwos PowerShell(管理员)”即可。


一、 VS2012下开发Windows服务

 

1、 打开VS2012,新建项目,选择Windows服务,此处我以开发一个定时自动发送邮件的服务来做介绍,如下图:

 

2、 创建好后,编译器会自动创建一些文件,其中会有一个Service1类文件,该文件是服务的关键,我们可以将其重命名,这里我将其命名为MainService,如下图:

 

3、 在MainService的后台代码中会自动创建一些方法,包括服务的启动和停止方法等,如下图:

 

4、 将服务启动时要执行的操作放在OnStart方法中,服务停止时要执行的操作放在OnStop方法中

5、 在MainService.cs设计器中,单击邮件,选择选择添加安装程序,便会生成一个ProjectInstaller.cs的文件,如图所示:

 

6、 设置ProjectInstaller.cs的属性,切换到属性设置界面

(1) 选择serviceInstaller1,并设置相应属性如下图所示:

 

其中:Description属性用于设置服务安装之后再服务界面上显示的描述信息;

      DisplayName属性用于设置服务安装之后再服务界面上显示的服务名称;

      ServiceName属性用于设置服务的名称,此名称必须与ServiceBase类的ServiceName属性设置的名称一致,该名称用于系统标识此服务,可以理解成DisplayName为ServiceName的别名;

      StartType属性用于设置服务的启动方式。

(2) 选择serviceProcessInster1,设置其属性如下:

 

此处主要设置Account属性,该属性用来指示运行该服务时的账户类型,一般设置为LocalSystem。

7、 到此步一个简单的windows服务就创建好了,编译程序会生成一个EmailService.exe的可执行文件,接下来便是安装服务了。

二、Windows服务的安装

Windows服务的安装有多种方式,比如可以再cmd下调用命令来安装,也可以写一个安装程序来安装,此处介绍使用bat批处理来安装。

1、 安装Windows服务需要用到InstallUtil.exe程序,该程序位于:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319 .NET4.0

C:\Windows\Microsoft.Net\Framework64\v2.0.50727 .NET2.0

2、 我们可以再批处理命令中直接调用以上目录中的InstallUtil.exe程序,也可以将该程序拷贝到应用程序的目录下,此处我选择奖该程序拷贝到应用程序的目录下,同时将批处理文件也创建在应用程序的的目录下,如下图所示:

 

3、 注册服务的批处理命令如下所示:

%~dp0\InstallUtil.exe %~dp0\EmailService.exe

Net Start EmailService  --这里是安装完成之后启动服务

sc config EmailService start= auto –这里是将服务设置为自动启动

pause

其中%~dp0表示批处理所在的目录;

4、 注销服务的批处理命令如下所示:

%~dp0\InstallUtil.exe /u %~dp0\EmailService.exe

pause

5、 启动服务的批处理命令如下所示:

net start EmailService

pause

6、 停止服务的批处理命令如下所示:

net stop EmailService

pause

7、 当我们运行注册服务批处理命令之后便会进行服务安装,如果安装成功,我们在服务界面将看到该服务,如下图所示:

 

8、 安装服务时的注意事项

(1) 安装程序InstallUtil.exe的版本必须于创建Windows服务的.NET版本一致;

(2) 如果是Win7以上版本的系统,在运行批处理命令时,应以管理员身份运行;

(3) 如果是Win7以上版本的系统,应特别注意安装程序和应用程序的路径,以便能够正确的写批处理命令。

 

原文转载:http://blog.csdn.net/huangcailian/article/details/42237013


基于0起步来创建一个服务,做到简单的记录时间日志功能,其具体招行方法可自行添加。

1.创建服务

2.删除默认服务文件

3.添加自己的服务文件

4.更改启动项目

5. 引用 using System.Timers;并添加FileClass类

FileClass类

复制代码

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;namespace TerminalTrance
{    public class FileClass
    {        //创建文件夹        //参数:path 文件夹路径
        public bool CreateFolder(string path)
        {            try
            {                if (Directory.Exists(path))
                {                    return true;
                }                if (!Directory.Exists(path.Substring(0, path.LastIndexOf("\\"))))
                { //若路径中无“\”则表示路径错误
                    return false;
                }                else
                {                    //创建文件夹
                    DirectoryInfo dirInfo = Directory.CreateDirectory(path);                    return true;
                }
            }            catch (Exception ex)
            {                return false;
            }
        }        //创建文件        //参数:path 文件路径
        public void CreateFile(string path)
        {            try
            {                if (CreateFolder(path.Substring(0, path.LastIndexOf("\\"))))
                {                    if (!File.Exists(path))
                    {
                        FileStream fs = File.Create(path);
                        fs.Close();
                    }
                }
            }            catch (Exception ex)
            {                return;
            }

        }        //删除文件        //参数:path 文件夹路径
        public void DeleteFile(string path)
        {            try
            {                if (!File.Exists(path))
                {                    return;
                }                else
                {
                    File.Delete(path);
                }

            }            catch (Exception ex)
            {                return;
            }
        }        //写文件        //参数:path 文件夹路径 、content要写的内容
        public void WriteFile(string path, string content)
        {            try
            {                if (!File.Exists(path))
                {
                    CreateFile(path);
                }
                FileStream fs = new FileStream(path, FileMode.Append, FileAccess.Write);
                StreamWriter sw = new StreamWriter(fs);
                sw.WriteLine(content);
                sw.Close();
            }            catch (Exception ex)
            {                return;
            }
        }        /// <summary>
        /// 将即时日志保存入日志文件        /// </summary>
        public void WriteLogFile(string directoryPath, string content)
        {            if (!Directory.Exists(directoryPath))
            {
                CreateFolder(directoryPath);
            }            try
            {                //写入新的文件
                string filePath = directoryPath + "\\" + DateTime.Now.Date.ToString("yyyyMMdd") + ".log";
                FileStream fs = new FileStream(filePath, FileMode.Append, FileAccess.Write);
                StreamWriter sw = new StreamWriter(fs);
                sw.WriteLine(content);
                sw.Close();
                fs.Close();
            }            catch (Exception ex)
            {

            }

        }
    }

}

复制代码

6. 添加上步中需要的InitService()方法

复制代码

/// <summary>
        /// 初始化服务参数        /// </summary>
        private void InitService()
        {            base.CanShutdown = true;            base.CanStop = true;            base.CanPauseAndContinue = true;            this.ServiceName = MainService.serviceName;            this.AutoLog = false;//为了使用自定义日志,必须将 AutoLog 设置为 false
            tim = new System.Timers.Timer();
            tim.Elapsed += new ElapsedEventHandler(tim_Elapsed);
            tim.Interval = 5000;
            tim.AutoReset = true;
        }

复制代码

7. 解决System不包含windows属性问题,引用程序集。

8.添加上面引用 的 tim_Elapsed 定时方法

复制代码

 private void tim_Elapsed(object sender, EventArgs e)
        {
            StartThread();
        }        /// <summary>  
        /// 开始任务 
        /// </summary>  
        private void StartThread()
        {
            MessageAdd(serviceName + " " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
        }        /// <summary>  
        ///  日志记录        /// </summary>  
        /// <param name="serviceName">内容</param>  
        public void MessageAdd(string str)
        {            try
            {
                fileclass.WriteLogFile(logPath, str);//写入记录日志            }            catch
            {

            }
        }

复制代码

9.此时生成解决方案是成功的

10.在OnStart等中写入自己的方法,这里用日志记录

复制代码

   protected override void OnStart(string[] args)
        {            try
            {                this.tim.Enabled = true;                this.tim.Start();
            }            catch (Exception ex)
            {
                MessageAdd("OnStart错误:" + ex.Message);
            }
            MessageAdd(serviceName + "已成功启动!");
        }        protected override void OnStop()
        {            try
            {                this.tim.Stop();
            }            catch (Exception ex)
            {
                MessageAdd("OnStop错误:" + ex.Message);
            }
            MessageAdd(serviceName + "已停止!");
        }        protected override void OnContinue()
        {            this.tim.Start();            base.OnContinue();
        }        protected override void OnPause()
        {            this.tim.Stop();            base.OnPause();
        }

复制代码

11.给服务添加安装程序。右键鼠标单击MainService.cs[设计]*选项卡选项“添加安装程序”。

12.可以看见项目中多了如下文件和组件,serviceProcessInstaller1、serviceInstaller1是自动生成的

13.设置组件serviceInstaller1的主要属性,StartType: AutoMatic自动启动;ServiceName: 服务系统标识,在cmd命令中执行sr start/stop/query等等命令时候使用,用来唯一标识一个Window服务

 

14.设置组件serviceProcessInstaller1的主要属性,Accout:账户类型,LocalSystem本地系统服务;

15.设置服务安装后“允许和桌面进行交互”,

需要在ProjectInstaller.cs中添加如下代码。

复制代码

using System;using System.Collections;using System.Collections.Generic;using System.ComponentModel;using System.Configuration.Install;using System.Linq;namespace TerminalTrance
{
    [RunInstaller(true)]    public partial class ProjectInstaller : System.Configuration.Install.Installer
    {        public ProjectInstaller()
        {
            InitializeComponent();
        }        protected override void OnAfterInstall(IDictionary savedState)
        {            try
            {                base.OnAfterInstall(savedState);                // 允许服务桌面交互
                System.Management.ManagementObject myService = new System.Management.ManagementObject(string.Format("Win32_Service.Name='{0}'", this.serviceInstaller1.ServiceName));

                System.Management.ManagementBaseObject changeMethod = myService.GetMethodParameters("Change");

                changeMethod["DesktopInteract"] = true;

                System.Management.ManagementBaseObject OutParam = myService.InvokeMethod("Change", changeMethod, null);

            }            catch (Exception ex)
            {

            }

        }
    }
}

复制代码

16.Windows服务的安装和卸载

代码写完后,编译通过后,就可以安装、卸载、调试服务了。

在执行安装或卸载服务前,我有把服务需要的相关文件,复制到C:\Service\下面或其他路径。一旦安装完成后,此目录不能变更,否则不能卸载该服务和服务运行会报错。

安装、卸载很简单,只要在VS命令行导航到,服务程序的路径。然后运行以下命令就OK了。

打开如图:

安装服务:installutil C:\Service\TerminalTrance.exe

卸载服务:installutil /u C:\Service\TerminalTrance.exe

调试的话,只能先安装启动服务,然后将该服务附加到进程,就可以调试了。安装好服务后,就可以在win7服务管理里面,管理刚刚启动的服务了。

 安装成功后可在服务中看到

 在服务程序中可以看到添加的服务

可以看到程序的日志记录

另外一个方法是生成安装exe程序

1.解决方案右键=》新建项目=》选择安装程序

2.安装项目右键=》添加=》项目输出,选择主项目

3.安装项目右键=》视图=》自定义操作

4.自定义操作=》安装右键=》选择主输出

5.卸载右键=》选择主输出

6.若有文件需要添加到安装后的文件夹中=》点击应用程序文件夹=》添加=》文件,选择文件。安装后就会生成指定文件。

7.生成程序,完成,Setup文件夹中找到exe安装文件执行就 OK了。卸载也是执行此exe,按提示下一步就OK。

作者:欢醉
公众号【一个码农的日常】 技术群:319931204 1号群: 437802986 2号群: 340250479
出处:http://zhangs1986.cnblogs.com/
码云:https://gitee.com/huanzui
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。


一、需求

我们有时候可能会想要做一些定时任务,例如每隔一段时间去访问某个网站,或者下载一些东西到我们服务器上等等之类的事情,这时候windows service 是一个不错的选择。

二、实现

1、打开Visua studio2013新建一个windows Service程序,我命名为TimerService

image

注意,这里的.NET Framwork框架的选择要与你电脑上的框架一致,我这里选择的是4.0

2、在Service1设计器中右击空白处选择查看代码

image

3.在Service1.cs中设定定时的时间间隔以及定时执行的任务这里的Onstart方法定义定时器的开始执行,执行的时间间隔,以及时间间隔达到后所要执行的方法,我这里是执行了一个文件写入的方法,代码如下

复制代码

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Diagnostics;using System.IO;using System.Linq;using System.ServiceProcess;using System.Text;using System.Timers;namespace TimerService
{    public partial class Service1 : ServiceBase
    {
        Timer timer;        public Service1()
        {
            InitializeComponent();
        }        protected override void OnStart(string[] args)
        {
            timer = new Timer(1000);
            timer.Elapsed += new ElapsedEventHandler(Timer_Elapsed);
            timer.Start();
            WriteLog("服务启动");
        }        protected override void OnStop()
        {
            timer.Stop();
            timer.Dispose();
            WriteLog("服务停止");
        }        protected void Timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            WriteLog("服务执行中");
        }        protected void WriteLog(string str)
        {            string filePath = AppDomain.CurrentDomain.BaseDirectory + "Log.txt";
            StreamWriter sw = null;            if (!File.Exists(filePath))
            {
                sw = File.CreateText(filePath);
            }            else
            {
                sw = File.AppendText(filePath);
            }
            sw.Write(str + DateTime.Now.ToString() + Environment.NewLine);
            sw.Close();
        }
    }
}

复制代码

4、在Service1设计器中右击空白处,选择添加安装程序,会添加一个ProjectInstaller设计器

image

5、在ProjectInstaller设计器中选择serviceProcessInstaller,右击查看属性,将Account的值改为LocalSystem

image

6、在ProjectInstaller设计器中选择serviceInstaller1,右击查看属性,这里的ServiceName就是要在服务器的服务中显示的名称,我将其命名我TimerService

image

7、右击解决方案,点击生成解决方案

三、安装

1、打开刚刚新建建项目所在的文件夹,找到bin文件下面的debug文件夹,即D:\用户目录\我的文档\Visual Studio 2013\Projects\TimerService\TimerService\bin\Debug,里面有个TimerService.exe应用程序,就是我们所要执行的项目

2、打开文件夹C:\Windows\Microsoft.NET\Framework\v4.0.30319,可以看到里面有一个InstallUtil.exe的应用程序,这就是我们要的安装工具,这里的Framework的版本与我们项目的Framework版本保持一致

3、打开cmd输入cd C:\Windows\Microsoft.NET\Framework\v4.0.30319指令,然后再输入InstallUtil D:\用户目录\我的文档\Visual~1\Projects\TimerService\TimerService\bin\Debug\TimerService.exe,即可完成安装

image

4、启动任务管理器,点击服务,找到名称TemrService的服务,右击启动,即可将创建的定时服务启动,这里的服务名称就是我们在项目的serviceInstaller1的属性里面设置的serviceName

image

5、在我们的D:\用户目录\我的文档\Visual Studio 2013\Projects\TimerService\TimerService\bin\Debug文件下面会发现多了一个log.txt的文件,就是我们在项目中创建的文件,打开即可看到项目正常执行

image

四、卸载

要卸载应用服务也很简单,只需要在cmd中输入以下指令即可

InstallUtil /u D:\用户目录\我的文档\Visual~1\Projects\TimerService\TimerService\bin\Debug\TimerService.exe

image