溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

powershell自動(dòng)化結(jié)合數(shù)據(jù)庫,處理員工離職(AD賬號(hào)

發(fā)布時(shí)間:2020-03-03 01:34:05 來源:網(wǎng)絡(luò) 閱讀:562 作者:rp722 欄目:系統(tǒng)運(yùn)維

寫了個(gè)powershell來針對(duì)離職的自動(dòng)化執(zhí)行。
結(jié)合mssql數(shù)據(jù)庫的目的是更自動(dòng)化,并保存一些用戶信息到數(shù)據(jù)庫中
powershell代碼可手動(dòng)執(zhí)行,也可計(jì)劃任務(wù)執(zhí)行

數(shù)據(jù)庫(以下我所用的方法,不能直接套用)
主要3張表
員工表Userlist記錄員工在離職狀態(tài),加觸發(fā)器,當(dāng)是否離職狀態(tài)改變自動(dòng)加入離職員工表leftuser中
離職員工表leftuser結(jié)構(gòu)如下,前提有工號(hào)和ad賬號(hào)的對(duì)應(yīng)關(guān)系表
離職用戶所在組表leftusergroup,記錄離職用戶之前所在的組。

CREATE TABLE [dbo].[leftUser](
    [lid] [int] NULL,                      ---i
    [wid] [varchar](3) NULL,        --工號(hào)
    [workStatus] [bit] NULL,        --是否離職
    [aduser] [nvarchar](5) NULL     --ad賬號(hào)
) ON [PRIMARY]
GO

Powershell代碼

################
#Author:rp722
#version:6
################

#配置信息
$Database   = 'DatabaseUserName'
$Server     = '"ipaddress"'
$UserName   = 'sa'
$Password   = 'password'

#創(chuàng)建連接對(duì)象
$SqlConn = New-Object System.Data.SqlClient.SqlConnection

#使用賬號(hào)連接MSSQL
$SqlConn.ConnectionString = "Data Source=$Server;Initial Catalog=$Database;user id=$UserName;pwd=$Password"

#打開數(shù)據(jù)庫連接
$SqlConn.open()

#查詢數(shù)據(jù)庫,獲取當(dāng)前離職用戶表中用戶數(shù)量
$SqlCmd = $SqlConn.CreateCommand()
$SqlCmd.commandtext = 'select COUNT(aduser) from leftUser'
$num=$SqlCmd.ExecuteScalar()

#遍歷用戶
for($i=1;$i -le $num;$i++)
{

$SqlCmd = $SqlConn.CreateCommand()
$SqlCmd.commandtext = "select aduser from leftUser where lid=$i"
$user=$SqlCmd.ExecuteScalar()

#獲取用戶
$aduser=Get-ADUser -Identity $user

#判斷用戶在AD中是否啟用,若已禁用則跳過
if ($aduser.enabled -eq $True)
{

#獲取用戶所在組
$groups=(get-aduser $user -properties memberof).memberof

#遍歷各組
foreach($gp in $groups)
{
#獲取組的名稱
$gp1=$gp.Split(",")[0].Split("=")[1]

#保存用戶和組的對(duì)應(yīng)關(guān)系到數(shù)據(jù)庫
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.connection = $SqlConn
$SqlCmd.commandtext = "insert into dbo.leftusergroup(aduser,gname) values('$user','$gp1')"
$SqlCmd.ExecuteNonQuery()

#當(dāng)前組內(nèi)移除用戶
remove-adgroupmember -Identity $gp -Members $user -Confirm:$false
}

#設(shè)置備注
set-aduser $aduser -Description "user has left company"

#已至禁用組
Move-ADObject $aduser -TargetPath "OU=Disabled,DC=xxxx,DC=net"

#禁用賬戶
Disable-ADAccount $aduser

}
}

#關(guān)閉數(shù)據(jù)庫連接
$SqlConn.close()
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI