Active Directory의 컴퓨터 개체 설명에 다양한 유용한 정보를 저장할 수 있습니다. 예를 들어, 컴퓨터 모델, 하드웨어 인벤토리 또는 마지막으로 로그온한 사용자 이름에 대한 정보입니다. 이 도움말에서는 설명의 정보를 자동으로 채우고 업데이트하는 방법을 살펴보겠습니다. PowerShell을 사용하는 Active Directory의 컴퓨터 개체 필드.
PowerShell을 사용하여 Active Directory의 컴퓨터 설명 필드 업데이트
예를 들어 Active Directory 사용자 및 컴퓨터 콘솔의 컴퓨터 및 서버에 대한 설명 필드에 컴퓨터의 제조업체, 모델 및 일련 번호에 대한 정보가 표시되도록 하려고 합니다. 다음 PowerShell 명령을 사용하여 WMI에서 로컬 컴퓨터에 대한 이 정보를 가져올 수 있습니다.Get-WMIObject Win32_ComputerSystemProduct | Select Vendor, Name, IdentifyingNumber
WMI 쿼리는 다음 데이터를 반환합니다.
- 공급업체 – HP
- 이름 – Proliant DL 360 G5
- 식별번호 – CZJ733xxxx
환경 변수에서 현재 컴퓨터의 이름을 가져와 $computer
에 할당합니다. 변수:
$computer = $env:COMPUTERNAME
그런 다음 컴퓨터 하드웨어에 대한 정보를 저장합니다.
$computerinfo= Get-WMIObject Win32_ComputerSystemProduct
$Vendor = $computerinfo.vendor
$Model = $computerinfo.Name
$SerialNumber = $computerinfo.identifyingNumber
변수에 어떤 값이 할당되었는지 봅시다:
$computer
$vendor
$Model
$SerialNumber
Active Directory에서 컴퓨터 계정의 설명 필드에 수신된 데이터를 쓰는 것이 남아 있습니다. 다음 PowerShell 스크립트를 실행합니다.
$ComputerSearcher = New-Object DirectoryServices.DirectorySearcher
$ComputerSearcher.SearchRoot = "LDAP://$("DC=$(($ENV:USERDNSDOMAIN).Replace(".",",DC="))")"
$ComputerSearcher.Filter = "(&(objectCategory=Computer)(CN=$Computer))"
$computerObj = [ADSI]$ComputerSearcher.FindOne().Path
$computerObj.Put( "Description", "$vendor|$Model|$SerialNumber" )
$computerObj.SetInfo()
Set-ADComputer $computer –Description "$vendor|$Model|$SerialNumber”
AD PowerShell 모듈의 cmdlet을 사용하려는 경우 RSAT를 설치하지 않고 모듈 파일을 모든 컴퓨터에 복사할 수 있습니다.
ADUC 콘솔의 컴퓨터 설명 필드에 제조업체 및 모델 정보가 표시되는지 확인합니다.
이러한 스크립트는 AD의 현재 컴퓨터 설명 속성만 업데이트합니다. Get-ADComputer 및 foreach
를 사용하여 모든 도메인 컴퓨터에 대한 설명을 원격으로 채울 수 있습니다. 고리. 그러나 사용자가 로그인하거나 컴퓨터가 부팅될 때 컴퓨터가 AD에서 자동으로 정보를 업데이트하도록 하는 것이 훨씬 더 편리합니다.
이렇게 하려면 PowerShell 로그온 스크립트를 사용하여 그룹 정책을 만들고 모든 컴퓨터에 적용해야 합니다.
- 도메인 그룹 정책 관리 콘솔(
gpmc.msc
), GPO를 만들어 컴퓨터가 있는 OU에 할당합니다. - GPO 확장:사용자 구성 -> 정책 -> Windows 설정 -> 스크립트(로그온/로그오프) -> 로그온,
- PowerShell 스크립트로 이동 탭;
- 파일 표시 버튼을 누르고 FillCompDesc.ps1을 만듭니다. 다음 코드가 포함된 파일:
# write information about the computer hardware/model in the Description field in Active Directory
$computer = $env:COMPUTERNAME
$computerinfo= Get-WMIObject Win32_ComputerSystemProduct
$Vendor = $computerinfo.vendor
$Model = $computerinfo.Name
$SerialNumber = $computerinfo.identifyingNumber
$DNSDOMAIN= (Get-WmiObject -Namespace root\cimv2 -Class Win32_ComputerSystem).Domain
$ComputerSearcher = New-Object DirectoryServices.DirectorySearcher
$ComputerSearcher.SearchRoot = "LDAP://$("DC=$(($DNSDOMAIN).Replace(".",",DC="))")"
$ComputerSearcher.Filter = "(&(objectCategory=Computer)(CN=$Computer))"
$computerObj = [ADSI]$ComputerSearcher.FindOne().Path
$computerObj.Put( "Description", "$vendor|$Model|$SerialNumber" )
$computerObj.SetInfo()
더 쉬운 문제 해결을 위해 선택적으로 PowerShell 스크립트 작업을 기록할 수 있습니다. - 추가를 클릭합니다. 버튼을 누르고 다음 스크립트 매개변수를 설정합니다.
스크립트 이름:FillCompDesc.ps1
스크립트 매개변수:-ExecutionPolicy Bypass
이 경우 PowerShell 실행 정책 설정을 변경하거나 PS1 스크립트 파일에 서명할 필요가 없습니다. PowerShell 스크립트를 실행합니다. - 인증됨 에 대한 특정 OU에 AD 권한 위임 사용자 도메인 그룹. OU에 있는 모든 컴퓨터 개체의 설명 속성을 변경할 수 있는 권한을 할당합니다(
Write Description
허가). 이렇게 하면 도메인 사용자와 컴퓨터가 컴퓨터 개체의 설명 특성 값을 변경할 수 있습니다. - 대상 OU의 컴퓨터를 다시 시작하고 그룹 정책 설정을 업데이트하면 AD의 설명 필드가 자동으로 채워집니다. 이 필드에는 컴퓨터 하드웨어에 대한 정보가 포함됩니다.
gpresult
를 사용하여 GPO 문제를 해결할 수 있습니다. 도구를 사용하거나 그룹 정책이 적용되지 않는 일반적인 문제 문서의 팁을 사용합니다.
따라서 AD에서 컴퓨터 개체의 설명 필드에 정보를 추가할 수 있습니다. 예를 들어, 마지막으로 로그온한 사용자의 이름, 부서(이 정보는 Get-ADUser cmdlet를 사용하여 얻을 수 있음), 컴퓨터의 IP 주소 또는 기타 필요한 관련 정보입니다.
참고 . 이 접근 방식의 단점은 인증된 모든 AD 사용자가 Active Directory의 모든 컴퓨터에 대한 설명을 변경하거나 삭제할 수 있다는 것입니다.마지막으로 로그온한 사용자 이름을 AD의 컴퓨터 설명에 추가
위의 PowerShell 스크립트를 사용하여 AD의 컴퓨터 개체에 대한 설명에 다른 정보를 추가할 수 있습니다. 예를 들어, 컴퓨터 설명에 현재 로그온한 사용자가 표시될 때 유용합니다. 사용자가 인증된 도메인 컨트롤러의 이름도 추가해 보겠습니다(LOGONSERVER
).
PowerShell 로그온 스크립트의 한 줄을 다음으로 변경합니다.
$computerObj.Put("Description","$vendor|$Model|$SerialNumber|$env:username|$env:LOGONSERVER")
로그오프하고 사용자 계정으로 로그인합니다. 컴퓨터 설명 속성이 현재 사용자의 이름과 인증한 로그온 서버(도메인 컨트롤러)를 표시하는지 확인하십시오.
설명 속성에서 데이터를 구문 분석하기 위해 다음 PowerShell 코드를 사용할 수 있습니다.
$ComputerName = 'PC-MUN22s7b2'
$vendor,$Model,$SerialNumber,$Username,$LogonServer = ((Get-ADComputer -identity $ComputerName -Properties *).description).split("|")
설명 필드 값을 나눕니다(|로 구분). )를 여러 개별 변수로 변환합니다. 지정된 원격 컴퓨터에서 사용자 이름을 얻으려면 다음을 실행하십시오.
$Username
다음 PowerShell 스크립트를 사용하여 특정 사용자가 현재 로그온한 컴퓨터의 이름을 얻을 수 있습니다.
$user='*M.Becker*'
Get-ADComputer -Filter "description -like '$user'" -properties *|select name,description |ft