5 סקריפטים שימושיים של VB Windows לאוטומציה של השימוש במחשב שלך

5 סקריפטים שימושיים של VB Windows לאוטומציה של השימוש במחשב שלך

בין אם אתה מנתח IT או משתמש רגיל במחשב, ייתכן שתצטרך לבצע הרבה משימות במחשב האישי שלך. סקריפטים של VB מוקטנים בתוכניות Visual Basic המשמשות כסקריפטים של Windows שיכולים לעשות כל דבר, החל משליפת מידע חשוב אודות חומרת המחשב שלך, לעצירה והפעלה של שירותים או איפוס כרטיס הרשת שלך.





אפשר ללמוד כיצד לעשות את כל אותם דברים בודדים בדרך הרגילה, או לעשות אותם באמצעות קבצי אצווה. אבל סקריפטים של VB טובים יותר מסקריפטים אצווה כי הם יותר גמישים. אם אתה מאחסן את הסקריפטים הבאים במקום נפוץ שאליו אתה יכול להגיע במהירות כשאתה צריך את זה, תוכל לבצע משימות אלה תוך חלקיק מהזמן. אתה פשוט לוחץ פעמיים על התסריט, עונה להנחיה והמשימה מסתיימת.





תסתכל על סקריפטים הבאים של VB Windows ואם אתה רואה כלשהו שאתה רוצה להשתמש בו, פשוט העתק והדבק את התסריט לתוכו פנקס רשימות או כלי הערות קידוד אחר ושמור אותו כקובץ WSF.





הכינו את סקריפטים של Windows

כל אחד מהסקריפטים המפורטים להלן יפעל בלחיצה כפולה בלבד כל עוד שמעת את הקובץ עם סיומת .WSF, וגם צירפת את הקוד בהתחלה עם:


וסגור את הקוד בעזרת:



WScript.Quit

זה מבטיח ש- Windows יזהה את השפה שבה כתוב התסריט שלך ויעבד אותה כראוי.

1. השתמש בסקריפטים של Windows למידע על מחשבים

Windows מציעה משהו שנקרא WMI, או Windows Management Instrumentation, המספק לתסריט שלך ממשק לגישה לרכיבים של מערכת ההפעלה. אתה יכול למעשה להריץ שאילתות נגד WMI כדי לקבל מידע חי שוטף על המערכת שלך. מיקרוסופט מציעה רשימה מלאה של כל קטגוריות של שאילתות אתה יכול לעשות נגד המערכת.





הסברנו כיצד להשתמש ב- VBA כדי למשוך מידע מחשב לאקסל, אך אתה יכול לעשות את אותו הדבר באמצעות סקריפט פשוט של VB מחוץ לאקסל.

בדוגמה זו אנו הולכים לבדוק את המערכת לגבי מידע המעבד (משפחה, יצרן ומספר ליבות), מידע על הסוללה (תיאור ומצב) ומידע על דיסק לוגי (שם, שטח פנוי שנותר וגודל כולל). לאחר מכן נפיק את כל המידע הזה לקובץ CSV לצפייה קלה.





השלב הראשון הוא הגדרת קובץ FileSystemObject בו תשתמש לפלט לקובץ ה- CSV וליצור את הקובץ:

Set oFSO = CreateObject('Scripting.FileSystemObject')
sFile1 = 'MyComputerInfo.csv'
Set oFile1 = oFSO.CreateTextFile(sFile1, 1)

השלב הבא הוא להגדיר את שאילתת WMI ולבצע אותה:

איך להכין מדבקות למברק
strQuery = 'SELECT Family,Manufacturer,NumberOfCores FROM Win32_Processor'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )

לבסוף, מיין את התוצאות ופלט את המידע לקובץ ה- CSV. אם אתה רוצה להיות מפואר, הקדים את זה בכמה שורות כדי לעזור לקובץ הפלט שלך להיראות טוב יותר:

oFile1.WriteLine 'Processor Information'
oFile1.WriteLine '------'
For Each objResult In colResults
strResults = 'Family:,'+CStr(objResult.Family)
oFile1.WriteLine strResults
strResults = 'Manufacturer:,'+CStr(objResult.Manufacturer)
oFile1.WriteLine strResults
strResults = 'Number of Cores:,'+CStr(objResult.NumberOfCores)
oFile1.WriteLine strResults
Next

