컴퓨터 사용을 자동화하는 5가지 유용한 VB Windows 스크립트

컴퓨터 사용을 자동화하는 5가지 유용한 VB Windows 스크립트

IT 분석가이든 일반 컴퓨터 사용자이든 상관없이 PC에서 자주 수행해야 하는 작업이 많이 있습니다. VB 스크립트는 컴퓨터 하드웨어에 대한 중요한 정보를 가져오는 것부터 서비스를 중지 및 시작하거나 네트워크 카드를 재설정하는 것에 이르기까지 모든 작업을 수행할 수 있는 Windows 스크립트 역할을 하는 Visual Basic 프로그램으로 축소되었습니다.





이러한 개별 작업을 모두 일반적인 방식으로 수행하는 방법을 배우거나 배치 파일을 사용하여 수행하는 것이 가능합니다. 하지만 VB 스크립트는 배치 스크립트보다 낫습니다. 더 유연하기 때문입니다. 필요할 때 빠르게 찾을 수 있는 일반적인 위치에 다음 스크립트를 저장하면 짧은 시간 안에 이러한 작업을 완료할 수 있습니다. 스크립트를 두 번 클릭하고 프롬프트에 응답하기만 하면 작업이 완료됩니다.





다음 VB Windows 스크립트를 살펴보고 사용하려는 스크립트가 있으면 스크립트를 복사하여 붙여넣습니다. 메모장 또는 기타 코딩 메모 도구 WSF 파일로 저장합니다.





Windows 스크립트 준비

아래에 설명된 각 스크립트는 파일 이름을 .WSF 확장자로 지정하고 시작 부분에 코드를 다음과 같이 묶기만 하면 더블 클릭으로 실행됩니다.


그리고 다음을 사용하여 코드를 닫습니다.



WScript.Quit

이렇게 하면 Windows에서 스크립트가 작성된 언어를 인식하고 올바르게 처리할 수 있습니다.

1. 컴퓨터 정보에 Windows 스크립트 사용

Windows는 WMI 또는 Windows Management Instrumentation이라는 기능을 제공합니다. 이 도구는 스크립트에 운영 체제 구성 요소에 액세스할 수 있는 인터페이스를 제공합니다. 실제로 WMI에 대해 쿼리를 실행하여 시스템에 대한 최신 실시간 정보를 얻을 수 있습니다. Microsoft는 모든 쿼리 카테고리 당신은 시스템에 대해 만들 수 있습니다.





VBA를 사용하여 Excel로 컴퓨터 정보를 가져오는 방법을 다루었지만 Excel 외부에서 간단한 VB 스크립트를 사용하여 이와 동일한 작업을 수행할 수 있습니다.

이 예에서는 시스템에 프로세서 정보(제품군, 제조업체, 코어 수), 배터리 정보(설명 및 상태), 논리 디스크 정보(이름, 남은 여유 공간, 전체 크기)를 쿼리합니다. 그런 다음 이 모든 정보를 쉽게 볼 수 있도록 CSV 파일로 출력합니다.





첫 번째 단계는 CSV 파일로 출력하는 데 사용할 FileSystemObject를 설정하고 파일을 만드는 것입니다.

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

다음 단계는 WMI 쿼리를 설정하고 실행하는 것입니다.

USB 하드 드라이브가 Windows 10을 표시하지 않음
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

마지막으로 파일을 닫고 객체를 'Nothing'으로 설정하여 코드를 종료하는 것을 잊지 마십시오.

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

모든 코드를 새 .WSF 파일에 넣고 실행하면 다음과 같은 결과가 표시됩니다.

정보를 얻고자 하는 다른 컴퓨터 장치나 소프트웨어에 대해 위의 쿼리를 바꾸면 됩니다. 그러면 마우스 클릭만으로 원할 때마다 전체 시스템 보고서를 얻을 수 있습니다.

2. 서비스 중지 및 시작

