一种通过软件自动解锁Windows方法与流程

文档序号:26050920发布日期:2021-07-27 15:25阅读:892来源:国知局
一种通过软件自动解锁Windows方法与流程

本发明专利涉及一种通过软件自动解锁windows方法,适用于客户端,网页自动化操作或者必须登录才能操作领域。



背景技术:

当计算机锁屏的时候,我们需要解锁windows进入系统有三种方式,一种是通过锁屏界面输入密码等凭据信息的标准方式。第二种就是通过诸如usb-key,蓝牙等外围设备解锁的外设方式。最后一种就是指纹,虹膜生物识别方式解锁方式;

1.标准方式:解锁登录windows的时候,虽然可以通过微软提供接口自定义锁屏解锁的界面以及输入凭据信息,但是始终需要人工手动输入凭据信息。

2.生物识别:比较有名的应该了解过的产品就是thinkpad的指纹解锁功能,通过验证指纹来解锁计算机。这类指纹,虹膜等生物识别技术前提需要录入生物识别信息,并且解锁的时候对识别环境要求比较高,譬如指纹识别的时候,若手处于湿脏的情况下,很容易影响识别从而解锁登录失败。并且不同生物识别解锁方式需要对应不同硬件才能支持。

3.外设方式:诸如通过蓝牙自动解锁windows,虽然达到自动解锁的要求,但是蓝牙传输范围有效性限制蓝牙设备必须在一定范围内才能解锁成功,而且需要依赖第三方软件供应商支持。如果蓝牙设备处于不受控的情况下,很容易解锁登录操作计算机内容泄露。

4.在rpa实施过程中,为了降低人为因素解锁windows,通常还会采用开启计算机远程桌面,然后通过windows原生方式或者第三方保持rdp会话保持,达到一直保持windows处于登录状态。这种方式问题在于实施人员的介入而且保持rdp会话后会出现分辨率变化情况,从而造成依赖于分辨率自动化的步骤失败。

在rpa流程中,编写预先设计好使用规则,就可以模拟人工,进行复制、粘贴、点击、输入等行为,协助人类完成大量“规则较为固定、重复性较高、附加值较低”的事情。这些规则或者模拟人工操作的行为很大部分依赖于windows处于登录状态,若处于锁屏状态的时候模拟人工诸如网页或者客户端操作很容易受到影响从而影响实际效果。就上述标准方式和硬件方式来完成windows解锁的时候时候,就需要直接或者间接人为因素从而降低rpa的无人值守的自动化意义。



技术实现要素:

本发明的目的就是为了解决以上方法中存在的显著缺陷,提出一种无介入、可靠性而且基于程序windows解锁登录方法。

为实现上述目的,本发明提出一种程序windows解锁登录方法包含以下步骤:

步骤一、安装云扩windows屏幕解锁服务,安装成功后锁屏登录界面会多出一项“云扩windows屏幕解锁服务”;

步骤二、在rpa编写流程的时候,将解锁组件放置需要用到地方,诸如网页或者客户端开始地方,填写用户名和密码,超时时间即可;

步骤三、流程运行的时候,若计算机处于锁屏状态,则云扩windows屏幕解锁服务会开始轮询检查凭据,若凭据存在,并触发windows解锁,若提供的用户名以及密码正确,windows将解锁成功,若提供的用户名以及密码错误,将在锁屏登录界面看到登录失败的提示信息。

优选的,步骤三中windows解锁步骤如下:实现在windows7以上系统中,微软提供了一种接口,就是credentialproviders,credentialproviders译为凭据提供者/商,所谓凭据就是提供了一种身份认证的方式,通过实现credentialproviders中接口定义锁屏界面信息,在云扩windows屏幕解锁服务,去掉一切可以点击或者需要输入界面元素信息,仅仅保留“云扩windows屏幕解锁服务”提示信息,而在其接口抽象方法通过参数返回告知系统支持开机从未登录以及已经登录过锁屏两种方式解锁,并且实现当系统进入锁屏状态的时候开启轮询定时任务读取特定地址内存地址数据,若内存数据存在则手动触发windows解锁动作,并且将获取的数据传递到指定抽象方法内,同时基于是开机未登录锁屏还是已经登录过锁屏两种方式构建windows登录凭据完成windows解锁登录。

优选的,步骤二中解锁组件,属性包含用户名,密码以及超时,流程运行到解锁组件的时候,首先判断对应用户是否处于解锁登录状态,若处于解锁登录状态则继续往下运行。若处于锁屏未登录状态,基于填写用户名,密码数据写入特定地址内存中,并开始在指定超时范围内轮询判断该用户是否已经解锁登录,若轮询过程中该用户已经处于解锁登录则流程继续正常往下执行,若超时到了,则提示错误信息。

