안녕하세요 두 개의 다른 시스템에서 변수를 확인하려면 다음 행이 있어야합니다.트림 기능을 사용하는 파워 쉘
foreach ($val in $stafflist)
{
$found = 0
foreach ($user in $aduser)
if ((($val.Surname.trim() -eq $user.surname.trim()) -And ($val.'First Name'.trim() -eq $user.Givenname.trim())) -or (($val.Surname.trim() -eq $user.surname.trim()) -And ($val.'Known As'.trim() -eq $user.Givenname.trim())))
{
$found = 1
try
{
if ($user.EmployeeID -ne $null)
{
$val.'First Name' + " " + $val.'Known As' + " " + $val.surname + " EmployeedID already set as " + $user.EmployeeID | Out-File $outfile -Append
}
else
{
set-aduser -Identity $user -EmployeeID $val.'Person Number'
$val.'First Name' + " " + $val.'Known As' + " " + $val.surname + " Employeed set to " + $user.EmployeeID| Out-File $outfile -Append
}
} ## end of Try
Catch
{
$val.'First Name' +" " + $val.surname + "Can not be updated in AD" | Out-File $outfile -Append
}
}
그래서이 경기를 찾고 서로에 대한 두 개의 목록 ($의 stafflist와 $ aduser)에서 각 사용자를 확인하고, 일치하는 항목을 발견하면 그것은 HR 데이터베이스에서 ID와 Active Directory의 직원 ID를 업데이트 .
문제는 HR 데이터베이스 시스템에서 "이름"또는 "알려진 이름"또는 실제로 둘 다 채워져 검사해야한다는 사실을 설명하는 an or 연산자가 있다는 것입니다.
일부는 공백으로 남겨 두었을 경우에 .Trim 함수를 사용하려고하지만, 변수에 대해 배치하면 변수가오고 오류는 null로 끝납니다.이 경우는 종종 " 이름 "변수라고합니다.
누구나이 검사를 수행하고 각 변수에 대해 가장 효율적인 방법을 제시 할 수 있습니까?
null이 아닌지 확인한 후 모든 변수를 미리 정돈 할 수 있습니다. 또는 null인지 테스트하고 오류가 발생하지 않도록 다른 테스트 문자열을 전달하지만 더 많은 코드 줄과 느린 코드 실행을 의미합니다.
아무에게도 이것을 달성하기위한 간결한 방법이 있다면 나는 제안에 대해 감사 할 것입니다. 결국