"찾을 수 없음"을 나타내는 AD 사용자 ID의 txt 파일을 가져 와서 찾을 수있는 파일에 대해 DisplayName
속성을 제공하고 결과를 파일로 내 보냅니다. 그게 가능하니?PowerShell AD 사용자
나는 이것을 시도했지만 알려진 유효한 사용자 ID를 반환하지 않았습니다.
$ user = Get-Content "c : \ users \ oh75256 \ desktop \ powershell learning \ userids.txt" $ user | foreach는 { $ 이름 = "$ _" $ 검색 자 = [ADSISearcher] "(표시 이름 = $ 이름)" $ 결과 = $ Searcher.FindOne() 경우 ($ 결과 -eq $ 널 (null)) { "$ 이름 ($ status -eq "True") { "$ Name is ($ status -eq"True ") $ 상태 = (Get-ADUser $ Name) .Enabled 유효 "C >> : \ 사용자 \ oh75256 \ userstatus.csv } 다른 { 은"$ 이름은 C >> "유효하지 않습니다 : \ 사용자 \는 oh75256 \ userstatus.csv 은} } }
작동 그 ! 이제 2 개의 PowerShell 스크립트가 생겼으므로이 스크립트를 하나로 결합하고 싶습니다. hostname, lastuser, status, AD라는 4 개의 열이있는 하나의 txt 파일이 있습니다. 호스트 이름을 핑 (ping)하고 핑 (ping)하면 로그온 한 사용자 이름을 반환하는 내 핑 스크립트로 시작하고 싶습니다. ping을하지 않으면 "offline"을 반환합니다. 그런 다음 오프라인 호스트 이름에 대한 lastuser 열을 가져 와서 AD와 비교하여 사용자의 이름을 반환하거나 "AD에서 찾을 수 없습니다". pingnames.txt
호스트 이름 LastUser 상태 (오프라인 또는 SAMAccountName을) AD (이름 또는 찾을 수 없음)
NAHNT-1234567 bruteaa
NAHNT-2345678 OH75256
NAHNT-3456789 YD13099 다음은 텍스트 파일의 예
NAHNT-4567891 rh16633
NAHNT-5678912 관리자
NAHNT-6789123 xt07718
NAHNT-8912345 AA00718
NAHNT-9123456 LR17114
이것은 ping을하고 현재 로그온 한 사용자를 얻는 내 스크립트입니다.
function get-avail {
param ($computername)
$availCheck = New-Object psobject -property @{
ComputerName = $computername
Status = 'Offline'
LogonUser = 'None'
}
$test = Test-Connection -ComputerName $computername -Count 1
-errorAction:SilentlyContinue
if ($test) {
$availCheck.Status = 'Online'
$wmics = Get-WmiObject Win32_ComputerSystem -ComputerName $computername
}
if ($wmics.UserName) {
$availCheck.LogonUser = $wmics.UserName
}
$availCheck | select ComputerName,Status,LogonUser
}
cat "c:\myfiles\pingnames.txt" | %{ get-avail $_ } | export-csv c:\myfiles\results.csv
이 AD
$userProfile = Get-Content "c:\myfiles\userids.txt" |
Select @{Expression={$_};Label="SamAccountName"},
@{Expression={" "};Label="First Name"},
@{Expression={" "};Label="Last Name"},
@{Expression={$False};Label="ExistInAD"}
foreach($user in $userProfile)
{
$Account = Get-ADUser $user.SamAccountName
-erroraction silentlycontinue
If($?)
{
$user.SamAccountName
$user.ExistInAD = $True
$user.'First Name' = $Account.GivenName
$user.'Last Name' = $Account.Surname
}
Else
{
"------------------------ $($user.SamAccountName)"
}
}
$userProfile | export-csv "c:\myfiles\mycsv.csv" -NoTypeInformation
에 사용자 ID를 확인하기 위해 내 스크립트는 그들을 결합 할 수있다? - 고마워요, 카렌
을 "하지만 알려진 유효한 사용자를 반환하지 않았습니다 ID "- 그러면 * 반환 했습니까? –