1. 程式人生 > >簡述為員工創立個人文件夾的三種方法

簡述為員工創立個人文件夾的三種方法

個人文件夾

需求:
為公司每個有域帳號的員工創立一個個人文件夾。
此文件夾權限為員工本人完全控制和管理員完全控制。
映射到員工的磁盤Z盤為驅動器

解決:
三種方式:
一,手動設置
在共享服務器D盤建立文件夾Personalsharefile
共享權限Everyon可編輯。共享名可以加$隱藏。圖1
技術分享圖片

本地安全如圖2
技術分享圖片

主要是關閉權限繼承,domain user只應用到當前文件夾,不繼承。

選定多個用戶,然後配置配置主文件夾如下。圖3。
\192.168.1.160\PersonalShareFile\%username%
技術分享圖片
點應用後會自動在PSF文件夾下簡歷對應用戶名的文件夾。
技術分享圖片
權限如下圖
技術分享圖片
然後客戶端就能看到
技術分享圖片

二,Powershell全自動


來源及參考:https://gallery.technet.microsoft.com/scriptcenter/PowerShell-script-to-832e08ed

腳本內容:
$Domain = "kaedeleo.com"
$ADServer = "dc01"
#文件服務器名或IP
$searchbase = "ou=人事部,ou=天越公司,DC=kaedeleo,DC=com"
#OU區域
$ShareFolderPhysicalPath="D:\PersonalShareFile"
#本機文件夾路徑
$ShareFolderNetworkPath="PersonalShareFile"

#共享名,後面可以加$隱藏
$homeDrive = "Z"
#映射的磁盤,可以隨便寫一個非磁盤名字的來刪除映射,比如"abc"
$FilenameType="surname"
#創立的私人文件夾的名字,這裏用的surname,姓;也可以用displayname之類的。
if(!(Test-Path $ShareFolderPhysicalPath))
{
New-Item -Path $ShareFolderPhysicalPath -type directory
icacls $ShareFolderPhysicalPath /inheritance:r /grant:r ‘administrators:(OI)(CI)F‘ ‘system:(OI)(CI)F‘ ‘creator owner:(CI)(OI)F‘
}
New-SmbShare -name $ShareFolderNetworkPath -Path $ShareFolderPhysicalPath -FullAccess everyone
Import-Module ActiveDirectory
$ADUsers = Get-ADUser -server $ADServer -Filter -searchbase $searchbase -Properties
ForEach ($ADUser in $ADUsers)
{
New-Item -ItemType Directory -Path "\$ADServer\$ShareFolderNetworkPath\$($ADUser.$FilenameType)"
$UsersAm = "$Domain\$($ADUser.sAMAccountname)"
$FileSystemAccessRights = [System.Security.AccessControl.FileSystemRights]"FullControl"
$InheritanceFlags = [System.Security.AccessControl.InheritanceFlags]::"ContainerInherit", "ObjectInherit"
$PropagationFlags = [System.Security.AccessControl.PropagationFlags]::None
$AccessControl =[System.Security.AccessControl.AccessControlType]::Allow
$NewAccessrule = New-Object System.Security.AccessControl.FileSystemAccessRule `
($UsersAm, $FileSystemAccessRights, $InheritanceFlags, $PropagationFlags, $AccessControl)
$userfolder = "\$ADServer\$ShareFolderNetworkPath\$($ADUser.$FilenameType)"
$currentACL = Get-ACL -path $userfolder
$currentACL.SetAccessRule($NewAccessrule)
Set-ACL -path $userfolder -AclObject $currentACL
$homeDirectory = "\$ADServer\$ShareFolderNetworkPath\$($ADUser.$FilenameType)"
Set-ADUser -server $ADServer -Identity $ADUser.sAMAccountname -Replace @{HomeDirectory=$homeDirectory}
Set-ADUser -server $ADServer -Identity $ADUser.sAMAccountname -Replace @{HomeDrive=$homeDrive}
}
pause

效果是
在DC01 的D盤建立PSF文件夾
共享設置權限為everyone完全
本地權限設置為一手動設置內的一致
在PSF建立OU範圍內的以每個用戶的姓為文件名的文件夾並映射到用戶主文件夾
效果與手動是一致的
可以自定義更多東西,但是用戶那個屬性裏一定要有東西,不然會變得很奇怪。。
技術分享圖片

三,Powershell+登錄腳本
Powershell:
$domainname="kaedeleo.com"
$ShareFolderPhysicalPath="D:\PersonalShareFile"
$ShareFolderNetworkPath="PersonalShareFile"
if(!(Test-Path $ShareFolderPhysicalPath))
{
New-Item -Path $ShareFolderPhysicalPath -type directory
icacls $ShareFolderPhysicalPath /inheritance:r /grant:r ‘administrators:(OI)(CI)F‘ ‘system:(OI)(CI)F‘ "$domainname\domain users:F" ‘creator owner:(CI)(OI)F‘
}
New-SmbShare -name $ShareFolderNetworkPath -Path $ShareFolderPhysicalPath -FullAccess everyone

從上面的腳本中取一部分。
建立文件夾和共享和本地權限。

然後用組策略的登陸腳本來創建文件夾和影射磁盤驅動器。
@echo off
set patha=\192.168.1.160\PersonalShareFile
if exist "%patha%\%username%" goto netuse
md "%patha%\%username%"
:netuse
net use | find "X:" >nul
if errorlevel 1 net use X: "%patha%\%username%"
pause

這樣做的好處是,只要做一個全局組策略的,每次新員工登陸就會自動創建。不需要像前兩個再手動設置或者運行一下。

進階需求:
權限枚舉
文件屏蔽
配額管理
郵箱報警

簡述為員工創立個人文件夾的三種方法