2023最新版本Activiti7系列-Activiti7概述和入门案例

news/2025/1/15 12:25:29/

一、Activiti7概述

在这里插入图片描述

官网地址:https://www.activiti.org/

  Activiti由Alfresco软件开发,目前最高版本Activiti 7。是BPMN的一个基于java的软件实现,不过Activiti 不仅仅包括BPMN,还有DMN决策表和CMMN Case管理引擎,并且有自己的用户管理、微服务API等一系列功能,是一个服务平台。

在这里插入图片描述

二、Activiti7的入门案例

官方手册:http://jeecg.com/activiti5.21/

1.创建SpringBoot项目

  现在开发中或者我们自己学习写案例都是通过SpringBoot脚手架工具来快速构建项目的。那么我们也就直接通过创建SpringBoot项目来给大家讲解相关的案例。创建一个普通的SpringBoot项目。指定版本为2.4.2即可
在这里插入图片描述

  然后添加对应的依赖:Activiti7的依赖和MySQL的依赖

<properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-boot.version>2.4.2</spring-boot.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.23</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.activiti</groupId><artifactId>activiti-spring-boot-starter</artifactId><version>7.0.0.GA</version></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version><configuration><mainClass>com.boge.act.PrepareDemo2Application</mainClass><skip>true</skip></configuration><executions><execution><id>repackage</id><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build>

相关的Activiti依赖加载进来了

在这里插入图片描述

到这儿基本环境就OK了

2.获取ProcessEngine

2.1 默认的方式

  在工作流引擎框架中,ProcessEngine是一个非常核心的对象,我们需要首先解决这个对象的获取。获取方式很多。先来看最简单的一个基于activiti.cfg.xml的XML文件的配置方式。

@Test
public void test1(){ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();System.out.println(processEngine);
}

  通过getDefaultProcessEngine方法加载会默认的从classpath路径下加载activiti.cfg.xml配置文件。我们添加该文件。内容如下:

<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti7" /><property name="jdbcDriver" value="com.mysql.cj.jdbc.Driver" /><property name="jdbcUsername" value="root" /><property name="jdbcPassword" value="123456" /><property name="databaseSchemaUpdate" value="true" /><property name="asyncExecutorActivate" value="false" /><property name="mailServerHost" value="mail.my-corp.com" /><property name="mailServerPort" value="5025" /></bean></beans>

然后我们就可以启动,但是出现了如下错误:
在这里插入图片描述

  出现这种情况只需要在mysql的连接字符串中添加上nullCatalogMeansCurrent=true,设置为只查当前连接的schema库即可。

<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti7?nullCatalogMeansCurrent=true" /><property name="jdbcDriver" value="com.mysql.cj.jdbc.Driver" /><property name="jdbcUsername" value="root" /><property name="jdbcPassword" value="123456" /><property name="databaseSchemaUpdate" value="true" /><property name="asyncExecutorActivate" value="false" /><property name="mailServerHost" value="mail.my-corp.com" /><property name="mailServerPort" value="5025" /></bean></beans>

然后执行程序正确。搞定。同时在数据库中创建了相关的表结构

在这里插入图片描述

2.2 编程方式获取

  上面的配置文件的方式中的配置文件其实是一个Spring的配置文件,但是这并不意味着Activiti只能用于Spring环境。我们也可以通过编程的方式来使用配置文件,从而来构建ProcessEngineConfiguration对象,具体的实现如下:

@Test
public void test2(){ProcessEngine engine = ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration().setJdbcUrl("jdbc:mysql://localhost:3306/activiti7?nullCatalogMeansCurrent=true").setJdbcDriver("com.mysql.cj.jdbc.Driver").setJdbcPassword("123456").setJdbcUsername("root").setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE).buildProcessEngine();System.out.println(engine);
}

上面讲解中的相关属性说明:

databaseSchemaUpdate:用于设置流程引擎启动关闭时使用的数据库表结构控制策略

  • false (默认): 当引擎启动时,检查数据库表结构的版本是否匹配库文件版本。版本不匹配时抛出异常。
  • true: 构建引擎时,检查并在需要时更新表结构。表结构不存在则会创建。
  • create-drop: 引擎创建时创建表结构,并在引擎关闭时删除表结构。

2.3 表结构介绍

  在Activiti7中。我们启动服务会自动维护Activiti7需要使用到的相关的表结构。在这块我们需要有个大概的了解。首先是支持的数据库有:

Activiti数据库类型示例JDBC URL备注
h2jdbc:h2:tcp://localhost/activiti默认配置的数据库
mysqljdbc:mysql://localhost:3306/activiti?autoReconnect=true已使用mysql-connector-java数据库驱动测试
oraclejdbc:oracle:thin:@localhost:1521:xe
postgresjdbc:postgresql://localhost:5432/activiti
db2jdbc:db2://localhost:50000/activiti
mssqljdbc:sqlserver://localhost:1433;databaseName=activiti (jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver) OR jdbc:jtds:sqlserver://localhost:1433/activiti (jdbc.driver=net.sourceforge.jtds.jdbc.Driver)已使用Microsoft JDBC Driver 4.0 (sqljdb

  Activiti的所有数据库表都以**ACT_**开头。第二部分是说明表用途的两字符标示符。服务API的命名也大略符合这个规则。

ACT_RE_*: RE代表repository。带有这个前缀的表包含“静态”信息,例如流程定义与流程资源(图片、规则等)。

ACT_RU_*: RU代表runtime。这些表存储运行时信息,例如流程实例(process instance)、用户任务(user task)、变量(variable)、作业(job)等。Activiti只在流程实例运行中保存运行时数据,并在流程实例结束时删除记录。这样保证运行时表小和快。

ACT_ID_*: ID代表identity。这些表包含身份信息,例如用户、组等。

ACT_HI_*: HI代表history。这些表存储历史数据,例如已完成的流程实例、变量、任务等。

ACT_GE_*: 通用数据。用于不同场景下

注意:MySQL数据库最好使用5.7及以上的版本

3.在线流程设计器

  接下来我们通过官方提供的流程设计器来实现一个简单流程的设计。然后完成相关的部署和流程整体操作。

官网下载地址:https://www.activiti.org/get-started 下载下来后解压缩

在这里插入图片描述

进入到wars中。提供的有Activiti-app.war

在这里插入图片描述

把这war包拷贝到Tomcat服务器中即可。注意Tomcat的版本不要高于8.5,然后Tomcat服务。访问 http://localhost:8080/activiti-app 即可。登录的账号密码是 admin test

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

点击create process 弹出窗口。录入相关的流程定义信息
在这里插入图片描述

绘制好流程图后。保存并下载对应的xml文件

在这里插入图片描述

得到的流程图的xml内容:

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/processdef"><process id="test1" name="test1" isExecutable="true"><documentation>test1</documentation><startEvent id="startEvent1"></startEvent><userTask id="sid-470631FF-51BA-4954-96BB-346B99CA0A2C" name="人事审批" activiti:assignee="zhangsan"><extensionElements><modeler:initiator-can-complete xmlns:modeler="http://activiti.com/modeler"><![CDATA[false]]></modeler:initiator-can-complete></extensionElements></userTask><sequenceFlow id="sid-B53369E8-E698-4F53-AE40-97E7654BFA78" sourceRef="startEvent1" targetRef="sid-470631FF-51BA-4954-96BB-346B99CA0A2C"></sequenceFlow><userTask id="sid-34454522-B109-41C9-8519-59D29B621099" name="经理审批" activiti:assignee="lisi"><extensionElements><modeler:initiator-can-complete xmlns:modeler="http://activiti.com/modeler"><![CDATA[false]]></modeler:initiator-can-complete></extensionElements></userTask><sequenceFlow id="sid-5AE88ADE-9FD3-48F2-81EF-528DA0C068CB" sourceRef="sid-470631FF-51BA-4954-96BB-346B99CA0A2C" targetRef="sid-34454522-B109-41C9-8519-59D29B621099"></sequenceFlow><endEvent id="sid-EA0332FA-59B0-45C0-9D24-47C78051D52C"></endEvent><sequenceFlow id="sid-F6C0657A-C92F-4DEA-AAB1-93750FFBD7E5" sourceRef="sid-34454522-B109-41C9-8519-59D29B621099" targetRef="sid-EA0332FA-59B0-45C0-9D24-47C78051D52C"></sequenceFlow></process><bpmndi:BPMNDiagram id="BPMNDiagram_test1"><bpmndi:BPMNPlane bpmnElement="test1" id="BPMNPlane_test1"><bpmndi:BPMNShape bpmnElement="startEvent1" id="BPMNShape_startEvent1"><omgdc:Bounds height="30.0" width="30.0" x="100.0" y="163.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="sid-470631FF-51BA-4954-96BB-346B99CA0A2C" id="BPMNShape_sid-470631FF-51BA-4954-96BB-346B99CA0A2C"><omgdc:Bounds height="80.0" width="100.0" x="175.0" y="138.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="sid-34454522-B109-41C9-8519-59D29B621099" id="BPMNShape_sid-34454522-B109-41C9-8519-59D29B621099"><omgdc:Bounds height="80.0" width="100.0" x="320.0" y="138.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="sid-EA0332FA-59B0-45C0-9D24-47C78051D52C" id="BPMNShape_sid-EA0332FA-59B0-45C0-9D24-47C78051D52C"><omgdc:Bounds height="28.0" width="28.0" x="465.0" y="164.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNEdge bpmnElement="sid-5AE88ADE-9FD3-48F2-81EF-528DA0C068CB" id="BPMNEdge_sid-5AE88ADE-9FD3-48F2-81EF-528DA0C068CB"><omgdi:waypoint x="275.0" y="178.0"></omgdi:waypoint><omgdi:waypoint x="320.0" y="178.0"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="sid-F6C0657A-C92F-4DEA-AAB1-93750FFBD7E5" id="BPMNEdge_sid-F6C0657A-C92F-4DEA-AAB1-93750FFBD7E5"><omgdi:waypoint x="420.0" y="178.0"></omgdi:waypoint><omgdi:waypoint x="465.0" y="178.0"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="sid-B53369E8-E698-4F53-AE40-97E7654BFA78" id="BPMNEdge_sid-B53369E8-E698-4F53-AE40-97E7654BFA78"><omgdi:waypoint x="130.0" y="178.0"></omgdi:waypoint><omgdi:waypoint x="175.0" y="178.0"></omgdi:waypoint></bpmndi:BPMNEdge></bpmndi:BPMNPlane></bpmndi:BPMNDiagram>
</definitions>

然后我们就可以做流程的部署操作了

4.流程操作

4.1 流程部署

  设计好了流程图我们就可以通过如下的代码完成流程的部署。

   /*** 流程部署操作*/@Testpublic void test3(){// 1.获取ProcessEngine对象ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();// 2.完成流程的部署操作 需要通过RepositoryService来完成RepositoryService repositoryService = processEngine.getRepositoryService();// 3.完成部署操作Deployment deploy = repositoryService.createDeployment().addClasspathResource("flow/test1.bpmn20.xml").name("第一个流程").deploy();System.out.println(deploy.getId());System.out.println(deploy.getName());}

流程部署的行为会涉及到数据库中的这两张表

在这里插入图片描述

然后我们可以通过Activiti提供的相关的API来获取流程部署和流程定义的相关信息

/*** 查询当前部署的流程有哪些*/
@Test
public void test4(){ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();RepositoryService repositoryService = engine.getRepositoryService();// 查询有哪些部署的流程--》查询相关的流程定义信息// repositoryService.createDeploymentQuery() 查询流程部署的相关信息// repositoryService.createProcessDefinitionQuery() 查询部署的流程的相关的定义List<Deployment> list = repositoryService.createDeploymentQuery().list(); // 查询所有的部署信息for (Deployment deployment : list) {System.out.println(deployment.getId());System.out.println(deployment.getName());}List<ProcessDefinition> list1 = repositoryService.createProcessDefinitionQuery().list();for (ProcessDefinition processDefinition : list1) {System.out.println(processDefinition.getId());System.out.println(processDefinition.getName());System.out.println(processDefinition.getDescription());}}

4.2 发起流程

  部署流程成功后。我们就可以发起一个流程。发起流程需要通过RuntimeService来实现。

/*** 发起一个流程*/
@Test
public void test5(){ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();// 发起流程 需要通过 runtimeService来实现RuntimeService runtimeService = engine.getRuntimeService();// 通过流程定义ID来启动流程  返回的是流程实例对象ProcessInstance processInstance = runtimeService.startProcessInstanceById("test1:1:3");System.out.println("processInstance.getId() = " + processInstance.getId());System.out.println("processInstance.getDeploymentId() = " + processInstance.getDeploymentId());System.out.println("processInstance.getDescription() = " + processInstance.getDescription());
}

发起流程成功后。在对应的act_ru_task中就有一条对应的待办记录。

在这里插入图片描述

对应的流程状态如下:

在这里插入图片描述

4.3 查询流程

  用户登录后要查看待办的任务信息。我们需要通过TaskService来实现查询操作。具体代码如下:

/*** 待办查询*/@Testpublic void test6(){ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();// 待办查询 执行中的任务处理通过 TaskService来实现TaskService taskService = engine.getTaskService();// Task 对象对应的其实就是 act_ru_task 这张表的记录List<Task> list = taskService.createTaskQuery().taskAssignee("lisi").list();if(list != null && list.size() > 0){for (Task task : list) {System.out.println(task.getId());System.out.println(task.getName());System.out.println(task.getAssignee());}}else{System.out.println("当前没有待办任务");}}

4.4 审批流程

  当前登录用户查看到相关的待办信息后。可以做流程的审批处理。

/*** 任务审批*/
@Test
public void test7(){ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();// 做任务申请 也需要通过 TaskService 来实现TaskService taskService = engine.getTaskService();// 根据当前登录用户查询出对应的待办信息List<Task> list = taskService.createTaskQuery().taskAssignee("lisi").list();if(list != null && list.size() > 0){for (Task task : list) {// 做对应的任务审批处理taskService.complete(task.getId());}}// 完成任务// taskService.complete("2505");
}

5.涉及表结构

  上面一个审批涉及到的表结构的介绍

表名说明
act_re_deployment部署流程的记录表:一次部署行为会产生一张表
act_re_procdef流程定义表:一张流程图对应的表
act_hi_procinst流程实例表:发起一个流程。就会创建对应的一张表
act_ru_task流程待办表:当前需要审批的记录表,节点审批后就会被删除
act_hi_actinst历史记录:流程审批节点的记录信息

在这里插入图片描述

6.流程设计器持久化

  流程设计器默认是通过H2来完成数据的存储的。而H2是基于内存来存储的。所以重启服务后数据就丢失了。这时我们可以设置流程设计器的存储方式为MySQL。这样就能持久化的实现存储了。具体步骤如下:

在这里插入图片描述

调整数据库的连接信息。记得同时需要创建对应的数据库
在这里插入图片描述

切换了数据的存储方案后。我们需要记得把对应的数据库的驱动拷贝进来

在这里插入图片描述

在这里插入图片描述

然后我们就可以重启服务测试了。如果出现下面的错误,降低MySQL驱动的版本到8.0.19

在这里插入图片描述

配置的时区不配支持。我们需要添加

在这里插入图片描述

启动成功后。在数据库中会维护相关的表结构

在这里插入图片描述

该操作中需要注意的点:

  1. 修改配置文件中的信息关键是连接地址的路径:jdbc:mysql://localhost:3306/activiti6ui?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true

  2. MySQL的驱动版本不要高于8.0.19,不然会出现LocalDataTime转换的问题

7.流程设计器汉化说明

  流程设计器的汉化操作

{"GENERAL": {"MAIN-TITLE": "Activiti","ERROR": {"GENERIC": "抱歉,发生了一个错误。","UNKNOWN": "抱歉,执行请求的操作时出错。","BAD_REQUEST": "执行请求的操作时出错。","NOT_FOUND": "您试图访问的资源不存在。","UNAUTHORIZED": "您应该登录才能执行请求的操作。","FORBIDDEN": "不允许您执行请求的操作。","INTERNAL_SERVER_ERROR": "抱歉,执行请求的操作时发生意外错误。","QUOTA-EXCEEDED-RUNTIME-APPS": "作为试用用户,您只能同时部署 {{quota}} 应用程序。","QUOTA-EXCEEDED-LICENSE-APPS": "许可证只允许同时部署 {{quota}} 应用程序。"},"ACTION": {"LOGOUT": "退出","HELP": "入门","EDIT-PROFILE": "编辑配置文件","SAVE": "保存","CANCEL": "取消","CLOSE": "关闭","DEPLOY": "部署","ABOUT": "关于Alfresco Activiti"}},"LOGIN": {"TITLE": "登录","USERNAME": "用户名","USERNAME-PLACEHOLDER": "输入您的用户名","PASSWORD": "密码","PASSWORD-PLACEHOLDER": "输入您的密码","INVALID-CREDENTIALS": "域相关参数设置有误","ACTION": {"CONFIRM": "登录"}},"ACCOUNT": {"ACTIVATE": {"TITLE": "激活帐户","ACTIVATING-MESSAGE": "请稍候 {{userFullName}} 我们正在激活您的帐户。","SUCCESS-MESSAGE": "您的帐户已激活。请在下面登录以开始设计和运行流程。","FAILURE-MESSAGE": "无法激活您的帐户。它已被激活或激活链接已过期。"},"RESET-PASSWORD-REQUEST": {"MESSAGE": "忘记密码了?在下面输入您的电子邮件地址以接收电子邮件以重置密码。","TITLE": "重置密码","EMAIL": "电子邮件地址","EMAIL-PLACEHOLDER": "输入您的电子邮件","SECURITY-SECTION": "安全检查","CONFIRM": "请求密码重置","SUCCESS-MESSAGE": "您将很快收到一封邮件,其中包含重置密码的链接","ERROR": {"UNEXISTING-USER": "具有给定电子邮件地址的用户不存在。"}},"RESET-PASSWORD": {"TITLE": "重置密码","PASSWORD": "密码","PASSWORD-CONFIRM": "确认密码","PASSWORD-PLACEHOLDER": "输入新密码","PASSWORD-CONFIRM-PLACEHOLDER": "确认新密码","CONFIRM": "更改密码","LOADING": "正在重置密码...","SUCCESS-MESSAGE": "您的密码已更改。","LOGIN": "马上登录","FAILURE-MESSAGE": "您的密码无法重置。重置链接无效或已过期。"}},"APP": {"KICKSTART": {"TITLE": "启动程序","DESCRIPTION": "创建流程模型、表单和应用程序定义,然后与其他人共享您的模型和定义。"},"TASKS": {"TITLE": "任务应用程序","DESCRIPTION": "访问您的完整任务列表,并从任何流程应用程序处理分配给您的任何任务。同时,启动新的流程和任务。"},"IDENTITY-MANAGEMENT": {"TITLE": "身份管理","TITLE-TENANT-ADMIN": "身份管理","DESCRIPTION": "管理您的配置文件:更改图片、名称和其他设置。作为管理员用户,管理用户和组。","DESCRIPTION-TENANT-ADMIN": "管理组织中的用户和组。"},"CUSTOM-APP" : {"TITLE-TASKS": "任务","TITLE-PROCESSES": "流程"},"POPUP" : {"ADD-APP-TITLE": "将App添加到登录页","ADD-APP-SUMMARY": "将App添加到登录页"},"ACTION": {"DELETE": "删除App"},"MESSAGE": {"DELETED": "已成功删除App"}}
}

http://www.ppmy.cn/news/281850.html

相关文章

opencv、dlib、paddlehub人脸检测

opencv、dlib、paddlehub检测效果对比。dlib和paddlehub的效果相对好一点。 说明&#xff1a;本文只做人脸检测不识别&#xff0c;找识别的不用看本文。 ## 部署说明 # 1. 安装python或conda # 2. 安装依赖&#xff0c;pip install -r requirements.txt # 3. 192.168.1.41 修…

小米电脑恢复系统

1先打开设置,选择Windows更新: 2然后选择高级选项: 3选择恢复: 4 重置此电脑,选择初始化电脑: 5保留我的文件: 6选择本地安装即可.

重置电脑 DELL

1.保存好自己的资料&#xff0c;不要放在C盘&#xff0c;正常情况桌面、我的文档都在C盘 2.按住shift键重启电脑 shift键一直按住&#xff0c;出现新界面松手Shift键 3.选择 疑难解答 4.再选择 重置此电脑&#xff08;第一个选项 保留文件&#xff0c;但是还是建议你先保存文件…

Windows10重置系统

1、点击设置 2、点击更新和安全 3、点击恢复 可以选择保留文件 我更喜欢全部删除&#xff0c;这样电脑会重置的更彻底 等待系统重置完成 会发现D盘的文件还在&#xff0c;实际上只删除了C盘的文件

重置电脑

步骤1&#xff1a; 以Win10系统为例 直接在搜索框输入:reset 或者直接选择「设置」-「更新和安全」-「恢复」 步骤2&#xff1a; 步骤3&#xff1a; 根据个人情况选择【保留我的文件】或者【删除所有内容】

win10 sysprep系统重置

从同一虚拟机母板克隆出多台 VM 之后&#xff0c;其 SID 势必会相同&#xff0c;在加入域时会造成安全主体的识别混乱和加域失败等。对于同一局域网中&#xff0c;存在相同 SID 的计算机或账户也可能会导致很多奇怪的问题&#xff0c;特别是权限和安全方面的问题 IT 管理员采用…

麒麟操作系统之重置密码

​日常工作中&#xff0c;难免会遇到忘记系统密码的情况&#xff0c;面对此种境况&#xff0c;若不懂得如何重置密码&#xff0c;不懂得进入救援模式&#xff0c;电脑就要变板砖了&#xff0c;影响工作和学习&#xff0c;所以&#xff0c;学会重置系统密码尤为重要&#xff0c;…

win7计算机怎么重置,win7系统的电脑如何重置 win7重置电脑的方法

电脑的使用时间长了之后就会出现很多七七八八的小问题&#xff0c;比如无法打开电脑中的应用程序或者是打开速度慢&#xff0c;关机时间长&#xff0c;运行过程中经常卡顿等现象&#xff0c;现在大多电脑中安装的都是win10系统&#xff0c;如果遇到类似问题的话我们只需要重置一…