Под интерактивным входом я подразумеваю типы входа 2, 10 или 11.

Я хотел бы написать сценарий PowerShell, который может предоставить мне список учетных записей служб, для которых включены привилегии интерактивного входа в систему.

Я пробовал два подхода.

Я пытался получить список учетных записей служб следующим образом:

Get-ADServiceAccount -Right -seInteractiveLogonRight

Я также попытался применить фильтр к группе пользователей:

Get-ADUser -Filter {name like ‘svc*’} | 
Where-Object LogonType -eq 'Interactive'

Ни один из подходов не работает. В первом случае я получаю синтаксическую ошибку: -Right не существует в качестве допустимого параметра, а во втором случае я не получаю ответа (просто истекло время).

Помощь / указатели приветствуются. Я новичок в Powershell, поэтому извиняюсь, если я упускаю что-то фундаментальное.

0
SQLGIT_GeekInTraining 22 Фев 2021 в 00:32

1 ответ

Лучший ответ

Что касается этого ...

Get-ADServiceAccount -Right

... для этого командлета такого параметра нет. Всегда, всегда проверяйте файл справки, что возможно, а что невозможно для командлета, функции, модуля и т. Д.

# Get specifics for a module, cmdlet, or function
(Get-Command -Name Get-ADServiceAccount).Parameters
(Get-Command -Name Get-ADServiceAccount).Parameters.Keys
# Results
<#
Verbose
Debug
ErrorAction
WarningAction
InformationAction
ErrorVariable
WarningVariable
InformationVariable
OutVariable
OutBuffer
PipelineVariable
AuthType
Credential
Filter
Identity
LDAPFilter
Partition
Properties
ResultPageSize
ResultSetSize
SearchBase
SearchScope
Server
#>
Get-help -Name Get-ADServiceAccount -Examples
Get-help -Name Get-ADServiceAccount -Full
Get-help -Name Get-ADServiceAccount -Online

# Get specifics for a module, cmdlet, or function
(Get-Command -Name Get-ADUser).Parameters
(Get-Command -Name Get-ADUser).Parameters.Keys
# Results
<#
Verbose
Debug
ErrorAction
WarningAction
InformationAction
ErrorVariable
WarningVariable
InformationVariable
OutVariable
OutBuffer
PipelineVariable
AuthType
Credential
Filter
Identity
LDAPFilter
Partition
Properties
ResultPageSize
ResultSetSize
SearchBase
SearchScope
Server
#>
Get-help -Name  Get-ADUser -Examples
Get-help -Name  Get-ADUser -Full
Get-help -Name  Get-ADUser -Online

Тип входа - это объект службы на хосте, а не свойство через объект пользователя / компьютера AD.

# Get all services
Get-WmiObject -Class Win32_Service -ComputerName $env:ComputerName | 
Select-Object -Property DisplayName, StartName, State  

# Filter for type
Get-WmiObject -Class Win32_Service -ComputerName $env:ComputerName | 
Where-Object { $PSItem.StartName -match 'LocalSystem' } | 
Select-Object -Property DisplayName, StartName, State  

Права устанавливаются в политиках (GPO или LPO) для учетной записи пользователя / службы.

[xml]$report = Get-GPOReport -Name "Default Domain Policy" -ReportType XML

Вы можете отфильтровать этот отчет для получения конкретной информации. Кроме того, Вы можете использовать инструмент secedit.exe, чтобы получить их.

команды secedit

https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/secedit

Это может дать отчет о правах, но вам нужно будет перевести идентификаторы безопасности, чтобы имя отображалось на простом английском языке.

См. Этот образец:

https://www.powershellbros.com/get-user-rights-assignment-security-policy-settings

Хотя инструмент уже давно обесценился, вы все еще можете использовать инструмент ntrights.exe для получения этой информации. Инструмент ntights.exe входит в состав Windows Resource Kit. Это если у вас есть старый MSDN, носитель TechNet, чтобы получить его, или если вы знаете кого-то, у кого он есть. Если нет, вы должны делать такие вещи.

Find-Module -Name '*rights*'
# Results
<#
Version Name                  Repository Description                                                                                                                
------- ----                  ---------- -----------                                                                                                                
1.0.2   cUserRightsAssignment PSGallery  The cUserRightsAssignment module contains the cUserRight DSC resource that provides a mechanism to manage user rights:     
                                         logon rights and privileges. 
#>

Или скачайте и используйте этот инструмент ...

https://archive.codeplex.com/?p=userrights

Модуль UserRights PowerShell охватывает следующие варианты использования:

  • Получить список пользователей, которым назначены определенные права
  • Получить список прав, назначенных конкретному пользователю
  • Получите список всех прав пользователей с аккаунтами
  • Предоставить пользователю или группе права пользователя
  • Отозвать пользователю или сгруппировать права пользователя

... примечание: это также устаревший инструмент.

0
postanote 22 Фев 2021 в 10:29