ניהול חיבורי VPN באמצעות PowerShell ב- Windows
בממשק המשתמש הגרפי של Windows 10/11, רק הממשק הקל להגדרת חיבורי VPN זמין, שאינו מאפשר לך להגדיר הגדרות VPN מסוימות. באפשרותך להשתמש הן בממשק הגדרות החיבור הקלאסי של VPN בלוח הבקרה והן באפליקציית תצורת הרשת המודרנית בחלונית ההגדרות (הסמל
ms-settings:network-vpnפקודת URI להגדרות גישה מהירה) כדי להגדיר את הגדרות חיבור ה-VPN. בפוסט זה, נסתכל כיצד לנהל חיבורי VPN ב- Windows באמצעות PowerShell: כיצד ליצור/לשנות/להסיר חיבור VPN ולהתחבר/להתנתק משרת VPN.
כדי ליצור חיבור VPN חדש ב- Windows, השתמש ב- cmdlet Add-VpnConnection. במקרה הפשוט ביותר, עליך להזין שם חיבור וכתובת שרת VPN.
Add-VpnConnection -Name VPNname1 -ServerAddress "vpn.a-d.site” -PassThruכדי לקבוע הגדרות מותאמות אישית עבור חיבור VPN, השתמש באפשרויות הבאות (הפופולריות ביותר):
-
TunnelType - סוג מנהרת VPN. הסוגים הבאים זמינים:
Automatic- Windows מנסה לזהות סוג מנהרת VPN עצמה
IKEv2— החלפת מפתחות אינטרנט
PPTP- פרוטוקול מנהור מנקודה לנקודה
L2TP- פרוטוקול מנהור שכבה 2/IPsec עם אישור או מפתח משותף מראש
SSTP- פרוטוקול תיעול שקע מאובטח
L2TPPsk — מפתח טרום-שיתוף לאימות (L2TP בלבד). אם האפשרות אינה מוגדרת, נעשה שימוש באישור עבור אימות L2TP
AuthenticationMethod - סוג אימות. באפשרותך להשתמש ב:
Pap,
Chap,
MSChapv2
,
Eap,
MachineCertificateEncryptionLevel - הגדרות הצפנה (
NoEncryption,
Optional,
Required,
Maximum,
Custom )
SplitTunneling - מגדיר אם כל התעבורה של מחשב חייבת להישלח דרך מנהרת ה-VPN (כמו האפשרות השתמש בשער ברירת מחדל ברשת מרוחקת בהגדרות מתאם ה-VPN)
UseWinlogonCredential -שימוש באישורי משתמש נוכחיים כדי לבצע אימות בשרת VPN
AllUserConnection - מאפשר שימוש בחיבור VPN לכל משתמשי המחשב
RememberCredential - מאפשר שימוש באישורי VPN שמורים (שם משתמש וסיסמה נשמרים במנהל האישורים של Windows לאחר החיבור המוצלח הראשון)
PassThru - מאפשר הצגת פלט פקודה (מומלץ להשתמש בכל הפקודות)
להלן כמה דוגמאות של פקודות PowerShell ליצירת סוגים שונים של חיבורי VPN.
L2TP/IPsec:
Add-VpnConnection -Name "VPN_L2TP" -ServerAddress "vpn.a-d.site" -TunnelType L2TP -L2tpPsk "My1pre-SharedKey2" -Force -EncryptionLevel "Required" -AuthenticationMethod MSChapv2 -UseWinlogonCredential -RememberCredential -AllUserConnection -PassThruPPTP:
Add-VpnConnection -Name "VPN_PPTP" -ServerAddress "vpn.a-d.site" TunnelType "PPTP" -EncryptionLevel "Required" -AuthenticationMethod MSChapv2 -SplitTunneling -PassThruSSTP: קודם כל, עליך לייבא CA שורש של שרת VPN למאגר אישורי המחשב ולהשתמש ב- FQDN של שרת ה- VPN שצוין באישור (CN — Common Name, או Subject Alternative Name) ככתובתו:
Add-VpnConnection -Name "VPN_SSTP" -ServerAddress "vpn.a-d.site" -TunnelType "SSTP" -EncryptionLevel "Required" -AuthenticationMethod MSChapv2 -RememberCredential -SplitTunneling -PassThruבעת שימוש באישורים בחתימה עצמית, באפשרותך להוסיף שמות מרובים (SAN) לאישור באמצעות PowerShell.
IKEv2: תחילה עליך לייבא את רשות האישורים הבסיסית למאגר אישורי הבסיס המהימנים של Windows ולייבא את אישור המחשב למאגר האישורים האישיים:
Import-PfxCertificate -FilePath $comp_certificate -CertStoreLocation Cert:\LocalMachine\My\ -Password $password Import-Certificate -FilePath $ca_cert -CertStoreLocation Cert:\LocalMachine\Root\ Add-VpnConnection -Name "VPN_IKEv2" -ServerAddress "vpn.a-d.site" -TunnelType Ikev2 -EncryptionLevel "Maximum" -AuthenticationMethod MachineCertificate -SplitTunneling $True -PassThru
חיבורי VPN הזמינים לכל המשתמשים (שנוצרו באמצעות האפשרות AllUserConnection) מוצגים במרכז הרשת עם מערכת כבעלים. לחיבור של המשתמש יופיע domain\username המופיע כאן.
חיבורי VPN משותפים נשמרים בקובץ טקסט:
%ProgramData%\Microsoft\Network\connections\Pbk\rasphone.pbkכדי לשנות את ההגדרות של חיבור VPN קיים, השתמש בפקודה Set-VpnConnection:
Set-VpnConnection -Name "VPN_SSTP" -splittunneling $false -PassThruאם ברצונך לשנות אפשרויות IPsec עבור חיבור VPN קיים, השתמש ב- cmdlet Set-VpnConnectionIpsecConfiguration (עבור IKEv2 או L2TP VPN בלבד):
Set-VpnConnectionIPsecConfiguration -ConnectionName "VPN_IKEv2" -AuthenticationTransformConstants SHA256128 -CipherTransformConstants AES256 -DHGroup Group14 -EncryptionMethod AES256 -IntegrityCheckMethod SHA256 -PfsGroup PFS2048 -PassThruאתה יכול להשתמש במודול VPNCredentialsHelper כדי לשמור אישורים עבור חיבור VPN.
התקן את המודול במחשב שלך מגלריית PowerShell (באפשרותך גם להתקין מודול PowerShell במצב לא מקוון):
Install-Module -Name VPNCredentialsHelperלאחר מכן תוכל לשמור שם משתמש וסיסמה עבור חיבור ה- VPN שלך במנהל האישורים של Windows:
$user = "vpn_username1"
$plainpass = "vpn_password1"
Set-VpnConnectionUsernamePassword -connectionname "VPN_SSTP" -username $user -password $plainpassבגרסאות מודרניות של Windows, אתה יכול להוסיף באופן דינמי נתיבים סטטיים לטבלת הניתוב כשאתה מתחבר ל- VPN.
Add-VpnConnectionRoute -ConnectionName "VPN" -DestinationPrefix 192.168.31.0/24 -PassThruהמסלול יופעל רק לאחר חיבור מוצלח לשרת VPN.
כדי להציג רשימה של כל חיבורי ה-VPN הזמינים למשתמש:
Get-VpnConnectionכדי להסיר חיבור VPN:
Remove-VpnConnection -Name "VPN_SSTP"כדי להתחבר לשרת VPN באמצעות פרופיל VPN שהוגדר קודם לכן:
rasdial "VPN_SSTP"כדי לקבל סטטוסים של כל חיבורי ה-VPN:
Get-Vpnconnection | Select Name, Connectionstatusהנה כמה מאמרים שימושיים לפתרון בעיות אופייניות בחיבורי VPN בווינדוס:
שגיאת VPN: ייתכן שיהיה עליך לשנות הגדרות רשת
אין גישה לאינטרנט כאשר ה-VPN פעיל
לא ניתן להתחבר לשרת L2TP/IPsec מאחורי התקן NAT-T
רזולוציית DNS של Windows באמצעות חיבור VPN אינה פועלת





