Powershell管理系列(三十三)PowerShell操做之查詢AD帳號對應的OU存放位置

-----提供AD\Exchange\Lync\Sharepoint\CRM\SC\O365等微軟產品實施及外包,QQ:185426445.電話18666943750ide


需求:找出每一個AD用戶所對應的OU所在位置
ui

步驟1:2008R2的AD域環境,命令以下spa

Import-Module activedirectory3d

$user=Get-ADUser -Filter * -Properties * -SearchBase "dc=XXX,dc=com" |select -ExpandProperty samaccountnameblog

foreach ($i in $user) `圖片

{字符串

$a=Get-ADUser $i -Properties * |% {$_.CanonicalName}get

$b=$a.Split("/")字符串處理

Get-ADUser $i -Properties * |select samaccountname,@{n="OU";e={$b[$b.count-2]}},CanonicalName     產品

}

或者:

Import-Module activedirectory

$user=Get-ADUser -Filter * -Properties * -SearchBase "dc=XXX,dc=com" |select -ExpandProperty samaccountname

foreach ($i in $user) `

{

$a=Get-ADUser $i -Properties * |% {$_.CanonicalName}

$b=$a.Split("/")

Get-ADUser $i -Properties * |select samaccountname,@{n="OU";e={$b[-2]}},CanonicalName   

}

以下圖:

wKioL1f3cRbhXeYHAAEDjRC50Z0853.png-wh_50


步驟二、2012/2012R2的AD域環境,命令以下

Get-ADUser -Filter * -Properties * -SearchBase "dc=XXX,dc=com,dc=cn" |select samaccountname,@{n="path";e={$a=$_.CanonicalName -split "/";$a[-2]}},CanonicalName 

以下圖:

wKiom1f3cSHwid5kAAHtIb4rgnc542.png-wh_50


步驟三、找出每一個AD帳號對應的具體路徑,命令以下

$user=Get-ADUser -Filter * -Properties * -SearchBase "dc=XXX,dc=com,dc=cn" |select -ExpandProperty samaccountname

foreach ($i in $user) `

{ `

$a=Get-ADUser $i -Properties * |% {$_.DistinguishedName} 

$b=$a -split "," 

$c=""

for ($j=1;$j -le $b.Count-2;$j++) {$c+=$b[$j]+","} 

$c=$c+$b[-1] 

Get-ADUser $i -Properties * |select Samaccountname,@{n="Path";e={$c}},DistinguishedName 

}

wKioL1f3y0KAr5PCAAEHq7GwvrM315.png-wh_50

步驟四、字符串處理簡單實例,命令以下

#去除最後一個.後面的字符串,造成新的字符串

$a="www.baidu.com" -split "\."  #.加上\,轉義字符的特殊處理,後面發現不加也不影響,一樣的結果

$b=$c=""  #$b、$c初值都賦值爲空

for ($i=0; $i -le $a.Count-3 ;$i++) {$b+=$a[$i]+"."} #取倒數第二個字符,並加上.

$b=$b+$a[-2] #加上倒數第二個字符串

$b

for ($i=0; $i -le $b.Count-1 ;$i++) {$c+=$b[$i]} #因字符串數目爲1,因此只能取第一個值

$c

wKiom1f4Q0ezdyDrAAD91UAL4h0641.png-wh_50

相關文章
相關標籤/搜索