0

AD OU に対してクエリを実行し、アカウントとグループ メンバーシップに関するいくつかの属性を持つすべてのユーザーを一覧表示する必要があります。CSV 形式は次のようになります。

First Name  Last Name   SamAct         Active    New-UserGroup    Old-UserGroup
BIll        Gates       bill.gates     YES       YES              NO
Steve       Jobs        steve.jobs     NO        No               YES

はい、いいえは「彼は活動していますか」と「彼はこのグループのメンバーですか」です。

彼がグループメンバーであるかどうかを正しく判断する方法がわからないことを除いて、次のコードはほぼ完了しています。

何かアドバイス??

function getADAccountStatus($adUserObj)
{
  if($adUserObj.AccountIsDisabled)
  { return "NO";}
  else { return "YES";}
}
function getNGStatus($adUserObj)
{
   if($_.memberof -contains 'New_Usergroup')
  {return "YES"; }
  else  {return "NO"; }
}

$ReportPath = "c:\scripts\report.csv"
$ou = 'OU=Group,DC=domain,DC=com'

$records = Get-QADUser -SearchRoot $ou | Select LastName,FirstName,SamAccountName,memberof

$records | foreach{

  new-object psobject -Property @{
  $LastName = $_.LastName
  $FirstName = $_.FirstName
  Account = $_.SamAccountName
  Active = getADAccountStatus($_)
  NG = getATCStatus($_)

  }} | Select $LastName,$FirstName,Account,Active,NG | Export-Csv $ReportPath -Force -ErrorAction Stop -NoTypeInformation
4

2 に答える 2

0

このmemberOf属性には、ユーザーのセカンダリ グループの識別名のリストが含まれているため、次のように確認する必要があります。

function getNGStatus($adUserObj) {
  $groupName = 'CN=New_Usergroup,CN=Users,DC=example,DC=com'
  if ($adUserObj.memberOf -contains $groupName) {
    return "YES"
  } else {
    return "NO"
  }
}
于 2013-04-02T11:12:32.077 に答える