วิธีการ List Local User Properties ทั้งหมดด้วยวิธีผสม Net User และ Vbs Script

0
1422

สวัสดีครับ วันนี้ได้ request ในการ list local User ให้มี Output สามารถบอก Password Last Set และ Password Expired ได้

คำสั่งที่ใช้จึงใช้คำสั่งง่าย ๆ คือ Net User “Username”

 

วิธีการ List Local User ด้วย Net User และ Vbs Script

เรื่องนี้ดูเหมือนจะง่าย แต่ปัญหาคือเราต้องการ List User ทั้งหมดที่มีอยู่ในระบบ จึงจำเป็นต้องใช้คำสั่งวน Loop ในการอ่านค่าไปใส่ไฟล์

คำสั่งวน Loop ที่ผมใช้คือ

for /f “tokens=* delims= ” %%a in (user01.txt) do (net user %%a)

ซึ่งไฟล์ User01.txt นั้นจะต้องบรรจุรายชื่อ User ไว้เป็นแถว ๆ แบบนี้ ครับ

วิธีการ List Local User ด้วย Net User และ Vbs Script

อ่าว ? แล้วทำอย่างไรถึงจะได้ไฟล์ user01.txt ให้เรียงรายชือ User เป็นแถวสวยงามแบบนี้ ?

ปัญหาคือถ้าใช้คำสั่ง Net user จะได้รายชือเรียงเป็น TAB ซึ่งเราไม่สามารถเอาไปใช้งานวนลูปต่อได้

วิธีการ List Local User ด้วย Net User และ Vbs Script

จึงต้องใช้ VBS ช่วยครับ (อ้อมโลกดีเนอะแต่รีบอะครับ – -“)

ใช้ VBS Script ตามด้านล่างนี้ เราจะได้รายชื่อ local user ทั้งหมดและเรียงกันสวยงามเหมือนไฟล์ user01.txt ครับ

วิธีการ List Local User ด้วย Net User และ Vbs Script

Set objNetwork = CreateObject(“Wscript.Network”)
strComputer = objNetwork.ComputerName
Set colAccounts = GetObject(“WinNT://” & strComputer & “”)
colAccounts.Filter = Array(“user”)
For Each objUser In colAccounts
Wscript.Echo objUser.Name
Next

จากนั้นก็เอา Dos และ VBS มาประกอบร่างกันครับโดยผมเขียนไฟล์ User.cmd แล้วมี Script บ้าน ๆ ในนั้นดังนี้ครับ

วิธีการ List Local User ด้วย Net User และ Vbs Script

echo off
cscript /nologo list01.vbs >user01.txt
echo on
for /f “tokens=* delims= ” %%a in (user01.txt) do (net user %%a)

ผมเอาสองไฟล์นี้ไปวางใน D Drive ครับ

วิธีการ List Local User ด้วย Net User และ Vbs Script

แล้วก็ใช้คำสั่ง RUN ให้ออกมาเป็นไฟล์ User02.txt

 

วิธีการ List Local User ด้วย Net User และ Vbs Script

ผลที่ได้คือมัน List Local User วน Loop ให้หมดเครื่องครับ

วิธีการ List Local User ด้วย Net User และ Vbs Script

T T หวังว่าพอจะช่วยบรรเทา Solution ฉุกเฉินไปก่อนนะครับ