פרסומת
השבוע נתקלתי בבעיה מעניינת. במשרדים או בסביבות עבודה רבות, ייתכן שתצטרך להגדיר מחדש את הגדרות הרשת שלך כדי להתחבר לרשתות שונות. לדוגמה, יש אנשים שלוקחים איתם את המחשב הנייד שלהם והוגדר להם IP סטטי במיוחד עבור אותה מכונה. עם זאת, מכיוון שרשת העבודה היא בדרך כלל DHCP, הדבר מחייב את האדם להמשיך לשנות את הגדרות הרשת בין IP סטטי או DHCP אוטומטי, תלוי היכן הם נמצאים.
בעיה נפוצה יותר היא עבור מהנדסים או אנשי IT שלעתים קרובות צריכים להתחבר למכשירים או מכונות ברשת קטנה בתוך בניין. כדי להתחבר לרשת המבודדת ההיא, עליך לשנות את הגדרות הרשת שלך ל- IP סטטי. מאוחר יותר, כשאתה מתחבר מחדש לרשת הארגונית, הוא חוזר שוב ל- DHCP.
מצאתי את עצמי במצב זה לעיתים קרובות מספיק, ונמאס לי כל כך לגלוש לכרטיס הרשת, לפתוח את הגדרות ה- IP ובצעתי את העריכות האלה, שהחלטתי שהגיע הזמן להגיע להרכיב סקריפט VB שיעשה את הכל באחד או שניים קליקים. אם עקבת אחרי מאמרי התכנות שלי, אתה יודע שאני אוהב סקריפטים של VB. פעם פעם השתמשתי בזה ליצור מחשב מוחזק צור מחשב פריקי בעל סקריפט של חלונות ליל כל הקדושיםיש הרבה קונדס כיף שאתה יכול לשחק על חבריך באמצעות מחשב. בטח ראית את כל אותם קטעי ויוטיוב מפחידים שאנשים מעבירים זה לזה כדי להפחיד טוב ... קרא עוד , וגם פעם אוטומציה של Microsoft SyncToy כיצד ליצור כלי גיבוי נתונים בעזרת סקריפט SyncToy ו- VBכיסינו כאן הרבה פתרונות גיבוי ב- MUO, וכל הפתרונות האלה הם נהדרים, אבל אם אתם עובדים בסביבה המזהרת מפני חבילות תוכנה של צד שלישי בחינם, או חברות ... קרא עוד לגיבוי נתונים.
אפשר גם לבצע משימה זו באמצעות סקריפט VB, ואפשר אפילו להפוך אותה גמישה מספיק כדי שתוכל לקבל קלט משתמש עבור כתובת ה- IP הסטטית. במאמר זה, אראה לך כיצד לעשות זאת בשלושה חלקים.
יצירת הגדרת רשת לשנות סקריפט
יש שלוש משימות עיקריות שעליך לבצע עם התסריט על מנת ליצור את האפליקציה הקטנה הזו לשינוי הגדרות רשת. הראשונה היא להשתמש בסקריפט ליצירת הגדרות IP סטטיות. הבא הוא לבוא עם סקריפט שיאפשר DHCP. לבסוף, האחרון הוא לשאול את המשתמש איזו משימה הוא רוצה לבצע, ואז להשתמש במשוב הזה כדי לבצע אותה.
סקריפט VB להגדרת הגדרות IP סטטיות
זכור, צריך לשמור את הסקריפטים הבאים כקובץ טקסט עם סיומת .wsf כדי לעבוד על מחשב Windows. הסקריפט הבא ישנה את הגדרות הרשת שלך ל- IP סטטי עם מסיכת רשת משנה ספציפית ונקודת שער ברירת מחדל, כאשר שלושתם מקודדים בקשיח לתסריט.
לכל דגימות הקוד המפורטות במאמר זה, הקפד להוסיף "
להלן סקריפט שינוי ה- IP הסטטי:
אפשרות מפורשת בעת שגיאה חידוש Next Dim objWMIService. מתאם עמום. מחשב מחשוף עמום. כתובת arrIP עמומה. Dim arrSubnetMask. ערפילי עמום. מתאמי צבע עמומים. ErrEnableStatic עמום. עמוק errGateways strComputer = "." arrIPAddress = מערך ("192.168.1.106") arrSubnetMask = מערך ("255.255.255.0") arrGateway = מערך ("192.168.1.1") הגדר objWMIService = GetObject ("winmgmts: \\" & strComputer & "\ root \ cimv2") הגדר colNetAdapters = objWMIService. ExecQuery ("בחר * מתוך Win32_NetworkAdapterConfiguration איפה IPEnabled = TRUE") לכל objNetAdapter ב colNetAdapters errEnableStatic = objNetAdapter. EnableStatic (arrIPAddress, arrSubnetMask) אם לא errEnableStatic = 0 ואז WScript. הד "כישלון בהקצאת IP / Subnet." סוף אם errGateways = objNetAdapter. SetGateways (arrGateway) אם לא errGateways = 0 ואז WScript. הד "כישלון בהקצאת שער." סוף אם הבא. WScript. צא
סקריפט זה משתמש בשירות Windows WMI במערכת Windows כדי להשיג את המטרה של שינוי הגדרות. אתה יכול לראות את שלושת משתני המערך הקבועים שנטענו בכתובות ה- IP, ואז היכן הסקריפט בודק אם כרטיס הרשת הפעיל "מופעל". ואז הוא משתמש בשיטות "EnableStatic" ו- "SetGateways" כדי לבצע את השינויים הנדרשים. כשאני מפעיל את הסקריפט ברשת הביתית שלי (שם אני זקוק ל- DHCP), אתה יכול לראות היכן הסקריפט שינה בהצלחה את הגדרות המתאם שלי, ואיבדתי את חיבור האינטרנט שלי.
לאחר שהוכח שחלק ה- IP הסטטי של הסקריפט עובד, הגיע הזמן לכתוב את הסקריפט שיציב את המתאם ל- DHCP כך שהוא יאתר אוטומטית את ה- IP של הרשת. להלן התסריט שבו תוכלו להשתמש בכדי לעשות זאת.
אפשרות מפורשת בעת שגיאה חידוש Next Dim objWMIService. מתאם עמום. מחשב מחשוף עמום. Dim errEnable strComputer = "." הגדר objWMIService = GetObject ("winmgmts: \\" & strComputer & "\ root \ cimv2") הגדר colNetAdapters = objWMIService. ExecQuery ("בחר * מתוך Win32_NetworkAdapterConfiguration איפה IPEnabled = TRUE") עבור כל objNetAdapter ב colNetAdapters errEnable = objNetAdapter. EnDDCP () הבא WScript. צא
כפי שאתה יכול לראות, סקריפט זה פשוט הרבה יותר. הוא משתמש גם ב- WMI, אך הפונקציה היחידה הנדרשת היא "EnableDHCP". זה מבוצע במתאם הרשת המופעל כעת. לאחר שמירה והפעלת סקריפט זה, הגדרות כרטיס המתאם שלי חזרו ל- DHCP וחיבור האינטרנט שלי פעל שוב.
אז עכשיו שיש לך את הקוד לביצוע שתי הפעולות החשובות, החלק הבא של הטריק הזה יהיה לקבל קלט מהמשתמש כדי לקבוע בדיוק איזה IP סטטי הוא רוצה. כדי להפעיל מחדש את DHCP, אתה יכול לדרוש מהמשתמש להזין את המילה "AUTO" לאיתור ה- IP באופן אוטומטי.
כך נראה תסריט מלא ומלא זה הכולל את שני התסריטים שלמעלה.
אפשרות מפורשת בעת שגיאה חידוש Next Dim objWMIService. מתאם עמום. מחשב מחשוף עמום. כתובת arrIP עמומה. Dim arrSubnetMask. ערפילי עמום. מתאמי צבע עמומים. ErrEnableStatic עמום. שגיאות עמומות. קלט עמום. Dim errFailed errFailed = 0 strInput = InputBox ("הקלד כתובת IP סטטית או AUTO") אם strInput = "AUTO" ואז strComputer = "." הגדר objWMIService = GetObject ("winmgmts: \\" & strComputer & "\ root \ cimv2") הגדר colNetAdapters = objWMIService. ExecQuery ("בחר * מתוך Win32_NetworkAdapterConfiguration איפה IPEnabled = TRUE") עבור כל objNetAdapter ב colNetAdapters errEnable = objNetAdapter. EnableDHCP () אם לא שגיאה Enable = 0 ואז WScript. הד "הגדרת DHCP נכשלה." errFailed = 1 סוף אם הבא. אחרת strComputer = "." arrIPAddress = מערך (strInput) arrSubnetMask = מערך ("255.255.255.0") arrGateway = מערך ("192.168.1.1") הגדר objWMIService = GetObject ("winmgmts: \\" & strComputer & "\ root \ cimv2") הגדר colNetAdapters = objWMIService. ExecQuery ("בחר * מתוך Win32_NetworkAdapterConfiguration איפה IPEnabled = TRUE") לכל objNetAdapter ב colNetAdapters errEnableStatic = objNetAdapter. EnableStatic (arrIPAddress, arrSubnetMask) אם לא errEnableStatic = 0 ואז WScript. הד "כישלון בהקצאת IP / Subnet." errFailed = סוף 1 אם errGateways = objNetAdapter. SetGateways (arrGateway) אם לא errGateways = 0 ואז WScript. הד "כישלון בהקצאת שער." errFailed = 1 סוף אם הסוף הבא אם אם errFailed = 0 ואז WScript. הד "הגדרות ה- IP השתנו בהצלחה." סוף אם WScript. צא
סקריפט זה משתמש בפונקציית InputBox כדי לקבל את ה- IP הסטטי או את הפקודה "AUTO" מהמשתמש.
אם מקלידים לשדה משהו אחר מלבד "AUTO", ישמש כמחרוזת ה- IP הסטטית בחלק הקוד שמשתמש ב- WMI לקביעת הגדרות ה- IP הסטטיות עבור מתאם הרשת. יש גם אישור לאישור "0" שאומר שהכל התנהל כשורה.

בדקתי את הגדרות כרטיסי הרשת שלי לאחר הפעלת הסקריפט, אישרתי שהתסריט אכן גרם לשינויים בהגדרת ה- IP הסטטית.
עכשיו כדי לבדוק את התסריט AUTO. הקלדת AUTO עומדת בתנאי הראשון בהצהרה "IF" הבודקת אם AUTO. זה מפעיל את הסקריפט החלופי שמאפשר DHCP.

לאחר שהפעלתי את זה, נכנסתי להגדרות המתאם שלי ובטח שדי, זה הוחזר להשיג כתובת IP אוטומטית.
אמנם יתכן שמדובר במשימה די פשוטה להיכנס להגדרות כרטיס הרשת שלך ולשנות לסטטי או DHCP, אם אתה צריך לעשות זאת לעיתים קרובות זה עלול להפוך לכאב אמיתי. אתה יכול לעשות זאת משורת פקודה באמצעות "netsh", אך שוב, אתה צריך לזכור את תחביר הפקודה.
השימוש בסקריפט שלמעלה מאפשר לך לבנות כלי עזר מהיר וקל שתוכל להשתמש בו בכל עת כדי לשנות את הגדרות הרשת שלך תוך כדי תנועה.
חושב שאתה יכול לנסות את סקריפט Windows זה? יש רעיונות אחרים לצבוט אותו ולהפוך אותו אפילו טוב יותר? שתף את מחשבותיך והצעותיך בקטע התגובות למטה.
אשראי תמונה:קודי בינארי דרך Shutterstock
לראיין תואר ראשון בהנדסת חשמל. הוא עבד 13 שנה בהנדסת אוטומציה, 5 שנים בתחום ה- IT, וכעת הוא מהנדס אפליקציות. כעורך מנהל לשעבר של MakeUseOf, הוא דיבר בכנסים ארציים להמחשת נתונים והופיע בטלוויזיה וברדיו הארציים.