通过 pGina 对 Windows 设备进行管理

news2024/12/23 17:06:37

文章目录

  • 前言
  • 1、环境信息
    • 1.1、服务器端
    • 1.2、客户端
  • 2、pGina 安装及配置
    • 2.1、下载并安装
    • 2.2、配置
    • 2.3、模拟测试
    • 2.4、Windows 远程登录测试
  • 总结


前言

对 Windows 设备进行管理,一般是通过 AD 进行的,但是这玩意儿是收费的,而且还挺贵。有没有什么免费的方法呢?
发现了一个比较古老的项目 pGina,相关网站如下

  • GitHub - pgina/pgina: pGina: Open Source Windows Authentication
  • 官网 - pGina - Open source Windows authentication

说明:

  • pGina 是凭据提供程序(原文:Credential Provider)
  • GitHub 显示 最后一次 Release 的版本是 3.1.8.0 时间是 2013年7月7日。有点久远,而且长期没有维护了。
  • 文档有点乱:有的地方显示是XP和更早的系统(原文:XP and earlier systems),有的地方显示支持Windows XP SP3及更高版本(原文:Supports Windows XP SP3 and up.)
  • 经过测试 Windows 10 可以使用
  • pGina 存在被杀毒软件误杀的情况,需要加入到白名单中
  • 调试过程中,需要仔细阅读 pGina 的日志,很多细节问题需要耐心解读日志才能发现问题

1、环境信息

1.1、服务器端

Linux 安装镜像:CentOS-7-x86_64-Minimal-2009.iso
Linux 版本:CentOS Linux release 7.9.2009 (Core)
Docker(Docker Engine - Community):24.0.2
LDAP:openldap:2.5.14

说明:

  • OpenLDAP 的搭建及简单实用参考之前的文章
  • LDAP 默认账户:cn=admin,dc=example,dc=org 默认密码:adminpassword

openldap:2.5.14 搭建完成后,默认 group 信息如下

在这里插入图片描述

修改 user01 密码,即可按照如下配置直接使用。

1.2、客户端

操作系统:Windows 10 企业版 LTSC 1809
pGina:3.1.8.0

2、pGina 安装及配置

2.1、下载并安装

下载地址

安装过程比较简单,一直下一步就好了。

2.2、配置

说明:配置过程参考文档

演示通过 LDAP 进行身份认证,pGina 进行相关配置如下

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.3、模拟测试

需要:注意 Local Groups 需要生效,否则无远程登录权限

在这里插入图片描述

2.4、Windows 远程登录测试

Windows 远程登录界面显示效果如下(证明 pGina 配置生效)

在这里插入图片描述


总结

本文仅仅简单介绍了通过 pGina 实现通过 LDAP 进行身份认证,而 pGina 还提供了另外几种方法。例如通过 MySQL 实现身份验证,感兴趣的同学可以深入进行研究一下。
不过由于项目太过久远,并且已经长期处于不继续维护的状态。建议生产环境谨慎使用!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/681500.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringSecurity(二):自定义认证(源码+落地实现)。

自定义认证 自定义资源权限规则资源分类自定义资源权限规则为什么我们要自定义呢?如何去覆盖呢?WebSecurityConfigurerAdapter它是干什么用的实例 自定义登录界面步骤源码解析 自定义登录成功处理(前后端分离的情况)项目环境succe…

Axure中使用echarts图标

第一步:axure中防一个矩形框 第二步:将矩形框命名为Demo 这步很重要,后续会引用这个名字 第三步:打开Echarts示例,选择需要的样式,并调整数值 Examples - Apache ECharts 第四步:代码准备 需…

Windows10host文件修改方法

1、首先打开“此电脑”,定位到: C:\Windows\System32\drivers\etc 2、使用鼠标右键单击“hosts”,弹出来的菜单中选择“属性” 3、弹出“文件属性”窗口后单击“上方的”安全“栏”。 选中“ALL APPLICATON PACKAGES”后单击“编辑” 4、同…

Jmeter核心结构和运行原理(1)

Jmeter核心结构和运行原理 一、Jmeter核心结构和运行原理1、JMeter核心结构2、JMeter的体系结构3、JMeter运行原理a、GUI模式:b、非GUI模式:c、单机模式:d、分布式模式 一、Jmeter核心结构和运行原理 1、JMeter核心结构 测试计划 线程组 配…

MongoDB基本使用(一)

MongoDB基本使用 Nosql简介 NoSQL(NoSQL Not Only SQL ),意即”不仅仅是SQL”。 在现代的计算系统上每天网络上都会产生庞大的数据量, 这些数据有很大一部分是由关系数据库管理系统(RDBMS)来处理。 1970年 E.F.Codd’s提出的关系…

总结910

目标规划: 月目标:6月(线性代数强化9讲,考研核心词过三遍) 周目标:线性代数强化5讲,英语背3篇文章并回诵,检测 每日规划 今日已做 1.早上回顾之前背诵的文章 2.写自我总结&#…

Java 中常见的数据结构

