VB脚本普及-各类有用的管理脚本(之二)
5.查找注册表值 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Test Value: 2 [) F0 M! [8 A: N" r, ^
Const HKEY_LOCAL_MACHINE = &H80000002
+ _) Z3 g: I/ G, Z
1 ^' a* C" @ ]- W+ u: ]# {% `, PstrComputer = "."
8 s& R8 |% B# B, @' n; e+ PSet objRegistry = GetObject("winmgmts:\\" & _ ) k2 }# I3 z$ h0 X: s0 A0 q( w
& s4 C( U! _- \5 Q) }
strComputer & "\root\default:StdRegProv")
% h8 e. S& N! O2 l3 ]2 y 5 h7 d6 ]. v6 y
strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion"* D1 N2 j- d% G% w& u
strValueName = "Test Value"3 G; \# b" i x0 |
objRegistry.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
& C2 Q8 ~* n! \0 x # K/ j- i& M# m% c+ o) t8 P
If IsNull(strValue) Then o: O$ v- g, w6 }* h5 y* W
* V3 N- a0 f. a$ G5 b1 C, C0 v
Wscript.Echo "The registry key does not exist."
$ W6 _& x' u, R4 dElse ^# {0 _5 U/ n3 [* a
" E4 N: j; |: S
Wscript.Echo "The registry key exists."; z) s. p0 [- r4 y. r
End If# R: h$ [( e1 ^( [
====================================/ k# ]: c0 Z8 p
`4 `, g; w0 \; [3 [" I% K. Q
( j; p" r% v; f/ w
6.如何确定用户帐户的 SID
! k( Z/ O! ~, n* W/ istrComputer = "."
6 k1 @6 n7 |. `+ K" A4 ?Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")# ?" @; W n3 E
1 {$ \$ D- v5 A5 L/ d) q0 X
Set objAccount = objWMIService.Get _9 |* r, L) l7 X; R% j# n( ?
% m6 Q" T8 a7 h+ P4 _
("Win32_UserAccount.Name='kenmyer',Domain='atl-ws-01'")
4 g F- o0 @- W+ L$ T, K1 JWscript.Echo objAccount.SID0 n" v- s; w# y' k
======================================0 C9 N& f) M% F& |) t
4 r# T% q3 i- j7.如何确定是否已在计算机上重命名了本地管理员帐户
. ]9 g k) I: _" AstrComputer = "atl-ws-01"
9 s: ~# e" b3 C $ z( C+ d5 | ^2 l' I9 j
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
: w- K+ m3 h; O
6 j/ [ S% { R- U3 z4 j) M3 `Set colAccounts = objWMIService.ExecQuery _. V0 D [8 Z+ f, e% e& a3 `& O$ x
1 D/ c$ w1 f4 R6 T
("Select * From Win32_UserAccount Where Domain = '" & strComputer & "'")8 ?% ^9 i" ?, N+ v t( H0 \7 I
6 n' g+ p9 r0 F) G1 [, yFor Each objAccount in colAccounts
. o: T2 W# J8 X* }2 B- i
% j6 T3 _1 ~& ?2 O5 F$ u, J- m" }; _* j" x9 Q9 a% m; g8 N+ i; z/ i% e
If Left (objAccount.SID, 6) = "S-1-5-" and Right(objAccount.SID, 4) = "-500" Then
# R$ m' K% Q3 J# E( @& h# G& B" P6 x! G% ` s7 M: |2 U
Wscript.Echo objAccount.Name# ^, h, I& s1 x; p! L1 {
7 X/ L& x6 v+ p# P- U j
End If# B' D- a7 c4 K# {& [7 a. H
Next
v+ k. [' J* @ I& I1 r============================================) L5 X, F8 |0 A: H+ u) f7 M" ?
6 @4 B M( w9 v
# E% F" B/ _! v8 U8 R3 u s
9 N) G! U b! E6 j6 i% Y( [$ v$ }
" }9 `4 ~' M' Z0 m5 A3 @1 e4 ~& u* e8.如何获得某个文件夹及其子文件夹中的所有文件列表
# }5 D1 k/ |( z. J5 Q% l. MSet objFSO = CreateObject("Scripting.FileSystemObject")
8 [. a& I8 r! T y! YobjStartFolder = "C:\Scripts"
/ V: }! m, H$ L' ^ 9 a4 r9 a3 z% H. b ^
Set objFolder = objFSO.GetFolder(objStartFolder)5 L$ w, _: j- d j
Wscript.Echo objFolder.Path
" J0 l; ^1 T4 }8 @. b% ~; ?5 bSet colFiles = objFolder.Files
3 i6 }; p p B$ I5 |2 d; qFor Each objFile in colFiles
o& U9 q; A6 c( N/ Q
' W- E! z) W+ ?' f, ^/ jWscript.Echo objFile.Name+ c( L2 J1 ` C+ Z
Next) C7 v- i- [- j( H7 n
Wscript.Echo
5 _7 N! ?& C8 T+ F7 \ 1 F! }! @4 l, @2 n# [- @
ShowSubfolders objFSO.GetFolder(objStartFolder)
7 S$ ]2 M9 v) v & m' M8 N H) U6 Q5 t
Sub ShowSubFolders(Folder)
' x3 g5 C( Z8 ?3 Y
- }- ], ~. `$ R- q, LFor Each Subfolder in Folder.SubFolders+ C! t+ O3 ~ K9 k$ i2 Z6 D
! ]6 V, O/ {" B$ J
Wscript.Echo Subfolder.Path
/ p8 q7 c# X" b, n. J. K. O" o8 R* Y* @% p4 V3 k4 [) t) D/ {+ l
Set objFolder = objFSO.GetFolder(Subfolder.Path)
5 e! L# E( w( R% w/ b. L
2 p; ^6 T, W$ |! Y( j; USet colFiles = objFolder.Files7 ~, Y1 m0 i# F; Q! M, s
/ L0 B9 h1 x; YFor Each objFile in colFiles3 _5 M# o* W h3 C( R3 w
, a1 h% T' ]& Z' q$ OWscript.Echo objFile.Name
2 P% Q0 H7 s7 v8 @- F6 z
& x2 a v, e& d+ O/ BNext( U5 y5 w0 r! z% P# M) d# @
$ F5 _0 H' J f$ I+ }) x- `Wscript.Echo
9 z8 D" J, G2 {5 t- V- [- {* e
/ `6 Q0 p5 `% B; m1 q d3 pShowSubFolders Subfolder+ M# w0 j" P; ~/ v
3 w! s6 b* N! i! u
Next
) m' l+ Y& t: _0 Y" zEnd Sub