אם אתה מפעיל את הקוד שלך כעת, כך ייראה הפלט שלך:

בשני החלקים הבאים בקוד שלך, אתה רק חוזר ושנה את השאילתה כדי לחפש את המידע הנוסף. להלן שאילתת פרטי הסוללה:

oFile1.WriteLine ''
strQuery = 'SELECT Description,Status FROM Win32_Battery'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )
oFile1.WriteLine 'Battery Information'
oFile1.WriteLine '------'
For Each objResult In colResults
strResults = 'Status:,'+CStr(objResult.Description)
oFile1.WriteLine strResults
strResults = 'Description:,'+CStr(objResult.Status)
oFile1.WriteLine strResults
Next

והנה החלק הבא לשאילתת הדיסק הלוגי:

oFile1.WriteLine ''
strQuery = 'Select Name, FreeSpace, Size from Win32_LogicalDisk'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )
oFile1.WriteLine 'Disk Information'
oFile1.WriteLine '------'
'Identify the Logical Disk Space
For Each objResult In colResults
strResults = 'Name:,'+CStr(objResult.Name)
oFile1.WriteLine strResults
strResults = 'Free Space:,'+CStr(objResult.FreeSpace)
oFile1.WriteLine strResults
strResults = 'Disk Size:,'+CStr(objResult.Size)
oFile1.WriteLine strResults
Next

לבסוף, זכור לסגור את הקוד על ידי סגירת הקובץ והגדרת האובייקטים ל'כלום ':

oFile1.Close
Set oFile1 = Nothing
set colResults = Nothing
strResults = ''

הכנס את כל הקוד הזה לקובץ ה- WSF החדש שלך, הפעל אותו, וככה ייראה הפלט שלך:

פשוט החלף את השאילתות למעלה בכל התקני מחשב או תוכנות אחרים שאתה רוצה לקבל מידע עליהם, ותוכל לקבל דוח מערכת מלא בכל עת שתרצה בלחיצת עכבר.

2. עצור והתחל שירותים

יהיו תקופות שבהן יש בעיות בשירותים מסוימים, ודורשות הפעלה מחדש מהירה כדי להפעיל מחדש כמו שצריך. זה במיוחד נכון ב- IT כשאתה נאלץ להריץ תוכנת שרת שלפעמים מעט מכוערת.

אם אתה רוצה להתגלח דקה בערך מתהליך ההפעלה מחדש של השירות, פשוט אחסן את הסקריפט הבא במקום נוח. הוא יבקש ממך להקליד את שם השירות שברצונך להפעיל מחדש ואז הוא יעשה זאת בדיוק.

מכיוון שעצירה והפעלה של שירותים דורשת הרשאות ניהול, עליך למקם את הקוד הבא בתחילת התסריט כדי לתת את הסקריפט שלך זכויות יתר :

If Not WScript.Arguments.Named.Exists('elevate') Then
CreateObject('Shell.Application').ShellExecute WScript.FullName _
, '''' & WScript.ScriptFullName & ''' /elevate', '', 'runas', 1
WScript.Quit
End If

לאחר שתעשה זאת, הוסף את שאר הקוד להפעלת תיבת הקלט עבור קלט המשתמש, הפעל את חלון הפקודה ושלח לו את 'פקודות net stop' ו- 'net start start':

Set cmdShell = CreateObject('WScript.Shell')
strServiceName=Inputbox('Inter Service to Stop','Input Required')
cmdShell.Run 'cmd.exe'
WScript.Sleep 1000
cmdShell.SendKeys 'net stop '+strServiceName
cmdShell.SendKeys '{Enter}'
WScript.Sleep 1000
cmdShell.SendKeys 'net start '+strServiceName
cmdShell.SendKeys '{Enter}'
WScript.Sleep 1000
cmdShell.SendKeys 'Exit'
cmdShell.SendKeys '{Enter}'

זה כל מה שיש. אין צורך לחפש אחר כלי השירותים. פשוט הפעל את הסקריפט הזה ועצור והתחל כל שירות תוך שניות.

3. שנה את הגדרות הרישום, סיסמת ברירת המחדל של מנהל המערכת

בעזרת התסריט הבא אנו הולכים להרוג שתי ציפורים במכה אחת. תסריט זה יראה לך כיצד לערוך את הרישום עם סקריפט VB. זה גם ייתן לך סקריפט שיאפשר לך להגדיר את שם המשתמש והסיסמה המוגדרים כברירת מחדל של Windows על ידי עריכת הגדרות הרישום האלה.

ככה זה עובד. ראשית, מכיוון שעריכת הרישום דורשת זכויות מנהל, יהיה עליך להגדיר הרשאות מוגברות עבור הסקריפט שלך:

If Not WScript.Arguments.Named.Exists('elevate') Then
CreateObject('Shell.Application').ShellExecute WScript.FullName _
, '''' & WScript.ScriptFullName & ''' /elevate', '', 'runas', 1
WScript.Quit
End If

הפעל תחילה שתי תיבות קלט כדי לשאול את המשתמש באיזה שם משתמש וסיסמה להשתמש:

strUserName=Inputbox('Enter the default User Name','Input Required')
strPassword=Inputbox('Enter the default Password','Input Required')

לאחר מכן, הגדר את אובייקט המעטפת וכתוב ערכים אלה למפתחות הרישום המתאימים:

Set wshShell = CreateObject( 'WScript.Shell' )
wshShell.RegWrite 'HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogonDefaultUserName', strUserName, 'REG_SZ'
wshShell.RegWrite 'HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogonDefaultPassword', strPassword, 'REG_SZ'
Set wshShell = Nothing

וזה כל מה שיש. שיטת 'RegWrite' מאפשרת לך לכתוב כל ערך לכל מפתח רישום באמצעות סקריפט VB של Windows. כל מה שאתה צריך לדעת הוא הדרך המתאימה.

הפעל את הסקריפט וענה על ההנחיות.

הערכים שתזין יוכנסו ישירות להגדרות הרישום שהגדרת בתסריט.

שחקו עם התסריט וקטנו אותו לטעמכם. אתה יכול לערוך כל מפתחות רישום שאתה אוהב, אז תהיה יצירתי!

4. אפס את חיבור הרשת שלך

איפוס חיבור הרשת שלך באמצעות סקריפט VB הוא משהו שסיקרנו בעבר כאן ב- MakeUseOf. הגרסה הבאה של זה למעשה מוקטנת והרבה יותר פשוטה ליישום. במקום לבקש כרטיסי רשת בודדים, הוא מאפס את כל החיבורים הפעילים שלך, בתקווה שיפתרו את בעיות הרשת שעשויות להיות לך.

כמו סקריפטים אחרים הזקוקים לזכויות מנהל, יהיה עליך להוסיף את הקטע בהתחלה לקבלת הרשאות מוגברות. העתק את הקוד מהסקריפט למעלה.

לאחר מכן, צור את אובייקט WMI ושאול אותו לרשימת מתאמי רשת מופעלים במערכת שלך:

strComputer = '.'
Set objWMIService = GetObject('winmgmts:\' & strComputer & 'ootCIMV2')
Set colItems = objWMIService.ExecQuery( _
'SELECT * FROM Win32_NetworkAdapter Where NetEnabled = 'True'')

לבסוף, עיין בכל המתאמים המופעלים ואפס אותם:

For Each objItem in colItems
objItem.Disable
WScript.Sleep 1000
objItem.Enable
Next

זה יאפס את כל שלך מתאמי רשת פעילים , שהיא לרוב הדרך המהירה ביותר לפתור בעיות רשת מעצבנות. שמור את התסריט הזה בהישג יד ונסה אותו קודם כל פעם שיש לך רשת איטית או בעיות רשת מוזרות אחרות.

5. התקני פינג או אתרי אינטרנט

שמרתי את סקריפט החלונות VB האהוב עלי לאחרונה. זוהי למעשה אחת שהגדרתי כמשימה מתוזמנת במחשב הביתי שלי והפעלתי אותה מספר פעמים ביום רק כדי לבדוק אם האתר שלי פעיל. יש לי את התסריט לשלוח לי דוא'ל אם האתר מושבת. אתה יכול להשתמש באותו סקריפט כדי לעקוב אחר שרתים או מחשבים חשובים ברשת שלך ולשלוח לעצמך דוא'ל בכל עת שהתסריט שלך לא יכול לצלצל למכשיר.

ראשית, הגדר את הסקריפט של היעד שברצונך לבצע פינג, צור את אובייקט המעטפת ולאחר מכן הפעל את הפקודה ping.

strTarget = 'topsecretwriters.com'
Set WshShell = WScript.CreateObject('WScript.Shell')
Ping = WshShell.Run('ping -n 1 ' & strTarget, 0, True)

השתמש בהצהרת Select Case כדי לעבור על תוצאות הפינג ולהגיב בהתאם. אם התוצאות חוזרות כאפס, אז אתה יודע שהאתר (או השרת) מחובר ואינך צריך לעשות דבר. אם הוא מחזיר '1' אז הפינג נכשל ואתה צריך לעשות משהו. במקרה שלי, אני שולח דוא'ל באמצעות אובייקט CDO של Windows:

Select Case Ping
Case 0
Case 1
Set objMessage = CreateObject('CDO.Message')
Set objConfig = CreateObject('CDO.Configuration')
objConfig.Load -1
Set Flds = objConfig.Fields
With Flds
.Item ('http://schemas.microsoft.com/cdo/configuration/smtpusessl') = True
.Item ('http://schemas.microsoft.com/cdo/configuration/smtpauthenticate')=1
.Item ('http://schemas.microsoft.com/cdo/configuration/sendusername')='xxxxxx@gmail.com'
.Item ('http://schemas.microsoft.com/cdo/configuration/sendpassword')='xxxxxxxxxxxxxxxxx'
.Item ('http://schemas.microsoft.com/cdo/configuration/smtpserver')='smtp.gmail.com'
.Item ('http://schemas.microsoft.com/cdo/configuration/sendusing')=2
.Item ('http://schemas.microsoft.com/cdo/configuration/smtpserverport')=465
.Update
End With
With objMessage
Set .Configuration = objConfig
.Subject = 'Your site is offline'
.From = 'me@mycomputer.com'
.To = 'xxxxxx@gmail.com'
.TextBody = 'Hey, your website is offline.'
.Send
End With
End Select

ברגע שהתסריט פועל ואינו יכול לצלצל למכשיר או לאתר, תקבל הודעה מיידית.

זה מהיר וקל, וכל יעיל!

שימוש בסקריפטים של VB Windows לשליטה במחשב שלך

אלו הן רק כמה דוגמאות לכמה מהדברים המגניבים שאתה יכול לעשות עם סקריפטים של VB כדי לייעל את השימוש במחשב שלך. יש הרבה דברים אחרים שאתה יכול לעשות כמו גיבויים אוטומטיים עם VB ו- Synctoy, אוטומציה של פקודות טלנט או אפילו פתיחה ושליטה של ​​חלונות יישומים.

מהם הדברים שהפכת אוטומטית למחשב באמצעות סקריפט של Windows? האם אתה כותב את שלך באמצעות VB, או משתמש בכלי אחר כמו PowerShell ?

לַחֲלוֹק לַחֲלוֹק צִיוּץ אימייל הנה הסיבה שה- FBI הוציא אזהרה על תוכנת כופר של כוורת

ה- FBI הוציא אזהרה על זן מגעיל במיוחד של תוכנות כופר. הנה הסיבה שאתה צריך להיזהר במיוחד מתוכנת הכופר של כוורת.

קרא הבא
נושאים קשורים
  • תִכנוּת
  • אוטומציה ממוחשבת
  • תסריט
על הסופר ריאן דוב(פורסמו 942 מאמרים)

לריאן תואר ראשון בהנדסת חשמל. הוא עבד 13 שנים בהנדסת אוטומציה, 5 שנים בתחום ה- IT, וכיום הוא מהנדס אפליקציות. עורך מנהל לשעבר של MakeUseOf, דיבר בכנסים ארציים בנושא ויזואליזציית נתונים והוצג בטלוויזיה והרדיו הלאומיים.

עוד מאת ריאן דוב

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים, סקירות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

לחצו כאן להרשמה