数据结构简介 数据结构是计算机科学中用于组织和存储数据的一种方式或方法。它定义了不同数据元素之间的关系,以及对这些数据元素进行操作和访问的规则和技术。 数据结构可以用来描述问题的抽象模型,并提供处理该问题的操作和算法。它可以通过逻辑和物…

wpf增加系统托盘图标

使用系统托盘,可以为用户提供一个简便快捷的操作习惯。 wpf中增加系统托盘图标有2种 第一种,使用Hardcodet.NotifyIcon.Wpf开源组件 1.建立一个wpf程序 2.安装Hardcodet.NotifyIcon.Wpf 3.增加图片 图片选择资源,否则获取不到路径 4.界面…

TypeScript - 函数(上)

目录 1、介绍 2、函数类型表达式 3、呼叫签名 4、构造签名 5、泛型函数 6、推论 7、约束 8、使用约束值 9、指定类型参数 1、介绍 函数是JavaScript应用程序的基础。 它帮助你实现抽象层,模拟类,信息隐藏和模块。 在TypeScript里&#xff0c…

Linux——进程的概念

task_struct task_struct 是linux下管理进程的结构,称为PCB,进程控制块。linux所有的指令本质上都是一个进程。进程 task_struct 进程的数据、代码、可执行程序,有属性、有内容。 进程是系统的工作单元。系统由多个进程组成,包…

Linux定时任务--crontab

linux内置了cron进程,cron搭配shell脚本,就可以完成特定的需求,有定时任务的效果。 crontab指令即cron table的简写,相关的配置文件目录如下: /var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务&#xf…

论文笔记--On the Sentence Embeddings from Pre-trained Language Models

论文笔记--On the Sentence Embeddings from Pre-trained Language Models 1. 文章简介2. 文章概括3 文章重点技术3.1 BERT模型的语义相似度能力分析3.2 Anistropic各向异性3.3 BERT-flow3.4 Flow-based model 4. 文章亮点5. 原文传送门6. References 1. 文章简介 标题&#x…

树莓派Pico|RP2040简介|PINOUT|点灯示例

文章目录 一、Pico简介:二、几个比较重要的git仓库:三、使用前必读:四、PINOUT五、点灯一、如何安装固件二.安装Thonny编程环境配置三、点亮板载的LED灯Pico点亮板载LED灯的代码:PicoW点亮板载LED灯的代码: 一、Pico简…

[LeetCode周赛复盘] 第 107 场双周赛20230624

[LeetCode周赛复盘] 第 107 场双周赛20230624 一、本周周赛总结6898. 字符串连接删减字母1. 题目描述2. 思路分析3. 代码实现 6895. 构造最长的新字符串1. 题目描述2. 思路分析3. 代码实现 6898. 字符串连接删减字母1. 题目描述2. 思路分析3. 代码实现 6468. 统计没有收到请求…

Linux系统之部署Dailynotes个人笔记管理工具

Linux系统之部署Dailynotes个人笔记管理工具 一、Dailynotes介绍二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、检查本地环境3.1 检查本地操作系统版本3.2 检查系统内核版本3.3 检查本地yum仓库状态 四、部署Node.js 环境4.1 下载Node.js安装包4.2 解压Node.js安装包4…

ThreadPoolExecutor的应用

前面描述的线程池的创建方式大都是Executors类中创建出来,基于ThreadPoolExecutor去new出来实现的。 我们为什么要自定义线程池 在线程池ThreadPoolExecutor中提供了7个参数,都作为非常核心的属性,在线程池去执行任务的时候,每个…

Nginx-Goaccess(实时日志服务)

goaccess的功能 1、使用webscoket协议传输(双向传输协议)2、基于终端的快速日志分析器3、通过access.log快速分析和查看web服务的统计信息、PV、UV4、安装简单、操作简易、界面炫酷5、按照日志统计访问次数、独立访客数量、累计消耗的带宽6、统计请求次…

物理引擎--Open Dynamics Engine(ODE)

物理引擎--Open Dynamics Engine--ODE 1 介绍1.1 概述1.2 代码1.3 wiki1.4 特征1.5 许可 2 安装使用3 概念3.1 背景3.2 刚体3.2.1 岛屿和禁用实体 3.3 一体化3.4 积分器3.5 关节和约束3.6 关节组3.7 关节误差和误差减少参数 (ERP) Joint error and the Error Reduction Paramet…

Scala函数式编程【从基础到高级】

目录 函数基础 基本语法 函数参数 函数至简原则 至简原则细节 函数高级 高阶函数 函数的3种高阶用法: 1、函数作为值传递 2、函数作为参数传递 匿名函数作参数传递 3、函数作为返回值传递 匿名函数的至简规则 高阶函数的应用 案例-将数组中的元素全部…

【LeetCode】 动态规划 刷题训练(三)

文章目录 931. 下降路径最小和题目解析状态转移方程完整代码 64. 最小路径和题目解析状态转移方程完整代码 174. 地下城游戏题目解析状态转移方程完整代码 931. 下降路径最小和 点击查看:下降路径最小和 给你一个 n x n 的 方形 整数数组 matrix ,请你找…