powershell 자동화 결합 데이터베이스, 직원 이 직 처리 (AD 계 정 정지)

최근 회사 이 직 자가 잦 아 파워 셸 을 써 서 자동화 집행 을 하고 있다.mssql 데이터 베 이 스 를 결합 하 는 목적 은 더욱 자동화 되 고 일부 사용자 정 보 를 데이터베이스 에 저장 하 는 것 입 니 다. powershell 코드 는 수 동 으로 실행 할 수 있 으 며 작업 수행 도 계획 할 수 있 습 니 다.
데이터베이스 (이하 제 가 사용 하 는 방법, 직접 사용 할 수 없습니다) 주요 3 장의 표 직원 표 Userlist 는 직원 들 이 이 직 상태 에 있 는 것 을 기록 하고 트리거 를 추가 합 니 다. 이 직 상태 가 바 뀌 었 는 지 여 부 는 이 직 직원 표 leftuser 에 자동 으로 가입 합 니 다. 이 직 직원 표 leftuser 구 조 는 다음 과 같 습 니 다. 전 제 는 업무 번호 와 ad 계 정의 대응 관계 표 이 직 사용자 가 있 는 그룹 표 leftusergroup 입 니 다.이 직 사용자 가 있 었 던 팀 을 기록 합 니 다.
CREATE TABLE [dbo].[leftUser](
    [lid] [int] NULL,                      ---i
    [wid] [varchar](3) NULL,        --  
    [workStatus] [bit] NULL,        --    
    [aduser] [nvarchar](5) NULL     --ad  
) ON [PRIMARY]
GO

Powershell 코드
################
#Author:rp722
#version:6
################

#    
$Database   = 'DatabaseUserName'
$Server     = '"ipaddress"'
$UserName   = 'sa'
$Password   = 'password'

#      
$SqlConn = New-Object System.Data.SqlClient.SqlConnection

#      MSSQL
$SqlConn.ConnectionString = "Data Source=$Server;Initial Catalog=$Database;user id=$UserName;pwd=$Password"

#       
$SqlConn.open()

#     ,              
$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]

#               
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.connection = $SqlConn
$SqlCmd.commandtext = "insert into dbo.leftusergroup(aduser,gname) values('$user','$gp1')"
$SqlCmd.ExecuteNonQuery()

#        
remove-adgroupmember -Identity $gp -Members $user -Confirm:$false
}

#    
set-aduser $aduser -Description "user has left company"

#     
Move-ADObject $aduser -TargetPath "OU=Disabled,DC=xxxx,DC=net"

#    
Disable-ADAccount $aduser

}
}

#       
$SqlConn.close()

좋은 웹페이지 즐겨찾기