From 33d0adac188e01dec032a36076d933bc67098039 Mon Sep 17 00:00:00 2001 From: Jaap Brasser Date: Mon, 15 Aug 2016 17:24:02 +0200 Subject: [PATCH] Allow multiple groups to be specified --- Get-GroupMember/Get-GroupMember.ps1 | 27 ++++++++++++------- .../Remove-ADAccountasLocalAdministrator.ps1 | 2 +- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/Get-GroupMember/Get-GroupMember.ps1 b/Get-GroupMember/Get-GroupMember.ps1 index 72e4e3a..ccad1cc 100644 --- a/Get-GroupMember/Get-GroupMember.ps1 +++ b/Get-GroupMember/Get-GroupMember.ps1 @@ -15,9 +15,9 @@ The name of the local group .NOTES Name : Get-GroupMember.ps1 Author : Jaap Brasser -Version : 1.0.0 +Version : 1.0.1 DateCreated: 2016-08-02 -DateUpdated: 2016-08-02 +DateUpdated: 2016-08-15 .LINK http://www.jaapbrasser.com @@ -42,12 +42,19 @@ Get-GroupMember -ComputerName 'Server01','Server02' -LocalGroup Administrators Description ----------- Gets the group members of the Administrators group on both Server01 and Server02 + +.EXAMPLE +Get-GroupMember -ComputerName 'Server01','Server02' -LocalGroup Administrators,Users + +Description +----------- +Gets the group members of the Administrators and the Users groups on both Server01 and Server02 #> [CmdletBinding()] param( [Parameter(Mandatory = $true)] [Alias('Group')] - [string] + [string[]] $LocalGroup, [Alias('CN','Computer')] [string[]] @@ -57,14 +64,16 @@ Gets the group members of the Administrators group on both Server01 and Server02 foreach ($Computer in $ComputerName) { Write-Verbose "Checking membership of localgroup: '$LocalGroup' on $Computer" try { - ([adsi]"WinNT://$Computer/$LocalGroup,group").psbase.Invoke('Members') | ForEach-Object { - New-Object -TypeName PSCustomObject -Property @{ - ComputerName = $Computer - LocalGroup = $LocalGroup - Member = $_.GetType().InvokeMember('Name', 'GetProperty', $null, $_, $null) + foreach ($Group in $LocalGroup) { + ([adsi]"WinNT://$Computer/$Group,group").psbase.Invoke('Members') | ForEach-Object { + New-Object -TypeName PSCustomObject -Property @{ + ComputerName = $Computer + LocalGroup = $Group + Member = $_.GetType().InvokeMember('Name', 'GetProperty', $null, $_, $null) + } } + Write-Verbose "Successfully checked membership of local group: '$LocalGroup' on $Computer" } - Write-Verbose "Successfully checked membership of localgroup: '$LocalGroup' on $Computer" } catch { Write-Warning $_ } diff --git a/Remove-ADAccountasLocalAdministrator/Remove-ADAccountasLocalAdministrator.ps1 b/Remove-ADAccountasLocalAdministrator/Remove-ADAccountasLocalAdministrator.ps1 index 601879e..0bfff70 100644 --- a/Remove-ADAccountasLocalAdministrator/Remove-ADAccountasLocalAdministrator.ps1 +++ b/Remove-ADAccountasLocalAdministrator/Remove-ADAccountasLocalAdministrator.ps1 @@ -63,7 +63,7 @@ This command dot sources the script to ensure the Remove-ADAccountasLocalAdminis Remove-ADAccountasLocalAdministrator -Computer Server01 -Trustee JaapBrasser Description: -Will remove the the JaapBrasser account to the Administrators group on Server01 +Will remove the the JaapBrasser account from the Administrators group on Server01 .EXAMPLE Remove-ADAccountasLocalAdministrator -Computer 'Server01','Server02' -Trustee Contoso\HRManagers