الخميس، 23 أكتوبر 2014

سلسلة تقارير الباورشل : تقرير المستخدمين و الصلاحيات


من البديهي ان يكون مطلوبا من اداري مزرعة الشيربوينت ان يقوم بارسال تقارير مفصلة الى ادارته تخص مزرعة الشيربوينت.
من اهم هذه التقارير تقرير سرد جميع مستخدمي المزرعة و صلاحياتهم على مختلف المواقع و مجموعات المواقع و القوائم و الملفات و غير ذلك...
السكربت التالي سيفيدك كثيرا خصوصا انه يساعد على استخراج المطلوب على هيئة ملف CSV سهل القراءة بالاضافة الى انه يعرض النتائج على الكنسول بشكل انيق و ملون :








Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

$timestamp = get-date -format "yyyyMMdd_hhmmtt"
$filenameStart = "c:\scripts_output\AllFARMUsers"
$logfile = ("{0}_{1}.csv" -f $filenamestart, $timestamp)

$header = "type,user,group,weburl,webname"
$header | out-file -FilePath $logfile

$iissitelist = get-spwebapplication 
foreach($onesite in $iissitelist)
{

foreach ($SiteCollection in $onesite.sites)
{
write-host $SiteCollection -foregroundcolor Blue
foreach ($web in $SiteCollection.Allwebs)
write-host "    " $web.url $web.name "users:" -foregroundcolor yellow
# Write-host "        " $web.users | select name 
foreach ($userw in $web.users)
{
write-host "        " $userw -foregroundcolor white
#$msg = ("{0},{1} user:{2}" -f $web.url,$web.name, $userw)
$msg = ("RootUser,{0},-,{1},{2}" -f $userw, $web.url,$web.name) 
$msg | out-file -FilePath $logfile  -append
   
}


foreach ($group in $web.Groups)
{
Write-host "        " $web.url $group.name: -foregroundcolor green
foreach ($user in $group.users)
 Write-host "            " $user -foregroundcolor white
 #$msg = ("{0},{1},group:{2}, user:{3}" -f $web.url, $web.name, $group, $user)
 $msg = ("GroupUser,{0},{1},{2},{3}" -f $user, $group, $web.url, $web.name)
 $msg | out-file -FilePath $logfile  -append
}
}
$web.Dispose()
}
 
}
}


بقي ان تختبره بنفسك :)


ليست هناك تعليقات: