powershell 자동화 결합 데이터베이스, 직원 이 직 처리 (AD 계 정 정지)
2346 단어 Powershellwindowserverpowershell
데이터베이스 (이하 제 가 사용 하 는 방법, 직접 사용 할 수 없습니다) 주요 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()
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
(5) Powershell 별명 (Alias)예 를 들 어 Powershell 은 출력 창 을 알 아 보 는 데 사용 되 는 Clear - host 라 는 내부 함수 가 있 습 니 다.명령 프롬프트 에 cls 나 clear 명령 을 입력 하면 Powershel...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.