עותק של rasphone.pbk מחק את שאר ה-VPN ברמת המערכת
החלפת ספר הטלפונים הגלובלי כדי לספק VPN אחד מוחקת כל חיבור אחר השמור בו. החזיקו פרופיל בעל שם, צפו בו בתצוגה מקדימה, ואז הוכיחו שהשאר שורדים.
ה-VPN החדש הופיע, האימות עבד, ו-VPN של צד שלישי שחי במכונה שנתיים נעלם באותה אתחול. שום דבר ביומן הפריסה לא הזכיר אותו, כי שום דבר בפריסה לא עסק בו. החבילה החליפה את ספר הטלפונים הגלובלי, והחיבור האחר היה רשומה בקובץ הזה. זו פעולת העתקה שמתנהגת בדיוק כפי שפעולת העתקה אמורה להתנהג.
התיקון אינו העתקה טובה יותר. הוא לא להעתיק את הקובץ.
מה ספר הטלפונים באמת מכיל
ספר טלפונים הוא מכל של הגדרות חיבור, לא פרופיל. רשומות לפי משתמש יושבות תחת פרופיל המשתמש, ו-רשומות של כל המשתמשים יושבות תחת נתיב ProgramData ברמת המכונה, ולכן פריסה שכותבת את הקובץ הזה נוגעת בכל משתמש מקומי בבת אחת. אותו קובץ נושא גם רשומות שיצרו ספקים אחרים, ומשם מגיע הנזק העקיף.
גם הגדרת חיבור אינה הסיפור כולו. נתיבים, מדיניות DNS, חומר CA מהימן וזהות מסופקים על ידי בעלים נפרדים.
גלו איזה היקף מחזיק בפרופיל
פרטו את שני ההיקפים לפני שכותבים משהו. Get-VpnConnection מחזיר את רשומות המשתמש הנוכחי ו-Get-VpnConnection -AllUserConnection מחזיר את אלה שברמת המכונה, ואותו שם יכול להתקיים בשניהם עם הגדרות שונות. החליטו איזה היקף הפריסה שלכם מחזיקה בו ורשמו אותו, כי עדכון ההיקף הלא נכון משאיר את המשתמש מתחבר דרך הפרופיל הישן בזמן שהשינוי שלכם יושב בקובץ שאיש לא קורא. משימה מתוזמנת שרצה כ-SYSTEM רואה גם סט פרופילים שונה מהמשתמש המחובר.
מתן שם לבעלים הוא הצעד שמונע מהמהנדס הבא לחזור על העתקת הקובץ כולו.
צרו או עדכנו את החיבור בעל השם, שום דבר אחר
עבור פרופיל Windows מקורי, Add-VpnConnection יוצר רשומה אחת, ו--AllUserConnection בוחר את ההיקף ברמת המכונה. הריצו אותו תחילה עם -WhatIf, כדי שהתצוגה המקדימה תנחת בתמלול שלכם ולא בתלונת משתמש:
Add-VpnConnection -Name 'Office VPN' -ServerAddress 'vpn.example.com' -TunnelType Ikev2 -AuthenticationMethod Eap -EapConfigXmlStream $approvedEapXml -AllUserConnection -WhatIfה-EAP XML חייב להגיע ממקום לגיטימי: מיוצא מפרופיל ייחוס שעובד, או נוצר על ידי כלי הניהול שלכם עבור השער בפועל. בלי הגדרות אמון שרת נכונות הפרופיל או מתחבר לדבר הלא נכון או נכשל בכל מקום, ושתי האפשרויות אינן פריסה מוצלחת.
כשהרשומה כבר קיימת, השוו את הגדרותיה ועדכנו אותה עם Set-VpnConnection במקום למחוק וליצור מחדש. מחיקה היא הדרך שבה תצורה עובדת מאבדת שדות שאיש לא תיעד, והדרך שבה רשומות לא קשורות נלכדות בניקוי רחב.
בדקו אם קיימת מערכת ניהול שנייה שתחזיר את הפרופיל הישן ברענון המדיניות הבא. פיילוטים נכשלים כאן לעתים קרובות יותר מאשר ב-cmdlet.
עשו פיילוט במכונה שכבר יש בה VPN אחר
בחרו מכונת בדיקה עם רשומה לא קשורה ברמת המכונה, פרסו, ואז אמתו שלושה דברים: הפרופיל החדש מופיע בהיקף המיועד, האימות מגיע למשאב פרטי, והרשומה הלא קשורה עדיין מתחברת. פרסו עוד פעמיים ואשרו שהריצה השנייה משנה רק את הפרופיל שהיא מחזיקה בו. הבדיקה השלישית הזו תופסת חבילה שהיא אידמפוטנטית לרשומה של עצמה והרסנית לכל השאר.
ההסרה עוקבת אחר אותו כלל: Remove-VpnConnection -Name 'Office VPN' -AllUserConnection מוציא לגמלאות רשומה אחת ומשאיר את שאר הקובץ בשקט.
השאירו את התצורה המיועדת הקודמת זמינה, כך שחזרה מוגבלת פירושה ייבוא מחדש של פרופיל אחד במקום שחזור מצב מכונה שלם.