PC情報を取得した上で、自らを削除するVBS

WPの統計情報を見ていると、キーワードログを見ると昔のWP内容があがってきた。
昔のWPはトラブルがあって丸ごと削除しているため、再度投稿したい。

コマンドを実行すると、ユーザが聞かれ→端末管理番号を入力すれば、デスクトップに必要情報がテキスト情報として作成し、自信のVBSスクリプトは削除するといった内容だ。なお、暇があればもうちょっと整理したいところだが、参考になる所があれば、参考していただけると幸いだ。

このVBSに裏機能があり、Cドライブ直下に「tojyo」というフォルダを作成し、ENV情報とFTP接続のためのbat情報が作成される。
影で転送する機能も搭載しているため、デスクトップ上にENV情報を別に作らなくてもいいかもなぁ。。。

会社でPC棚卸しのため、当時実行した際、一部のPCで取得できなかったこともあるため、カスタマイズが必要かな?

'******************************************
' IPアドレス取得プログラム ver.1
'
' 1.00  2012.1.11 作成
'******************************************
'
' デスクトップ上に「○○さんenv.txt」ファイルを作成する
' 実行後は、自身のファイルを削除する。
'

Option Explicit
On Error Resume Next

Dim oClassSet, oClassSet2, oClassSet3, oClassSet4, oClassSet6
Dim oClassSet9, oClassSet3a
Dim oClass, oClass2, oClass3, oClass4, oClass6, oClass9, oClass3a
Dim oClass12
Dim oLocator, oLocator5, oLocator8, oLocator10, oLocator11
Dim oLocator5a
Dim oService
Dim sMesStr, sMesStr2, sMesStr3, sMesStr4, sMesStr6
Dim sMesStrA, sMesStrB
Dim sMesStr9
Dim iMes1, iMes2
Dim mkFolder, mkFile, mkFile2, mkFile3
Dim oPath, oName, oFileName,oFileName2, oFileName3, oFileName4
Dim ret
Dim oOutFile, oOutFile2, oOutFile3, oOutFile4
Dim sAccountInfo
Dim sComputer
Dim oldFile, newFile, sendFile
Dim cIP, cDisk
Dim CPath, Cdrive
Dim Aki, AkiM

Set oLocator5 = Nothing
Set oOutFile4 = Nothing

Const ForReading = 1 'w
Const ForWriting = 2 'over
Const ForAppending = 8 'add

Set oLocator =  WScript.CreateObject("WbemScripting.SWbemLocator")
Set oLocator5 = WScript.CreateObject("Scripting.FileSystemObject")
Set oLocator8 = WScript.CreateObject("WScript.Shell")
Set oLocator10 = WScript.CreateObject("WScript.Network")

Set oService = oLocator.ConnectServer

Set oClassSet = oService.ExecQuery("Select * From Win32_ComputerSystemProduct")
Set oClassSet2 = oService.ExecQuery("Select * From Win32_OperatingSystem")
Set oClassSet3 = oService.ExecQuery("Select * From Win32_NetworkAdapterConfiguration")
Set oClassSet4 = oService.ExecQuery("Select * From Win32_NetworkLoginProfile")
Set oClassSet6 = oService.ExecQuery("Select * From Win32_ComputerSystem")
Set oClassSet9 = oService.ExecQuery("Select * From Win32_IP4RouteTable")

oPath = "c:"
oName = "tojyo"
oFileName = "env.txt"
oFileName2 = "ftp.txt"
oFileName3 = "ftp-bat.bat"
oFileName4 = "IP確認.vbs"

iMes1 = InputBox ("PCの利用者名を入力ください。","利用者確認")
iMes2 = InputBox (iMes1 & "さんですね。ありがとうございます。" & vbCrLf & vbCrLf & "PCに貼られている管理番号(半角英数字)を入力してください。" & vbCrLf & vbCrLf & _
"※間違い等がございましたら、再度このプログラムを実行してください。" & vbCrLf & vbCrLf & _
"※このプログラムを何度も実行して構いません。","管理番号確認","20")

mkFolder = oLocator5.BuildPath(oPath,oName)
mkFile   = oLocator5.BuildPath(oPath & oName, oFileName)
mkFile2   = oLocator5.BuildPath(oPath & oName,oFileName2)
mkFile3   = oLocator5.BuildPath(oPath & oName,oFileName3)
oOutFile4  = oLocator8.SpecialFolders("Desktop") & "" & oFileName4

ret = oLocator5.FolderExists(oPath & oName)

If ret = true then
oLocator5.DeleteFolder mkFolder
End If

'フォルダ・ファイル作成
oLocator5.CreateFolder mkFolder
oLocator5.CreateTextFile mkFile
oLocator5.CreateTextFile mkFile2
oLocator5.CreateTextFile mkFile3

For Each oClass In oClassSet
sMesStr = vbCrLf & "コンピュータ名: " & oClass.Name & vbCrLf & _
"シリアルナンバー: " & oClass.IdentifyingNumber & vbCrLf & _
"SKUナンバー: " & oClass.SKUNumber & vbCrLf & _
"ベンダー: " & oClass.Vendor & vbCrLf & _
"バージョン: " & oClass.Version & vbCrLf
sMesStrA = vbCrLf & "コンピュータ名: " & oClass.Name & vbCrLf & _
"シリアルナンバー: " & oClass.IdentifyingNumber & vbCrLf & _
"ベンダー: " & oClass.Vendor & vbCrLf
Next

For Each oClass2 In oClassSet2
sMesStr2 = sMesStr2 & "コンピュータ名: " & oClass2.CSName & vbCrLf & _
"コンピュータの説明: " & oClass2.Description & vbCrLf & _
"OSの種類: " & oClass2.Caption & vbCrLf & _
"サービスパック: " & oClass2.CSDVersion & vbCrLf & _
"OSシリアル番号: " & oClass2.SerialNumber & vbCrLf
sMesStrB = sMesStrB & "コンピュータ名: " & oClass2.CSName & vbCrLf & _
"OSの種類: " & oClass2.Caption & vbCrLf & _
"サービスパック: " & oClass2.CSDVersion & vbCrLf
Next

For Each oClass3 In oClassSet3
If oClass3.IPEnabled = True Then
sMesStr3 = sMesStr3 & "NIC: " & oClass3.Description & vbCrLf & _
"IPアドレス: " & oClass3.IPAddress(0) & vbCrLf & _
"サブネットマスク: " & oClass3.IPSubnet(0) & vbCrLf & _
"デフォルトゲートウエイ: " &  DefaultIPGateway() & vbCrLf & _
"DHCPの状態: " & CStr(oClass3.DHCPEnabled) & vbCrLf 
cIP = oClass3.IPAddress(0)
End If
Next
'WScript.echo sMesStr2

For Each oClass4 In oClassSet4
sMesStr4 = sMesStr4 & "ID: " & oClass4.Name &  _
", " & oClass4.LastLogon & _
", " & oClass4.NumberOfLogons & vbCrLf 
Next

For Each oClass6 In oClassSet6
sMesStr6 = sMesStr6 & "ドメイン: " & oClass6.domain & vbCrLf & _
"OS type: " & oClass6.SystemType & vbCrLf
Next

For Each oClass9 In oClassSet9
sMesStr9 = sMesStr9 & "Destination:" & oClass9.Destination & ", " & _
"Netmask:" & oClass9.Mask & ", " & _
"Gateway:" & oClass9.NextHop & ", " & _
"Metric:" & oClass9.Metric1 & vbCrLf
Next

CPath = "C:"
 Set oLocator5 = CreateObject("Scripting.FileSystemObject")
 Set Cdrive = oLocator5.GetDrive(CPath)
 Aki = Cdrive.Path & "  "
 Aki = Aki & "使用量: " & FormatNumber((Cdrive.TotalSize - Cdrive.AvailableSpace) / (1024*1024), 0) & " MB"
 Aki = Aki & "空き領域: " & FormatNumber(Cdrive.AvailableSpace / (1024*1024), 0) & " MB"

Set oClassSet2 = oService.ExecQuery("Select * FROM Win32_OperatingSystem")
For Each oClass12 In oClassSet2
  AkiM = "FreeMemory: " & FormatNumber(oClass12.FreePhysicalMemory / 1024, 0) & " , TotalMemory: " & _
  FormatNumber(oClass12.TotalVisibleMemorySize / 1024, 0)
Next
'WScript.echo AkiM

'情報確認ファイル作成
sAccountInfo = oLocator10.UserName
Set oOutFile = oLocator5.OpenTextFile(oPath & oName & oFileName, ForAppending)
oOutFile.WriteLine "Date[" & date & "] Time[" & time & _
"] User[" & sAccountInfo & "] " & "-" & _
iMes1 & " - 管理番号: " & iMes2 & _
vbCrLf & sMesStr & sMesStr2 & sMesStr3 & sMesStr4 & sMesStr6 & sMesStr9 & Aki & _
vbCrLf & AkiM
oOutFile.Close

'デスクトップにファイル移動
oldFile = "c:tojyoenv.txt"
sendFile = "c:tojyo" & cIP & "_" & iMes1 & "-" & oFileName
newFile = oLocator8.SpecialFolders("Desktop") & "" & iMes1 & "さん" & "env.txt"
oLocator5.CopyFile oldFile, sendFile
oLocator5.CopyFile oldFile, newFile

