[英]Fastest way to search for users logged into multiple computers within an OU of AD
[英]How do i search AD for names like the ones in the “Computers” OU and then move those computers over to their proper location?
我想在Active Directory中搜索名稱為WEB2309的計算機,該計算機當前位於“計算機” OU中,然后將其移至其他計算機具有相同名稱的位置。
這是我目前擁有的:
成為計算機組的第一位成員
$strFirstMember = get-adgroupmember "Computers"
切斷第一個成員的最后一個號碼
$strFirstMember-1 = $strFirstMember.Substring(0,$strFirstMember.Length-1)
在廣告末尾搜索通配符以查找類似名稱
Get-ADObject -Filter { CN -like "$strFirstMember-1*" ObjectClass = "Computer"}
現在我需要將firstmember移到找到的位置
以下內容將收集與WEB230 *匹配的所有計算機,並將它們分配給變量$ c
$c = Get-AdComputer -Filter { CN -like "WEB230*"}
將找到的所有計算機移動到目標OU
$c | Move-ADObject -TargetPath "ou=YourOu,dc=domain,dc=com"
並且這將僅移動第一個成員,我不確定這是否就是您所說的“移動第一成員”。
$c[0] | Move-ADObject -TargetPath "ou=YourOu,dc=domain,dc=com"
我個人更喜歡Quest Active Directory Cmdlet在Powershell中進行AD腳本編寫。
這將是我用於移動的命令,來自一組已內置CSV文件的機器:
Import-Csv "C:\toMove.csv" |`
ForEach-Object {
Get-QADComputer $_.Name |`
Move-QADObject -NewParentContainer "OU=Computers,OU=Locked Computers,DC=com"
}
第一步,您也應該可以執行以下操作:
$comparrisonPC = get-qadComputer "computerToUse"
get-qadComputers -Name "nameStructure*" |`
Where-Object {$_.CN -not $comparrisonPC.ParentContainerDN} |`
Move-QADObject -NewParentContainer "$comparrissonPC.ParentContainerDN"
我沒有要對其進行測試的測試域,但是它應該可以工作...
利用已有的資源,獲得計算機,從中刪除最后一個字符,然后獲得所有具有相似名稱的計算機的列表。 一旦有了該列表,我就根據DistinguishedName屬性獲取了它的子字符串,將其剝離出來只是留下了OU路徑。 然后,我將其分組,按計數對分組進行排序,以找到名稱相同的計算機中擁有最多計算機的OU,然后選擇第一個。 然后,我告訴它將計算機移至該OU。
$strFirstMember = get-adgroupmember "Computers"
$strFirstMember-1 = $strFirstMember.Substring(0,$strFirstMember.Length-1)
$Complist = Get-ADComputer -Filter { CN -like "$strFirstMember-1*" }
$NewOU = ($complist|%{$_.DistinguishedName.substring($_.DistinguishedName.indexof(",")+1,$_.DistinguishedName.length-$_.DistinguishedName.indexof(",")-1)}|group|sort count -Descending|select -first 1).name
Move-ADObject $strFirstMember -TargetPath $NewOU
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.