Skip to content

Instantly share code, notes, and snippets.

@IISResetMe
Created February 28, 2019 16:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save IISResetMe/d9a2fc70a29c5fc10f6a7bba737df6f6 to your computer and use it in GitHub Desktop.
Save IISResetMe/d9a2fc70a29c5fc10f6a7bba737df6f6 to your computer and use it in GitHub Desktop.
function Add-GroupMembership
{
[CmdletBinding(DefaultParameterSet='Pipeline')]
param(
[Parameter(Mandatory=$true, ValueFromPipeline=$true, ParameterSetName = 'Pipeline')]
[object[]]$InputObject,
[Parameter(Mandatory=$true, Position=0, ParameterSetName = 'Explicit')]
[string]$User,
[Parameter(Mandatory=$true, Position=1, ParameterSetName = 'Explicit')]
[string]$Group
)
begin {
$membershipsToAdd = @{}
}
process {
if($PSCmdlet.ParameterSetName -eq 'Explicit') {
$membershipsToAdd[$User] = $Group
}
else {
foreach($record in $InputObject) {
$membershipsToAdd[$record.Username] = $record.Groupname
}
}
}
end {
foreach($user in $membershipsToAdd.Keys) {
Add-UserToGroup -User:$user -Group:$membershipsToAdd[$user]
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment