PowerShell Script để tìm người dùng quảng cáo với adminCount> 0


17

Gần đây tôi đã phát hiện ra tính năng "adminSDHolder" của Active Directory. Tôi cần một cách nhanh chóng để xác định tất cả người dùng sẽ bị ảnh hưởng bởi nó, cụ thể là tập lệnh để kết xuất tài khoản người dùng.

Câu trả lời:


18

Bạn có thể sử dụng tập lệnh powershell này để trả về người dùng có adminCount lớn hơn 0, có nghĩa là họ bị ảnh hưởng bởi tính năng adminSDHolder. Bạn sẽ cần Mô-đun AD cho PowerShell được cài đặt, đi kèm với RSAT.

import-module activedirectory

get-aduser -Filter {admincount -gt 0} -Properties adminCount -ResultSetSize $null      

4
Đây là một phương pháp sạch hơn để làm điều tương tự: get-aduser -filter {admincount -gt 0} -Properations admincount -ResultSetSize $ null
jbsmith

ngoài ra, bạn có thể tạo bộ lọc DSquery để làm điều tương tự
tony roth

2
@tony - Bạn có thể, nhưng OP đã yêu cầu cụ thể về tập lệnh PowerShell.
MDMarra


2

Đây là một biến thể về câu trả lời xuất sắc của MDMarra.

Import-Module ActiveDirectory
Get-ADUser -LDAPFilter "(admincount>0)" -Properties adminCount

Điều này sử dụng -LDAPFilter thay vì -Filter . Một số người thích sử dụng cú pháp bộ lọc LDAP vì nó có thể di động trên nhiều loại ứng dụng khác nhau.

Lưu ý rằng Bộ lọc và LDAPFilter có các đặc tính hiệu suất tương tự do bộ lọc được thực thi ở phía máy chủ. Khi truy vấn các thư mục lớn, luôn cố gắng thực hiện lọc trực tiếp như thế này, thay vì sử dụng Where-Objectsẽ khiến tất cả các đối tượng được tải xuống trước khi lọc. Điều này được mô tả chi tiết trên Bộ lọc bài viết TechNet so với Where-Object .


Tôi là người dùng thường xuyên -LDAPFiltervì vậy cảm ơn bạn đã đề cập đến nó và làm rõ lợi ích của nó.
jscott

-2
## Script name = Set-IheritablePermissionOnAllUsers.ps1
##
## sets the "Allow inheritable permissions from parent to propagate to this
##object"check box
# Contains DN of users
#
#$users = Get-Content C:\C:\Navdeep_DoNotDelete\variables\users.txt

Get-ADgroup -LDAPFilter “(admincount=1)” | select name

$users = Get-ADuser -LDAPFilter “(admincount=1)”

##Get-QADUser -SizeLimit 0 | Select-Object Name,@{n=’IncludeInheritablePermissions’;e={!$_.DirectoryEntry.PSBase.ObjectSecurity.AreAccessRulesProtected}} | Where {!$_.IncludeInheritablePermissions}

ForEach($user in $users)
{
# Binding the users to DS
$ou = [ADSI]("LDAP://" + $user)
$sec = $ou.psbase.objectSecurity
if ($sec.get_AreAccessRulesProtected())
{
$isProtected = $false ## allows inheritance
$preserveInheritance = $true ## preserver inhreited rules
$sec.SetAccessRuleProtection($isProtected, $preserveInheritance)
$ou.psbase.commitchanges()
Write-Host "$user is now inherting permissions";
}
else
{
Write-Host "$User Inheritable Permission already set"
}
}

1
Điều này thay đổi quyền mà không phải là những gì OP đang tìm kiếm. Ngoài ra, thay đổi quyền trên các đối tượng này sẽ không làm được gì nhiều. Lần tới khi quy trình AdminSDHolder chạy, nó sẽ đặt lại quyền của họ.
MDMarra

3
Đây là những con rồng.
Tom O'Connor
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.