'FTP環境ファイル作成  open 192.168.1.100 は、ファイルサーバ等を記入
Set oOutFile2 = oLocator5.OpenTextFile(mkFile2, ForAppending)
oOutFile2.WriteLine "open 192.168.1.100" & vbCrLf & "env" & vbCrLf & "env" & vbCrLf & _
"asc" & vbCrLf & "put " & sendFile & vbCrLf & "close" & vbCrLf & "bye"
oOutFile2.Close

Set oOutFile3 = oLocator5.OpenTextFile(mkFile3, ForAppending)
oOutFile3.WriteLine "ftp -i -s:c:tojyoftp.txt"
oOutFile3.Close

'bat実行
oLocator8.Run "C:tojyoftp-bat.bat",0   '0=DOS非表示

MsgBox iMes1 & "さん、作業ありがとうございます。" &vbCrLf &vbCrLf & vbCrLf & "利用者: " & iMes1 & vbCrLf & sMesStrA & sMesStrB & sMesStr3 & "管理番号: " & iMes2 _
& vbCrLf & vbCrLf & "デスクトップ上にあります、ファイル:[ " & iMes1 & "さんenv.txt" & " ]を送付ください。"

Function DefaultIPGateway()
	sComputer = "."
	Set oLocator11 = GetObject("winmgmts:\" & sComputer & "rootCIMV2")
	Set oClassSet3a = oLocator11.ExecQuery( _
	    "SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True",,48)
	For Each oClass3a in oClassSet3a
	    If isNull(oClass3a.DefaultIPGateway) = False Then
	        DefaultIPGateway = Join(oClass3a.DefaultIPGateway, ",")
	        Exit For
	    End If
	Next
End Function

oLocator5.DeleteFile mkFile2
oLocator5.DeleteFile mkFile3
oLocator5.DeleteFile sendFile

Set oClassSet = Nothing
Set oClassSet2 = Nothing
Set oClassSet3 = Nothing
Set oClassSet3a = Nothing
Set oLocator11 = Nothing
Set oClassSet4 = Nothing
Set oClassSet6 = Nothing
Set oClassSet9 = Nothing
Set oClass = Nothing
Set oClass2 = Nothing
Set oClass3 = Nothing
Set oClass3a = Nothing
Set oClass4 = Nothing
Set oClass6 = Nothing
Set oClass9 = Nothing
Set oClass12 = Nothing
Set oService = Nothing
Set oLocator = Nothing
Set oLocator5a = Nothing
Set oLocator8 = Nothing
Set oLocator10 = Nothing
Set oPath = Nothing
Set oName = Nothing
Set oFileName = Nothing
Set oFileName2 = Nothing
Set oFileName3 = Nothing
Set oFileName4 = Nothing
Set sMesStr = Nothing
Set sMesStr2 = Nothing
Set sMesStr3 = Nothing
Set sMesStr4 = Nothing
Set sMesStr6 = Nothing
Set sMesStr9 = Nothing
Set sMesStrA = Nothing
Set sMesStrB = Nothing
Set iMes1 = Nothing
Set iMes2 = Nothing
Set mkFolder = Nothing
Set mkFile = Nothing
Set mkFile2 = Nothing
Set mkFile3 = Nothing
Set ret = Nothing
Set oOutFile = Nothing
Set oOutFile2 = Nothing
Set oOutFile3 = Nothing
Set sAccountInfo = Nothing
Set cPath = Nothing
Set cDrive = Nothing
Set Aki = Nothing
Set AkiM = Nothing

oLocator5.DeleteFile oOutFile4

使い方は、メモ帳とかにこぴぺした上で、ファイル名を、○○○.vbs にしてWクリックして実行すればOK!

関連記事

  1. Office365メール作成画面が突然少し変わった。

  2. Windows10の自動アップデートを阻止する (更新)

  3. 低価格で室内温度管理と監視

  4. 2014年12月マイクロソフト定例パッチに地雷多し。気をつけよ!

  5. HP Elite x3 販売開始

  6. 2月のマイクロソフト月例パッチに不具合。またトラブル!!

Translate:

各種検索





最近の記事

カテゴリー

アクセス数

  • 733現在の記事:
  • 567194総閲覧数:
  • 36今日の閲覧数:
  • 287昨日の閲覧数:
  • 2048先週の閲覧数:
  • 8814月別閲覧数:
  • 367420総訪問者数:
  • 27今日の訪問者数:
  • 262昨日の訪問者数:
  • 1825先週の訪問者数:
  • 7467月別訪問者数:
  • 257一日あたりの訪問者数:
  • 2現在オンライン中の人数:
  • 2014/02/22カウント開始日:
Translate »
%d人のブロガーが「いいね」をつけました。