ActiveDirectory/ServerRake.ActiveDirectory.Read.ps1
|
######################################### ### ACTIVEDIRECTORY FUNCTIONS: READ ### ######################################### # ALL FUNCTIONS WILL NEED TO RUN FROM A JUMPHOST IMPORT THE ACTIVEDIRECTORY MODULE function Get-ADComputerOUs { [CmdletBinding()] param ( [Parameter(Mandatory = $true)] [String] $Jumphost, [Parameter(Mandatory = $true)] [String[]] $ComputerName ) Invoke-Command -ComputerName $Jumphost -Credential $secret -ArgumentList $secret, $ComputerName -ScriptBlock { param ($secret, $ComputerName) Import-Module ActiveDirectory -WarningAction SilentlyContinue $domainController = ([System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain().FindDomainController()).Name $allADComputers = Get-ADComputer -Filter * -Server $domainController -Credential $secret $filteredADComputers = @() foreach ($computer in $allADComputers) { if ($computer.Name -in $ComputerName) { $filteredADComputers += $computer | select -Property DistinguishedName, Name } } $filteredADComputers | ft } } function Get-ADGPOReport { [CmdletBinding()] param ( [Parameter(Mandatory = $true)] [String[]] $ComputerName ) $remoteScript = @( try { $logFile = "C:\Temp\gpo_output.xml" New-Item -Path $logFile -ItemType File -Force | Out-Null gpresult /X $logFile /F [xml]$report = Get-Content -Path $logFile Remove-Item -Path $logFile -Force return $report.Rsop.ComputerResults.GPO | select -Property Name, Enabled, ` IsValid, FilterAllowed, AccessDenied, SecurityFilter } catch { $_.Exception.Message } ) $response = Send-RemoteScript -ComputerName $ComputerName -RemoteScript $remoteScript $response | % { $_ | sort -Property Server -Descending | ft } } |