כיצד לנהל שיתופי קבצים של Windows באמצעות PowerShell
מודול SMBShare PowerShell המובנה מאפשר לך ליצור, להגדיר ולנהל תיקיות רשת משותפות ב- Windows. במאמר זה, נבחן כיצד לנהל שיתופי קבצים (תיקיות רשת SMB) באמצעות PowerShell. תוכל להשתמש בדוגמאות אלה כדי לנהל במהירות ובקלות את שרתי הקבצים והתיקיות המשותפות שלך בתרחישי אוטומציה שונים.
מודול SMBShare מכיל 42 רכיבי cmdlet של PowerShell לניהול תיקיות רשת משותפות. באפשרותך להציג את הרשימה המלאה של רכיבי cmdlet במודול:
Get-Command -Module SMBShareכדי להציג את התצורה הנוכחית של שרת Windows SMB:
Get-SmbServerConfigurationAnnounceComment :
AnnounceServer : False
AsynchronousCredits : 64
AuditSmb1Access : False
AutoDisconnectTimeout : 15
AutoShareServer : True
AutoShareWorkstation : True
CachedOpenLimit : 10
DurableHandleV2TimeoutInSeconds : 180
EnableAuthenticateUserSharing : False
EnableDownlevelTimewarp : False
EnableForcedLogoff : True
EnableLeasing : True
EnableMultiChannel : True
EnableOplocks : True
EnableSecuritySignature : False
EnableSMB1Protocol : True
EnableSMB2Protocol : True
EnableStrictNameChecking : True
EncryptData : False
IrpStackSize : 15
KeepAliveTime : 2
MaxChannelPerSession : 32
MaxMpxCount : 50
MaxSessionPerConnection : 16384
MaxThreadsPerQueue : 20
MaxWorkItems : 1
NullSessionPipes :
NullSessionShares :
OplockBreakWait : 35
PendingClientTimeoutInSeconds : 120
RejectUnencryptedAccess : True
RequireSecuritySignature : False
ServerHidden : True
Smb2CreditsMax : 2048
Smb2CreditsMin : 128
SmbServerNameHardeningLevel : 0
TreatHostAsStableStorage : False
ValidateAliasNotCircular : True
ValidateShareScope : True
ValidateShareScopeNotAliased : True
ValidateTargetName : Trueבאפשרותך לשנות אפשרויות שרת SMB באמצעות cmdlet Set-SmbServerConfiguration.
לדוגמה, כדי להשבית את פרוטוקול SMB 1 מדור קודם, הפעל את הפקודה הבאה:
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Forceכדי להציג רשימה של גירסאות פרוטוקול SMB המשמשות לקוחות פעילים כדי להתחבר לשיתופי קבצים בשרת הקבצים הנוכחי של SMB:
Get-SmbConnectionכדי להגדיר מגבלות רוחב פס עבור תעבורת קבצים קטנים ובינוניים, באפשרותך להגדיר את מדיניות QoS עבור שרת SMB שלך (כיצד להגדיר מגבלות רוחב פס של SMB?). לדוגמה, הפקודה הבאה תגביל את רוחב הפס המרבי עבור תעבורת SMB ל- 10 MB:
Set-SmbBandwidthLimit -Category Default -BytesPerSecond 10MBיצירת תיקיה משותפת ב- Windows באמצעות PowerShell
כדי להציג רשימה של תיקיות משותפות הזמינות במחשב, הפעל פקודה זו:
Get-SmbShareבאפשרותך לראות מספר מיקומים משותפים ניהוליים ואת התיקיה המשותפת Distr במחשב זה.
כדי ליצור תיקיה משותפת חדשה, הפעל את הפקודה הבאה:
New-SmbShare -Name Scripts -Path C:\PS -FullAccess a-d\mun_admins, a-d\mun-man01$ -ChangeAccess "a-d\mun-man01_scripts_rw" -ReadAccess "$env:USERDOMAIN\domain users" -description "PowerShell scripts for admin"בדוגמה זו, יצרנו תיקיה משותפת והענקנו גישה לקבוצות תחומים ולחשבון מחשב אחד.
בנוסף, בעת יצירת תיקיה משותפת, באפשרותך להשתמש באפשרויות הבאות:
-CachingMode [None|Manual|Programs|Documents|BranchCache]-הגדרת מצב אחסון במטמון לגישה לא מקוונת (קבצים לא מקוונים של Windows);
-EncryptData $True- כדי לאפשר הצפנת תעבורה של עסקים קטנים ובינוניים;
-FolderEnumerationMode [AccessBased | Unrestricted]- כדי לאפשר ספירה מבוססת גישה. מאפשר להסתיר אובייקטים שלמשתמש אין הרשאה לגשת אליהם מהתיקיה המשותפת;
-CompressData $True- כדי לאפשר דחיסה בעת שליחת קבצים על SMB;
-ConcurrentUserLimit 50- כדי להגדיר מגבלה של חיבורים בו זמנית לתיקייה (0 כברירת מחדל, ללא הגבלה);
-Temporary- כדי ליצור תיקיה משותפת זמנית (נעלמת לאחר ההפעלה מחדש הבאה של Windows).
באפשרותך להציג רשימה מלאה של הגדרות תיקיה משותפת:
Get-SmbShare -Name scripts| select *כדי להסיר תיקיה משותפת ברשת:
Remove-SmbShare Scriptsכדי להוסיף הרשאת כתיבה עבור משתמש לרשימת רשימות בקרת הגישה של התיקיה המשותפת:
Grant-SmbShareAccess -Name Scripts -AccountName "a-d\b.hoffmann" -AccessRight Change -forceהצג את רשימת הגישה הנוכחית לתיקיות משותפות:
Get-SmbShareAccess scripts
כדי להסיר קבוצת אבטחה מ-ACL של שיתוף:
Revoke-SmbShareAccess -Name Scripts -AccountName Everyone -Forceכדי לכפות חסימת גישה לתיקיה משותפת (להרשאת דחייה יש עדיפות גבוהה יותר):
Block-SmbShareAccess -Name Scripts -AccountName a-d\ExternalGuests -Forceברוב המקרים, עליך להשתמש בהרשאות כולם -> RW בתיקיה משותפת. במקרה זה, הרשאות התיקיה נקבעות ברמת NTFS.
באפשרותך לקבל את מתאם בקרת הגישה הנוכחי של NTFS עבור תיקיה משותפת באמצעות פקודה זו:
(get-acl \\mun-man01\scripts).accessכדי לשנות הרשאות NTFS, השתמש ב- cmdlet Set-Acl (למד עוד אודות אופן הניהול של הרשאות NTFS באמצעות PowerShell).
כיצד להציג ולנהל קבצים פתוחים במניות Windows?
באפשרותך להשתמש ברכיבי cmdlet של SMBShare כדי להציג רשימה של קבצים שנפתחו על-ידי משתמשים בתיקיה משותפת בשרת קבצים של Windows.
כדי להציג רשימה של קבצים שנפתחו עם שמות משתמש, שמות מחשבים (כתובות IP) ונתיבי קבצים:
Get-SmbOpenFile|select ClientUserName,ClientComputerName,Path,SessionIDכדי להציג רשימה של קבצים שנפתחו על-ידי משתמש ספציפי:
Get-SMBOpenFile -ClientUserName "a-d\b.hoffmann" |select ClientComputerName,Pathכדי לסגור קובץ שמשתמש פתח וננעל על-ידי משתמש מרוחק:
$sessn = New-CIMSession -Computername munfs01
Get-SMBOpenFile -CIMSession $sessn | where {$_.Path -like "*sale_report2022.docx"} | Close-SMBOpenFile -CIMSession $sessnקבל מידע נוסף על ניהול קבצים פתוחים במיקומים משותפים של עסקים קטנים ובינוניים ב- Windows.
מיפוי כונני רשת SMB באמצעות רכיבי cmdlet של SmbMapping
רכיבי cmdlet של SmbMapping משמשים לניהול כונני רשת.
כדי למפות תיקיה משותפת ברשת לכונן הרשת U:, הפעל את הפקודה הבאה:
New-SmbMapping -LocalPath U: -RemotePath \\munfs01\scripts -UserName b.hoffmann -Password my22pass -Persistent $true -SaveCredentialללא האפשרות מתמיד, כונן הרשת הממופה יהיה זמין רק עד להפעלה מחדש של המחשב;
האפשרות SaveCredential מאפשרת שמירת אישורי משתמש במנהל האישורים של Windows.
כדי להציג רשימה של תיקיות רשת ממופות:
Get-SmbMappingכדי להסיר כונן רשת:
Remove-SmbMapping U: -forceבאפשרותך להשתמש ב- GPO כדי למפות כונני רשת ב- Windows.



