[CmdletBinding()] param ( [string] $Identity, [string] $Server, [string] $ProjectName, [string] $Type = "RO" ) $User = $null $Group = $null if(!$PSBoundParameters.ContainsKey("ProjectName")){ throw "ProjectName Parameter not specified, aborting" return } if(!$PSBoundParameters.ContainsKey("Identity")){ throw "Identity Parameter not specified, aborting" return } if($PSBoundParameters.ContainsKey("Server")){ $User = Get-ADUser -Server $Server -Identity $Identity } else { $User = Get-ADUser -Identity $Identity } if($null -eq $User){ throw "Didn't find the user, aborting" return } if($PSBoundParameters.ContainsKey("Server")){ $Group = . .\GetProjects.ps1 -Server $Server } else { $Group = . .\GetProjects.ps1 } if($null -eq $Group){ throw "Can't find Project, aborting" return } $targeGroup =$null if($PSBoundParameters.ContainsKey("Server")){ $targeGroup = . .\GetRoles.ps1 -Server $Server -ProjectName $ProjectName | Where-Object Name -Match $Type } else { $targeGroup = . .\GetRoles.ps1 -ProjectName $ProjectName | Where-Object Name -Match $Type } if($null -eq $Group){ throw "Filter for Type was empty, aborting" return } if($PSBoundParameters.ContainsKey("Server")){ Add-ADGroupMember -Identity $targeGroup -Members $Identity -Server $Server } else { Add-ADGroupMember -Identity $targeGroup -Members $Identity }