Tôi đang cố liệt kê mọi người trong nhóm bảo mật trong thư mục hoạt động mà không sử dụng CmdLets trong PowerShell. Điều kỳ lạ với kịch bản của tôi là nó hoạt động nếu tôi liệt kê toàn bộ thư mục nhưng nếu tôi cố gắng và chỉ định với một truy vấn ldap những gì tôi muốn được liệt kê nó không hoạt động. Tôi biết truy vấn ldap của tôi là chính xác bởi vì tôi đã sử dụng nó trong một vbs tương tự và nó hoạt động. Các dòng nhận xét là nơi tôi đã cố gắng đưa vào truy vấn.Liệt kê người dùng trong nhóm quảng cáo đệ quy bằng tập lệnh powershell mà không cần CmdLets
$strFilter = "(&(objectCategory=person)(objectClass=user))"
#$strFilter = "(&(objectCategory=person)(objectClass=user)(memberOf=CN=Common Name,OU=User Groups,...,DC=ad,DC=domain,DC=com))" #... is just left out part of query
#$objDomain = New-Object System.DirectoryServices.DirectoryEntry
$objDomain = New-Object System.DirectoryServices.DirectoryEntry("LDAP://CN=Common Name,OU=User Groups,...,DC=ad,DC=domain,DC=com") #... is just left out part of query
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.PageSize = 1000
$objSearcher.Filter = $strFilter
$objSearcher.SearchScope = "Subtree"
$colProplist = "name"
foreach ($i in $colPropList){$objSearcher.PropertiesToLoad.Add($i)}
$colResults = $objSearcher.FindAll()
foreach ($objResult in $colResults)
{$objItem = $objResult.Properties; $objItem.name}
Tại sao bạn không thể sử dụng lệnh ghép ngắn? Điều đó giống như nói "Tôi muốn lập trình một cái gì đó trong C# mà không sử dụng phương pháp". – JNK
Những người đang đề xuất tôi sẽ phải cài đặt và tôi muốn điều này chạy trên bất kỳ máy tính nào chỉ với tập lệnh. – yoyomommy
CmdLets có sẵn với mô-đun thư mục hoạt động trong PowerShell 2.0. – JPBlanc