
Недавно меня спросили, могу ли я запретить своему боссу автоматически применять настройки прокси-сервера. Наши настройки прокси-сервера устанавливаются групповой политикой, поэтому я решил, что должно быть легко определить, какой это GPO, и просто удалить его из группы, которую область GPO использует для его применения.
Наша групповая политика довольно сложна, поскольку к разным пользователям и компьютерам применяется довольно много различных объектов групповой политики.
Тогда возникает вопрос: как мне найти объект групповой политики, к которому применяется настройка, не просматривая каждый из них и не определяя, применяется ли он к учетной записи пользователя/компьютера?
Я прогнал через мастер моделирования групповой политики и для его учетной записи пользователя, и для компьютера (на всякий случай), но не нашел ничего конкретного для него. Единственный GPO, который имеет отношение к настройкам прокси, находится в пользовательском OU, в котором его учетная запись не находится. То есть GPO применяется к Domain Users\Users, а его учетная запись находится в Domain Users\IT.
Есть идеи? Есть ли инструмент, который может лучше сказать мне, какие настройки установлены на его аккаунте? Можно ли это сделать через powershell?
решение1
Вы можете запустить gpresult /h c:\temp\policy.htm
на целевом компьютере, чтобы получить результирующую политику. Вы также можете запустить ее удаленно, используяpsexec(с помощью команды cmd) илиPowershell.
Другой вариант — запуститьrsop.mscна целевом компьютере.
Примечание: и gpresult, и rsop следует выполнять под соответствующим пользователем, чтобы собрать политики, примененные к его учетной записи.
В Powershell вам нужно использовать либо командлетGet-GPResultantSetOfPolicyс параметрами -Компьютери-Пользователь
Get-GPResultantSetOfPolicy -user someuser -computer contoso.com\computer-08 -reporttype html -path c:\reports\UserAndComputerReport.html
Примечание: для запуска командлета Get-GPResultantSetOfPolicy необходимо запустить Windows PowerShell с повышенными правами.
или используйте следующий код Powershell, использующий COM-объект:
$OutputFile = “C:\Temp\GPOExport.html”
$ComputerName = “test.contoso.com”
$UserName = “john”
$gpm = New-Object -ComObject GPMgmt.GPM
$constants = $gpm.GetConstants()
$gpmRSOP = $GPM.GetRSOP($Constants.RSOPModeLogging,$null,0)
$gpmRSOP.LoggingComputer = $ComputerName
$gpmRSOP.LoggingUser = $UserName
$gpmRSOP.CreateQueryResults()
$gpmRSOP.GenerateReportToFile($constants.ReportHTML,$outputfile)