首页 > 系统相关 >Powershell校验AD用户密码有效性

Powershell校验AD用户密码有效性

时间:2023-09-12 18:32:19浏览次数:43  
标签:username1 AD 校验 System IDCode Error eq Powershell


Powershell校验AD用户密码有效性

AD(Active Directory)由微软公司开发的一种目录服务,提供了一种集中式存储和管理用户、计算机、打印机、文件共享等网络资源的方法。

主要提供一些关键特点和功能:

1.用户和计算机管理:AD允许管理员创建、管理和删除用户帐户以及计算机帐户。这包括设置密码策略、分配权限和控制访问等。

2.组织单元(OU)和域:AD使用组织单元来组织和管理网络资源。多个组织单元可以形成一个域(Domain),并且域之间可以建立信任关系。

3.身份验证和访问控制:AD支持身份验证和授权机制,确保只有经过授权的用户能够访问特定的资源。

4.分布式架构:AD支持分布式部署,可以在不同地理位置的多个服务器上进行复制,提高性能和可用性。

5.统一登录:通过AD,用户可以使用统一的凭据登录到企业内的各个资源,如电子邮件、文件共享、应用程序等。

6.策略管理:AD允许管理员定义和应用各种策略,例如密码策略、安全策略和组策略,以确保网络安全和合规性。

闲话少说,步入正题,当验证某个服务账户密码是否有效时,常规做法是将账户名添加到服务器或设备上,并通过远程登录或通过WEB服务进行校验。今天我们将使用PowerShell脚本进行验证,当然也可以使用其他开发程序实现相同的校验。


#code为:bom + utf8

[reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null

$usernamef = Get-Credential

$username1 = $usernamef.username

$domain1 = 'byssoft.com'   ##定义域名

$username2 = $username1 + '@' + $domain1

Import-Module Activedirectory


$user = Get-ADUser -filter { Enabled -eq $True -and PasswordNeverExpires -eq $False -and UserPrincipalName -eq $username2 } -Properties *

if ( ($user -eq $null) -or ($user -eq '') )

{

	$Error_1 = " IDCode: $username1 `n Passwd: $pwd `n`n Result: Error Not User."

	[System.Windows.Forms.MessageBox]::Show($Error_1)

	Write-Error $Error_1

	exit 1

}


$pwd = $usernamef.GetNetworkCredential().password

$maxPasswordAge = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge.Days

$PasswdExpDate = $user.PasswordLastSet.AddDays($maxPasswordAge)

""

$DomainObj = $DomainObj = "LDAP://" + $domain1

$DomainBind = New-Object System.DirectoryServices.DirectoryEntry($DomainObj,$username1,$pwd)

$DomainBind.distinguishedName

if ($DomainBind.distinguishedName -match $domain1.Split('.')[0])

{

	$SuccInfo = " IDCode: $username1 `n Passwd: $pwd `n PasswdExpDate:$PasswdExpDate `n`n Result: IDCode & Passwd is OK"

	Write-Host -ForegroundColor green $SuccInfo

	[System.Windows.Forms.MessageBox]::Show($SuccInfo)

	exit 0

}

else

{

	$Error_2 = " IDCode: $username1 `n Passwd: $pwd `n`n Result: IDCode is OK,The Passwd is Wrong"

	Write-Error $Error_2

	[System.Windows.Forms.MessageBox]::Show($Error_2)

	exit 2

}

如果密码正确返回OK;

Powershell校验AD用户密码有效性_文件共享

Powershell校验AD用户密码有效性_Windows_02

如果输入一个错误的密码,返回验证失败

Powershell校验AD用户密码有效性_文件共享_03





标签:username1,AD,校验,System,IDCode,Error,eq,Powershell
From: https://blog.51cto.com/gaowenlong/7447273

相关文章

  • iOS开发Swift-14-反向传值,右滑删除,语言本地化,编辑换序,DeBug,addTarget-待办事项Ap
    1.点击某一条待办事项,出现编辑界面,可对待办事项的文本进行修改.不重新设计界面,而是将新增页面进行修改复用.2.为新增页面取StoryboardID为TodoTableViewControllerID. 3.为列表最右边加一个小箭头.选中TodoCellID,将属性中的Selection修改为DisclosureIndicator. 4.......
  • 介绍一款轻量型 Web SCADA 组态软件
    随着互联网、物联网技术的快速发展,图扑物联基于多年研发积累和私有部署实践打磨、以及对业务场景的深入理解,推出了适用于物联网应用场景的轻量型云组态软件。该产品采用B/S架构,提供Web管理界面,软件包大小仅50MB,无需安装客户端,可通过浏览器直接访问。图形组态功能,是工业使用场......
  • # yyds干货盘点 #通过pandas读取xls文件(pd.read_excel)系统提示:no engine?
    大家好,我是皮皮。一、前言前几天在Python最强王者群【wen】问了一个Python自动化办公的问题,一起来看看吧。通过pandas读取xls文件(pd.read_excel)系统提示:noengineforfiletyppexls,请问应该如何处理呢?二、实现过程后来【隔壁......
  • xv6 进程切换中的锁:MIT6.s081/6.828 lectrue12:Coordination 以及 Lab6 Thread 心得
    引言这节课和上一节xv6进程切换是一个完整的的进程切换专题,上一节主要讨论进程切换过程中的细节,而这一节主要讨论进程切换过程中锁的使用,所以本节的两大关键词就是"Coordination"(协调)和"lostwakeup"Coordination就是有关出让CPU,直到等待的事件发生再恢复执行。人们发明了很......
  • 在线CAD(H5网页CAD SDK)实现阵列功能
    前言在线CADSDK的集成过程中,甲方客户可能有阵列功能的需求,作为开发者如何利用WEBCADSDK展现此功能效果呢?本章节我们重点讲述一下。首先看一下在线CAD的DEMO:https://demo.mxdraw3d.com:3000/mxcad/,阵列功能如下图: 环境搭建首先按照mxcad入门文档(https://mxcadx.gitee.io/......
  • Breaking Changes When Upgrading from EF Core 6 to 7: What You Need to Know
    EntityFrameworkCore(EFCore)isapopularObject-RelationalMapping(ORM)frameworkusedby.NETdevelopersfordatabaseoperations.WiththereleaseofEFCore7,manydevelopersareconsideringupgradingtheirprojectstotakeadvantageofthenewfe......
  • 1137 Final Grading(测试点3段错误、答案错误)
    题目:Forastudenttakingtheonlinecourse"DataStructures"onChinaUniversityMOOC(http://www.icourse163.org/),tobequalifiedforacertificate,he/shemustfirstobtainnolessthan200pointsfromtheonlineprogrammingassignments,and......
  • Padavan配置白名单模式及上网时间控制
    登录Padavan管理后台,高级设置--->防火墙--->mac访问控制--->mac访问控制模式【允许模式---仅列表中的设备可获取网络;拒绝模式---列表中的设备拒绝访问网络】,禁止访问路由器主机这项一定打开,不然试了下没效果,开了就是未在列表中的设备不能访问路由器,初次连接的设备也无法获取ip地......
  • static nat(network address translate)
    核心1、出接口配置natstatic转换,命令如下interfaceGigabitEthernet0/0/1ipaddress20.1.1.1255.255.255.0 natstaticglobal20.1.1.3inside10.1.1.2netmask255.255.255.255natstaticglobal20.1.1.4inside10.1.1.3netmask255.255.255.255注意:此种转换方式......
  • sqoop1.4.7完全支持Hadoop3.x, Hive3.x Hbase2.x
    已经修改好保存至云盘自己下载花了时间的,记得关注我。。。链接:https://pan.xunlei.com/s/VNe6P6Tm1A9Q-RG5GByN08rdA1#提取码:5nke复制这段内容后打开手机迅雷App,查看更方便下载解压直接用,里面的内容已经改好但是需要注意的是conf目录下的sqoop-env.sh里面的hadoop路径和hi......