目录
- Win10开机直达桌面并跳过锁屏登录界面
- 修改组策略
- 修改注册表
- 跳过登录界面
- 在 Windows 10 中添加在启动时自动运行的应用
- 设置系统级别服务
- 一、Windows下使用`sc`将应用程序设置为系统服务
- 1. 什么是`sc`命令?
- 2. `sc`命令的基本语法
- 3. 创建Windows服务的步骤与示例
- 创建服务
- 参数解释:
- 其他可选参数:
- 配置服务
- 启动服务
- 停止服务
- 删除服务
- 4. 设置Windows服务的好处与坏处
- 好处
- 坏处
- 5. 设置Windows服务的作用
- 6. 设置Windows服务时需要注意的雷区
- 二、Linux下使用`systemctl`将应用程序设置为系统服务
- 1. 什么是`systemctl`命令?
- 2. `systemctl`命令的基本语法
- 3. 创建Linux服务的步骤与示例
- 创建服务文件
- 参数解释
- 启用并启动服务
- 检查服务状态
- 停止和禁用服务
- 4. 设置Linux服务的好处与坏处
- 好处
- FQA
- 没有组策略怎么办?
- 系统服务和开机自启动服务的区别?
- 1. 系统服务
- 2. 开机自启动服务
- 3. 区别总结
- 如何关闭windows防火墙
- 如何开放windows端口
Win10开机直达桌面并跳过锁屏登录界面
通常情况下,无论是否设置密码,打开Win10系统时都会首先显示锁定屏幕界面。此锁定屏幕界面也称为Windows聚焦。
如果是家用计算机,在无需考虑安全问题的前提下您也可以直接跳过登录界面。
修改组策略
按下 Win+R 打开运行窗口,输入 gpedit.msc 后回车。
打开组策略窗口后,依次展开计算机配置—管理模板—控制面板—个性化。
然后单击选中个性化,选择右边设置栏的不显示锁屏。
双击不显示锁屏,在弹出的窗口中勾选已启用并确定。
修改注册表
按下Win+R打开运行窗口,输入regedit,按下回车。打开注册表后,依次展开或直接导航到:HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows
右键单击 Windows,新建一个项并命名为 Personalization。
选中 Personalization,在右边窗口新建一个 DWORD(32位)值。
将新建的值命名为 NoLockScreen,然后双击将数值数据改为 1,确定后重启即可。
跳过登录界面
按下 Win+R 打开运行,输入 netplwiz。
打开后,取消勾选要使用本计算机,用户必须输入用户名和密码。
点击确定后,会弹出自动登录框,验证你的密码。
输入登录密码后确定即可。
操作完成,就可以跳过锁屏登录,直接进入系统桌面了。
如果在 netplwiz 或 control userpasswords2 的窗口中没有看到“用户必须输入用户名和密码才能使用此计算机”的选项,这可能是因为你的系统是 Windows 10 的某个更新版本,或者你的计算机是加入到域中的,或者是其他安全策略限制了这个选项的显示。
在这种情况下,可以尝试直接通过注册表来设置自动登录:
-
通过注册表设置自动登录:打开注册表编辑器: 按 Win + R 键,输入 regedit,然后按回车。
-
导航到登录设置: 导航到以下路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
-
修改或创建值: 在右侧窗格中,找到或创建以下值(类型为 REG_SZ):
- AutoAdminLogon:如果不存在,右键点击空白处,选择“新建” -> “字符串值”,命名为 AutoAdminLogon,并设置其值为 1。
- DefaultUserName:设置为你想要自动登录的用户名。
- DefaultPassword:设置为该用户的密码。如果不存在,同样需要创建一个新的字符串值。
-
重启计算机: 完成设置后,关闭注册表编辑器并重启计算机。
在注册表中添加或修改 DefaultPassword 会将密码以明文形式存储,这可能会带来安全风险。
在 Windows 10 中添加在启动时自动运行的应用
-
选择“开始”按钮 ,然后滚动查找你希望在启动时运行的应用。
-
右键单击该应用,选择“更多”,然后选择“打开文件位置”。 此操作会打开保存应用快捷方式的位置。 如果没有“打开文件位置”选项,这意味着该应用无法在启动时运行。
-
文件位置打开后,按 Windows 徽标键+ R,键入“shell:startup”,然后选择“确定”。 这将打开“启动”文件夹。
-
将该应用的快捷方式从文件位置复制并粘贴到“启动”文件夹中。
设置系统级别服务
系统服务(System Service)是指在操作系统后台运行的一类程序,它们通常在系统启动时自动启动,并且在系统运行的过程中持续运行,直到系统关闭或服务被手动停止。系统服务通常用于执行长期运行的任务,例如网络服务、数据库管理、后台任务处理等。
系统服务的主要作用包括:
- 持续运行:系统服务能够在后台持续运行,而不需要用户登录或手动启动。这对于需要长时间运行的任务(如Web服务器、数据库服务等)非常重要。
- 自动启动:系统服务可以在系统启动时自动启动,确保服务在系统启动后立即可用。
- 资源管理:系统服务通常运行在特定的用户上下文或权限下,操作系统会对这些服务进行资源管理和权限控制,确保系统的稳定性和安全性。
- 后台任务:许多后台任务如日志处理、定时任务调度等,都是通过系统服务来实现的。
设置应用程序为系统服务可以确保应用程序在系统启动时自动启动,并在后台持续运行。Windows和Linux都有各自的服务管理工具,分别是sc
(Service Control)和systemctl
。本文将详细介绍如何在Windows和Linux系统下使用这些工具将应用程序设置为系统服务,包括举例和参数详解,并讨论其优缺点、作用及注意事项。
一、Windows下使用sc
将应用程序设置为系统服务
1. 什么是sc
命令?
sc.exe
是Windows操作系统中的一个命令行工具,用于创建、配置、启动、停止和删除Windows服务。通过sc
命令,用户可以管理服务的生命周期、设置服务启动类型、配置依赖项等。
2. sc
命令的基本语法
sc
命令的基本语法如下:
sc [command] [service name] [option1] [option2] ...
常用命令包括create
(创建服务)、start
(启动服务)、stop
(停止服务)、delete
(删除服务)、config
(配置服务)等。
3. 创建Windows服务的步骤与示例
创建服务
使用sc create
命令创建一个服务。以下是一个基本示例:
sc create MyAppService binPath= "C:\Path\To\YourApp.exe" start= auto
参数解释:
MyAppService
:服务的名称。binPath=
:应用程序的完整路径。注意,等号=
后面必须有一个空格。start=
:服务的启动类型。可选值包括:auto
:系统启动时自动启动服务。manual
:手动启动服务。disabled
:禁用服务,无法启动。
其他可选参数:
DisplayName=
:服务在服务管理器中显示的名称。sc create MyAppService binPath= "C:\Path\To\YourApp.exe" start= auto DisplayName= "My Application Service"
depend=
:指定服务的依赖项,即服务启动前必须启动的其他服务。多个服务名称之间用斜杠(/
)分隔。sc create MyAppService binPath= "C:\Path\To\YourApp.exe" start= auto depend= Tcpip/Afd
obj=
:指定服务以哪个用户账户运行。默认是LocalSystem
,也可以指定其他用户。sc create MyAppService binPath= "C:\Path\To\YourApp.exe" start= auto obj= "NT AUTHORITY\NetworkService"
配置服务
创建服务后,可以使用sc config
命令来进一步配置服务:
sc config MyAppService start= demand
此命令将服务的启动类型设置为手动(demand
)。
启动服务
使用sc start
命令启动服务:
sc start MyAppService
停止服务
使用sc stop
命令停止服务:
sc stop MyAppService
删除服务
如果你不再需要该服务,可以使用sc delete
命令删除它:
sc delete MyAppService
4. 设置Windows服务的好处与坏处
好处
- 自动化:服务可以在系统启动时自动启动,无需用户手动操作。
- 后台运行:服务在后台运行,不占用用户的界面空间,适合长时间运行的任务。
- 系统资源优先级:系统服务通常比普通应用程序拥有更高的优先级,可以保证关键任务的执行。
- 集中管理:Windows提供了一个统一的服务管理控制台(
services.msc
),可以集中管理所有服务。
坏处
- 调试困难:服务通常在后台运行,调试不如前台应用程序方便。
- 资源占用:长时间运行的服务可能会持续占用系统资源,特别是在资源有限的情况下。
- 权限问题:服务通常以系统用户运行,如果配置不当,可能引发权限相关的安全问题。
- 复杂性:管理服务需要一定的技术知识,特别是涉及到依赖关系和权限配置时。
5. 设置Windows服务的作用
将应用程序设置为Windows服务的主要作用是确保应用程序能够在后台持续运行,执行系统级别的任务。例如:
- 服务器应用程序:如Web服务器、数据库服务器等需要长时间运行的应用。
- 监控工具:如系统监控、网络监控等需要持续收集数据的工具。
- 自动化任务:如定期执行的任务、计划任务、数据备份等。
6. 设置Windows服务时需要注意的雷区
- 权限管理:服务通常以高权限运行,确保不要滥用权限以避免安全问题。特别是,尽量不要使用
LocalSystem
账户运行不必要的服务。 - 依赖关系:如果服务依赖其他服务或系统资源,确保依赖项在服务启动前已就绪,否则可能导致启动失败。
- 资源管理:长时间运行的服务应关注资源管理问题,如内存泄漏、文件句柄泄漏等。
- 日志记录和调试:设置适当的日志记录机制,方便在出现问题时进行调试和故障排查。
- 配置变化:服务配置发生变化时,如路径或依赖项变化,要及时更新服务配置。
二、Linux下使用systemctl
将应用程序设置为系统服务
1. 什么是systemctl
命令?
systemctl
是Linux系统中的命令行工具,用于与systemd
交互,管理系统和服务的启动、停止、重新启动等。systemd
是目前大多数Linux发行版默认的系统和服务管理器。
2. systemctl
命令的基本语法
systemctl
命令的基本语法如下:
systemctl [command] [service name]
常用命令包括start
(启动服务)、stop
(停止服务)、restart
(重启服务)、enable
(开机自动启动服务)、disable
(禁用服务)等。
3. 创建Linux服务的步骤与示例
创建服务文件
在systemd
中,每个服务都有一个服务文件,通常位于/etc/systemd/system/
或/lib/systemd/system/
目录下。服务文件的扩展名为.service
。
例如,我们要创建一个名为myapp.service
的服务文件:
sudo nano /etc/systemd/system/myapp.service
在该文件中输入以下内容:
[Unit]
Description=My Application Service
After=network.target[Service]
ExecStart=/usr/bin/myapp
Restart=on-failure
User=myuser
Group=mygroup[Install]
WantedBy=multi-user.target
参数解释
-
[Unit]
段:Description
:服务的描述信息。After
:定义服务启动的顺序。在network.target
之后启动,确保网络服务已就绪。
-
[Service]
段:ExecStart
:定义服务的启动命令或可执行文件的路径。Restart
:定义服务失败后的重启策略。on-failure
表示当服务失败时自动重启。User
和Group
:定义服务运行的用户和组,确保服务在合适的权限下运行。
-
[Install]
段:WantedBy
:定义服务的目标运行级别。multi-user.target
表示在多用户模式下运行。
启用并启动服务
创建服务文件后,需使用以下命令重新加载systemd
配置:
sudo systemctl daemon-reload
然后启用并启动服务:
sudo systemctl enable myapp.service
sudo systemctl start myapp.service
检查服务状态
可以使用以下命令检查服务的运行状态:
systemctl status myapp.service
停止和禁用服务
要停止服务,可以使用以下命令:
sudo systemctl stop myapp.service
要禁用服务(使其不再开机自动启动),可以使用以下命令:
sudo systemctl disable myapp.service
4. 设置Linux服务的好处与坏处
好处
- 自动化:服务可以在系统启动时自动启动,无需用户干预。
- 后台运行:服务在后台运行,不占用终端或界面资源。
- 集中管理:Linux使用
systemd
统一管理系统服务,使得服务管理更加高效和集中。 - 可靠性:通过
Restart
策略,可以实现服务的自动重启,增强
FQA
没有组策略怎么办?
Windows 规格下就可以查看到Win11系统的版本,一般情况下,使用家庭版的Win11系统,是没有gpedit.msc的。
向记事本输入以下批处理文件代码:
@echo offpushd "%~dp0"dir /b %SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum > List.txt
dir /b %SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >> List.txtfor /f %%i in ('findstr /i . List.txt 2^>nul') do (dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
)pause
-
@echo off
- 关闭命令行回显。这意味着脚本运行时不会显示执行的命令,只会显示结果。
-
pushd “%~dp0″
- 切换当前工作目录到脚本所在的目录。
%~dp0
是脚本所在目录的路径。pushd
命令可以将当前目录压入堆栈,以便稍后用popd
命令返回。
-
dir /b %SystemRoot%servicingPackagesMicrosoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum > List.txt
- 列出目录
%SystemRoot%servicingPackages
下所有以Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3
开头且扩展名为.mum
的文件,并将这些文件名保存到List.txt
文件中。 dir /b
参数表示以简洁模式显示文件名,不显示其他信息。
- 列出目录
-
dir /b %SystemRoot%servicingPackagesMicrosoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >> List.txt
- 列出目录
%SystemRoot%servicingPackages
下所有以Microsoft-Windows-GroupPolicy-ClientTools-Package~3
开头且扩展名为.mum
的文件,并将这些文件名追加到List.txt
文件中。 >>
表示将结果追加到现有的List.txt
文件,而不是覆盖它。
- 列出目录
-
for /f %%i in ('findstr /i . List.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%servicingPackages%%i"
- 这个
for
循环读取List.txt
中每一行的文件名,将每个文件名传递给dism
命令进行处理。 findstr /i . List.txt
用于查找文件List.txt
中的所有行(即所有文件名)。dism /online /norestart /add-package:"%SystemRoot%servicingPackages%%i"
命令用于将从List.txt
中读取的每个.mum
文件添加到当前运行的Windows系统中。dism
是一个Windows自带的工具,用于安装、卸载、配置、更新Windows功能包。
- 这个
-
pause
- 暂停脚本执行,等待用户按下任意键。通常用于在脚本运行结束后让用户有机会查看输出。
该脚本中使用的 .mum
文件是Windows功能包(或更新包)的清单文件。.mum
文件描述了如何安装或卸载一个更新或功能包。它们存放在 %SystemRoot%servicingPackages
目录下,这通常对应 C:\Windows\servicing\Packages
。
这些 .mum
文件是系统自带的,通常在Windows安装过程中或通过Windows Update更新时被下载和存储。因此,安装的源是本地系统存储的Windows功能包或更新包,而不是从外部下载。
这个脚本通过DISM工具批量安装或添加与组策略相关的功能包,它使用的源是Windows系统本身的功能包文件存储目录。只要这些功能包与当前系统兼容,运行脚本不会对系统造成损害。
将批处理脚本存储为.bat文件:
在桌面,右键点击刚才创建好的批处理文件,打开的菜单项中,选择以管理员身份运行。
最后,等批处理文件的命令执行完成后,就可以关闭该窗口了。
系统服务和开机自启动服务的区别?
系统服务和开机自启动服务都是在操作系统启动时执行的任务或程序,但它们之间有一些关键的区别:
1. 系统服务
定义: 系统服务(System Service)是由操作系统管理的后台进程,通常在没有用户登录的情况下就可以启动和运行。这些服务通常由系统管理员或操作系统本身来配置和管理。
运行方式: 系统服务在后台运行,没有用户界面,不依赖于用户会话,通常是长期运行的进程。系统服务通常由操作系统的服务管理器(如Windows的services.msc
或Linux的systemd
)管理。
启动时机: 系统服务通常在操作系统启动的早期阶段就会被启动,可以在用户登录之前启动。这使得系统服务适合处理系统级的任务,比如网络管理、安全监控、数据库服务等。
示例:
- Windows上的
Windows Update
服务、Print Spooler
服务 - Linux上的
Apache
服务、SSH
服务
管理工具:
- Windows:
services.msc
、sc
命令、PowerShell
- Linux:
systemctl
命令、service
命令
2. 开机自启动服务
定义: 开机自启动服务(Startup Programs)是指在用户登录后自动启动的应用程序或脚本。它们通常用于为用户会话提供服务或加载用户偏好的应用程序。
运行方式: 开机自启动服务通常在用户登录到操作系统后启动,可能包含用户界面或者在系统托盘中显示图标。这些服务运行在用户会话中,通常会受到用户会话状态的影响。
启动时机: 开机自启动服务在操作系统完成启动并加载用户桌面环境后启动。它们依赖于用户的登录操作,因此在系统启动初期并不运行。
示例:
- Windows上的某些常驻程序,比如杀毒软件、即时通讯工具
- Linux桌面环境中的自动启动应用程序,比如Gnome或KDE桌面的自启动应用
管理工具:
- Windows:
任务管理器
中的启动
选项卡、msconfig
工具、注册表
- Linux: 各种桌面环境的启动应用程序设置,或通过
~/.config/autostart/
目录管理
3. 区别总结
-
启动时机: 系统服务在系统启动时或更早阶段启动,而开机自启动服务则在用户登录后启动。
-
运行环境: 系统服务通常在系统级别运行,不依赖于用户登录,开机自启动服务则依赖于用户会话,并在用户的权限下运行。
-
管理方式: 系统服务由系统服务管理工具(如
systemctl
、services.msc
)管理,而开机自启动服务通常由用户级工具或桌面环境来管理。 -
用途: 系统服务适用于提供系统级服务(如网络、数据库),而开机自启动服务通常用于为用户提供应用程序或环境初始化。
如何关闭windows防火墙
通过控制面板:
- 打开“控制面板”(可以通过在开始菜单搜索“控制面板”来找到它)。
- 点击“系统和安全”。
- 点击“Windows 防火墙”。
- 在左侧菜单中,点击“打开或关闭 Windows 防火墙”。
- 对于每种网络位置设置(域网络、私有网络、公共网络),选择“关闭 Windows 防火墙(不建议)”选项。
- 点击“确定”保存设置。
通过命令行:
-
打开命令提示符(以管理员身份)。
-
输入以下命令来分别关闭域、私有和公共网络的防火墙:
netsh advfirewall set allprofiles state off
-
按回车执行命令。
通过 PowerShell:
-
打开 PowerShell(以管理员身份)。
-
输入以下命令来分别关闭域、私有和公共网络的防火墙:
Set-NetFirewallProfile -Profile Domain,Private,Public -Enabled False
-
按回车执行命令。
如何开放windows端口
在 Windows 系统中,放通某个端口通常指的是在 Windows 防火墙中创建一个规则,允许通过该端口的网络流量。以下是在 Windows 上放通端口的步骤:
通过图形用户界面 (GUI):
- 打开控制面板。
- 点击“系统和安全”。
- 点击“Windows 防火墙”。
- 在左侧菜单中,点击“高级设置”。
- 在“Windows 防火墙与高级安全”窗口中,点击“入站规则”或“出站规则”,取决于你想要放通入站还是出站流量。
- 在右侧菜单中,点击“新建规则…”。
- 在规则类型中选择“端口”。
- 点击“下一步”,然后选择“TCP”或“UDP”,并指定具体的端口号或端口范围。
- 点击“下一步”,选择“允许连接”。
- 再次点击“下一步”,如果需要,可以选择适用的网络类型(例如,域、私有、公共)。
- 给规则命名,可以添加描述,然后点击“完成”。
通过命令行 (使用 netsh)
-
打开命令提示符(以管理员身份)。
-
输入以下命令,替换 为你想要放通的端口号, 为你想要创建的规则名称:
netsh advfirewall firewall add rule name="<RuleName>" dir=in action=allow protocol=TCP localport=<PortNumber>
-
如果需要放通 UDP 端口,将 protocol=TCP 改为 protocol=UDP。
-
按回车执行命令。
通过 PowerShell:
-
打开 PowerShell(以管理员身份)。
-
输入以下命令,替换 为你想要放通的端口号, 为你想要创建的规则名称:
New-NetFirewallRule -DisplayName "<RuleName>" -Direction Inbound -Protocol TCP -LocalPort <PortNumber> -Action Allow
-
如果需要放通 UDP 端口,将 -Protocol TCP 改为 -Protocol UDP。
-
按回车执行命令。