.\ImportGroupsAndUsers -siteurl http://webapp.domain.com/sites/SalesCenter .\SalesCenter1.csv
SalesCenter1.csv
User,Group
email1@domain.com,Sales Center Members
email1@domain.com,Sales Center Members
email1@domain.com,Sales Center Members
ImportGroupsAndUsers.ps1
param (
[string] $siteurl = "",
[string] $importtogroups = "",
[string] $createspgroups = "",
[string] $importwithperm = ""
)
if ($siteurl -eq "")
{
$siteurl = Read-Host "Site url";
}
[Void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint");
Write-Host -ForegroundColor green "Opening SharePoint site...";
$site = New-Object Microsoft.SharePoint.SPSite($siteurl)
$web = $site.RootWeb;
if ($createspgroups -ne "")
{
Write-Host -ForegroundColor green "Importing sharepoint groups from $createspgroups";
ipcsv $createspgroups | foreach {
$group = $_.GroupName;
$perm = $_.Permissions;
$owner = $_.Owner;
if ($owner -eq "") { $owner = $web.CurrentUser.LoginName }
Write-Host -ForegroundColor green " $group (owner = $owner, perm = $perm)"
$exists = $web.SiteGroups | where { $_.Name -eq $group }
if ($exists -eq $null)
{
# Create group
$web.SiteGroups.Add($group, $web.EnsureUser($owner), $null, "");
# Give permissions to the group
$assign = New-Object Microsoft.SharePoint.SPRoleAssignment($web.SiteGroups[$group]);
$assign.RoleDefinitionBindings.Add($web.RoleDefinitions[$perm])
$web.RoleAssignments.Add($assign)
}
else
{
Write-Host -ForegroundColor magenta " already exist"
}
}
}
if ($importtogroups -ne "")
{
Write-Host -ForegroundColor green "Importing users from $importtogroups";
ipcsv $importtogroups | foreach {
$user = $_.User
$group = $_.Group
Write-Host -ForegroundColor green " $user -> $group"
# Add user to the web
$spuser = $web.EnsureUser($user);
# Add user to group
if ($group -ne "")
{
$web.SiteGroups[$group].AddUser($spuser);
}
}
}
if ($importwithperm -ne "")
{
Write-Host -ForegroundColor green "Importing ad groups from $importwithperm";
ipcsv $importwithperm | foreach {
$group = $_.GroupName;
$perm = $_.Permissions;
Write-Host -ForegroundColor green " $group (perm = $perm)"
$sp = $web.EnsureUser($group);
# Give permissions to the group
$assign = New-Object Microsoft.SharePoint.SPRoleAssignment($sp);
$assign.RoleDefinitionBindings.Add($web.RoleDefinitions[$perm])
$web.RoleAssignments.Add($assign)
}
}
$site.Dispose();
Write-Host -ForegroundColor green "Done.";
No comments:
Post a Comment