优选的,所述的步骤二中解锁组件进行如下改进:流程运行到解锁组件的时候,首先创建特定名称的互斥锁,并且将用户名,密码凭据信息使用(dpapi)windows操作系统中可用的数据保护api的方式加密处理后再写入特定地址内存中,在轮询判断对应用户是否解锁登录成功或者超时两种情况后,立即释放销毁互斥锁以及特定地址内存数据,进而保证数据时效性和可控性。

优选的,所述的步骤一中在云扩windows屏幕解锁服务部分进行如下改进:当系统进入锁屏状态后,启动定时轮询检查特定名称的互斥锁是否存在,若存在则,读取特定内存地址数据后解密,触发windows解锁后,立即释放销毁互斥锁以及特定地址内存数据,停止轮询任务。

与现有技术相比,本发明的有益效果是:与标准方式对比:登录解锁windows,锁屏界面会需要密码凭据信息。而本方法自定义锁屏时候登录界面,去除了需要输入元素信息,同时增加标注是自动解锁文字提示信息。

与生物识别方式对比:本方法无需采购第三方生物识别硬件,减少成本投入,而且适用于本机所有windows用户,避免前期若没有录入生物识别信息登录不了问题。

与外设方式对比:外设方式虽然达到能够自动解锁windows效果,但是需要诸如蓝牙传输协议支持以及也同时需要提前安装第三方软件来支持。所以本方式减少外设设备购买购入,同时解决必须在到一定范围内才能解锁登录问题。

与rdp会话保持方式对比:本方法减少实施维护成本,同时也不需要开启计算器远程选项,对于安全性要求高企业避免修改策略从而带来安全性风险。也规避因为rdp会话保持带来分辨率变化造成涉及到分辨率自动化步骤失败的问题。

附图说明

图l是为本发明实施例的流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本实施例提供一种技术方案:参照图1所示,

1.基于credentialproviders接口实现自定义“云扩windows屏幕解锁服务”身份认证的方式,主要步骤如下:

a.实现其icredentialprovidercredential接口,并且定义解锁显示界面fielddescriptor的类型为cpft_small_text,内容为“云扩windows屏幕解锁服务”;

a1、实现其getstringvalue抽象方法,返回锁屏界面元素数量为1,并且内容为上述定义内容。

a2、实现其getserialization抽象方法,获取传递过来凭据数据,根据类型是开机未登录的cpus_logon,还是已经登录过锁屏的cpus_unlock_workstation两种类型构建对应windows凭据数据(serializationdata),并且返回hresult.s_ok。若类型非上述两种类型返回hresult.e_notimpl;

b、实现其icredentialprovidercredential接口icredentialprovider;

b1、实现其setusagescenario抽象方法,当参数为cpus_logon,cpus_unlock_workstation类型的时候返回hresult.s_ok,其他类型的时候返回hresult.e_notimpl,从而控制自定义“云扩windows屏幕解锁服务”身份认证的方式只会在开机未登录,已经登录过锁屏两种情况下才会触发。

b2、实现其advise抽象方法,在其内部初始化定时器timer,并设定callback回调方法立刻开始运行,周期为3秒一次。当计算器处于锁屏状态的时候,callback会每3秒一次被触发;而callback内部实现判断特定互斥锁是否存在,若存在再读取特定内存地址加密数据解密,获取到数据后,手动调用credentialschanged方法,告知系统凭据发生更改从而解锁登录。随后释放销毁已经读取到互斥锁以及特定内存地址数。

b3、实现其unadvise抽象方法,在其内部销毁停止timer并释放;

2、实现解锁组件步骤如下:

2-1、定义用户名,密码,超时三个属性,并设置超时属性默认值10。

2-2、当程序运行到解锁组件的时候,获取用户名,密码,超时属性输入的数值。

2-3、判断对应用户是否已经登录,若登录程序继续往下执行,若处于非解锁登录状态,进入步骤2-4。

2-4、将上述步骤用户名,密码的数值使用(dpapi)windows操作系统中可用的数据保护api的方式加密,创建特定互斥锁用于告知自定义“云扩windows屏幕解锁服务”身份认证的方式开始自动解锁,将获取的加密数据写入特定地址内存中,用于凭据信息交换。

2-5、启动每1秒一次的定时任务检查对应用户解锁登录状态,若对用状态是解锁登录成功,则程序继续往下执行。若超时时间到,对应用户状态还是未解锁状态,则报错提示程序中止。无论是解锁登录成功还是超时时间到了都会立即释放销毁互斥锁以及特定内存地址数据。

本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

需要说明的是,在本说明书的描述中,参考术语“一个实施例”、“一个实施流程”、“实施流程”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合,本说明书系统实施例,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元提示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1