특정 서비스에 문제가 있고 다시 제대로 실행하려면 빠르게 다시 시작해야 하는 경우가 있습니다. 이것은 특히 IT에서 사실 때때로 약간 버그가 있는 서버 소프트웨어를 실행해야 할 때.

서비스 재시작 프로세스를 1분 정도 단축하려면 다음 스크립트를 편리한 위치에 저장하면 됩니다. 다시 시작하려는 서비스 이름을 입력하라는 메시지가 표시되면 정확히 수행됩니다.

서비스를 중지하고 시작하려면 관리자 권한이 필요하므로 스크립트 시작 부분에 다음 코드를 넣어 스크립트를 제공해야 합니다. 상승된 권한 :

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 명령'을 보냅니다.

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 Windows 스크립트를 마지막으로 저장했습니다. 이것은 내가 실제로 내 집 컴퓨터에서 예약된 작업으로 설정하고 내 웹사이트가 활성 상태인지 확인하기 위해 하루에 여러 번 실행하도록 한 것입니다. 사이트가 다운되면 스크립트를 이메일로 보내도록 하겠습니다. 이 동일한 스크립트를 사용하여 네트워크의 중요한 서버 또는 컴퓨터를 모니터링하고 스크립트가 장치를 ping할 수 없을 때마다 자신에게 이메일을 보낼 수 있습니다.

먼저 ping하려는 대상에 대한 스크립트를 설정하고 셸 개체를 만든 다음 ping 명령을 실행합니다.

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

Select Case 문을 사용하여 Ping 결과를 실행하고 그에 따라 응답합니다. 결과가 0으로 돌아오면 사이트(또는 서버)가 온라인 상태이고 아무 것도 할 필요가 없다는 것을 알 수 있습니다. '1'을 반환하면 ping이 실패한 것이며 조치를 취해야 합니다. 제 경우에는 Windows CDO 개체를 사용하여 이메일을 보냅니다.

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

스크립트가 실행되고 장치나 웹사이트를 ping할 수 없으면 인스턴트 메시지가 표시됩니다.

빠르고 쉽고 효율적입니다!

VB Windows 스크립트를 사용하여 컴퓨터 제어

이것들은 컴퓨터 사용을 합리화하기 위해 VB 스크립팅으로 할 수 있는 멋진 것들의 몇 가지 예일 뿐입니다. VB 및 Synctoy를 사용한 자동화된 백업, 텔넷 명령 자동화, 응용 프로그램 창 열기 및 제어와 같이 다른 많은 작업을 수행할 수 있습니다.

Windows 스크립트를 사용하여 컴퓨터에서 자동화한 작업에는 어떤 것이 있습니까? VB를 사용하여 작성합니까, 아니면 다른 도구를 사용합니까? PowerShell처럼 ?

공유하다 공유하다 트위터 이메일 FBI가 하이브 랜섬웨어에 대한 경고를 발령한 이유

FBI는 특히 악성 랜섬웨어 변종에 대해 경고했습니다. Hive 랜섬웨어를 특히 조심해야 하는 이유가 여기에 있습니다.

다음 읽기
관련 항목
  • 프로그램 작성
  • 컴퓨터 자동화
  • 스크립팅
저자 소개 라이언 두브(942건의 기사 게재)

Ryan은 전기 공학 학사 학위를 받았습니다. 그는 자동화 엔지니어링에서 13년, IT에서 5년을 근무했으며 현재는 앱 엔지니어입니다. MakeUseOf의 전 편집장인 그는 데이터 시각화에 관한 전국 회의에서 연설했으며 전국 TV와 라디오에 출연했습니다.

Ryan Dube가 참여한 작품 더보기

뉴스레터 구독

뉴스레터에 가입하여 기술 팁, 리뷰, 무료 전자책 및 독점 거래를 확인하십시오!

구독하려면 여기를 클릭하세요.