AU3-实用脚本大全

;得到适配器信息
$strComputer = "." 
$objWMIService = ObjGet( _ 
"winmgmts:\" & $strComputer & "\root\cimv2") 
$IPConfigSet= $objWMIService.ExecQuery ("Select IPAddress from Win32_NetworkAdapterConfiguration" _ 
& " where IPEnabled=TRUE") 
For $IPConfig in $IPConfigSet 
If Not $IPConfig.IPAddress Then 
For $i=0 To UBound($IPConfig.IPAddress) 
ConsoleWrite( $IPConfig.IPAddress( $i) & @CRLF ) 
Next 
EndIf 
Next
;禁用网络连接
$strComputer = "." 
$objWMIService = ObjGet("winmgmts:\" & $strComputer & "\root\cimv2") 
$colNetCards = $objWMIService.ExecQuery _ 
("Select * From Win32_NetworkAdapterConfiguration " _ 
& "Where IPEnabled = True";) 
For $objNetCard in $colNetCards 
$objNetCard.ReleaseDHCPLease() 
Next
;进行磁盘整理
$strComputer = "." 
$objWMIService = ObjGet("winmgmts:\" _ 
& $strComputer & "\root\cimv2") 
$colVolumes = $objWMIService.ExecQuery ("Select * from Win32_Volume Where Name = 'K:\'") 
For $objVolume in $colVolumes 
$errResult = $objVolume.Defrag() 
Next
;检查磁盘的可用空间
$strComputer = "." 
$objWMIService = ObjGet("winmgmts:" _ 
& "!\" _ 
& $strComputer & "\root\cimv2") 
$colDisks = $objWMIService.ExecQuery _ 
("Select * from Win32_LogicalDisk") 
For $objDisk in $colDisks 
ConsoleWrite( "DeviceID: " & $objDisk.DeviceID & @CRLF ) 
ConsoleWrite( "Free Disk Space: " _ 
& $objDisk.FreeSpace & @CRLF ) 
Next
;检查PCMCIA接口数量
$strComputer = "." 
$objWMIService = ObjGet("winmgmts:\" & $strComputer & "\root\cimv2") 
$colItems = $objWMIService.ExecQuery("Select * from Win32_PCMCIAController") 
ConsoleWrite( "Number of PCMCIA slots: " _ 
& $colItems.Count)
;检查系统信息处理器数目
$strComputer = "." 
$objWMIService = ObjGet("winmgmts:" _ 
& "!\" _ 
& $strComputer & "\root\cimv2") 
$colSettings = $objWMIService.ExecQuery _ 
("Select * from Win32_ComputerSystem") 
For $objComputer in $colSettings 
ConsoleWrite( "System Name: " & $objComputer.Name & @CRLF ) 
ConsoleWrite( "Number of Processors: " & _ 
$objComputer.NumberOfProcessors ) 
Next
;查看可用的物理内存
$strComputer = "." 
$objWMIService = ObjGet("winmgmts:" _ 
& "!\" _ 
& $strComputer & "\root\cimv2") 
$colSettings = $objWMIService.ExecQuery _ 
("Select * from Win32_OperatingSystem") 
For $objOperatingSystem in $colSettings 
ConsoleWrite( "可用物理内存: " & _ 
$objOperatingSystem.FreePhysicalMemory ) 
Next
;获取U盘盘符
$var = DriveGetDrive( "REMOVABLE" ) 
Dim $DriveNumber[2] 
$i = 1 
If NOT @error Then 
     For $i = 1 to $var[0] 
         $state = DriveStatus($var[$i]) 
         If $state = "READY"     Then     
             $DriveNumber[$i] = Asc($var[$i]) - 96 
             $i += 1 
             ReDim $DriveNumber[$i] 
         EndIf 
     Next 
     $DriveNumber[0] = $i 
     $var = 0 
EndIf 
For $i = 1 To $i 
     MsgBox(0,"阁下的U盘:",$DriveNumber[$i]) 
Next
;调用windows自带的格式化工具
Local $DriveNumber=3   ;A盘为0,B盘为1,C盘为2,D盘为3,依次类推…… 
Local $FormatOptions=1 ;1为快速格式化,0为完全格式化 
DllCall("shell32.dll","int","SHFormatDrive","hwnd",0,"int",$DriveNumber,"int",0,"int",$FormatOptions) 
;枚举文件
_filelist("F:\movie") 
Func _filelist($searchdir)                           ;;;函数名(形参) 
$search = FileFindFirstFile($searchdir & "\*.*")       ;;;;查找c:根目下的文件 
If $search = -1 Then return -1                   ;;;;如果找不到,返回值 -1 
While 1 
     $file = FileFindNextFile($search)         ;;;查找下一个文件 
     If @error Then                                         ;;;如果找不到文件 
         FileClose($search)                             ;;;则关闭此句柄 
         return                                                   ;;;返回 
     Elseif   $file = "."   or $file = ".." Then     ;;如果找到的文件名为.或..则 ContinueLoop 
         ContinueLoop                                     ;;;在某些版本的AU3里面可以不需要上行和这行。 
     ElseIf stringinstr(FileGetAttrib($searchdir & "\" & $file),"D") then         ;;如果找到的是一个文件夹,则 
         _filelist($searchdir & "\" & $file)     ;;递归调用filelist函数,并传参数   "$searchdir & "\" & $file" 
     EndIf                                                           ;;;$file为查找到的文件夹名称,上一行意思就是进入此文件夹继续查找文件.如此循环 
     ConsoleWrite( $searchdir & "\" & $file & @crlf ) 
WEnd 
EndFunc
;返回字符串的字节数
$var = "AutoIt 中文论坛" 
MsgBox(64, "文本长度", "是:" & ChrLenFixed($var)) 
Func ChrLenFixed($c) 
     Dim $ChrL = 0, $AscNum 
     For $i = 1 To StringLen($c) 
         $AscNum = AscW(StringMid($c, $i, 1)) 
         If $AscNum < 0 Then $AscNum = $AscNum + 65536 
         If $AscNum > 255 Then 
             $ChrL = $ChrL + 2 
         Else 
             $ChrL = $ChrL + 1 
         EndIf 
     Next 
     Return $ChrL 
EndFunc
列出A-Z
For $i=65 To 90 
     MsgBox(0,"",chr($i)) 
Next
;检查驱动器的文件系统类型
$strComputer = "." 
$objWMIService = ObjGet("winmgmts:" _ 
& "!\" _ 
& $strComputer & "\root\cimv2") 
$colDisks = $objWMIService.ExecQuery _ 
("Select * from Win32_LogicalDisk") 
For $objDisk in $colDisks 
ConsoleWrite( "DeviceID: " & $objDisk.DeviceID & @CRLF ) 
ConsoleWrite( "File System: " _ 
& $objDisk.FileSystem & @CRLF ) 
Next
;检查软驱里是否有软盘
$strComputer = "." 
$objWMIService = ObjGet( _ 
"winmgmts:\" & $strComputer & "\root\cimv2") 
$colItems = $objWMIService.ExecQuery _ 
("Select * From Win32_LogicalDisk Where DeviceID = 'A:'") 
For $objItem in $colItems 
$intFreeSpace = $objItem.FreeSpace 
If $intFreeSpace = "" Then 
ConsoleWrite( "There is no disk in the floppy drive." & @CRLF ) 
Else 
ConsoleWrite( "There is a disk in the floppy drive." & @CRLF ) 
EndIf 
Next
;判断磁盘是否为可移动驱动器
$strComputer = "." 
$objWMIService = ObjGet("winmgmts:" _ 
& "!\" _ 
& $strComputer & "\root\cimv2") 
$colDisks = $objWMIService.ExecQuery _ 
("Select * from Win32_LogicalDisk") 
For $objDisk in $colDisks 
ConsoleWrite( "DeviceID: "& @Tab _ 
& $objDisk.DeviceID & @CRLF ) 
Switch $objDisk.DriveType 
Case 1 
ConsoleWrite( "No root directory. " _ 
& "Drive type could not be " _ 
& "determined." & @CRLF ) 
Case 2 
ConsoleWrite( "DriveType: "& @Tab _ 
& "Removable drive." & @CRLF ) 
Case 3 
ConsoleWrite( "DriveType: "& @Tab _ 
& "Local hard disk." & @CRLF ) 
Case 4 
ConsoleWrite( "DriveType: "& @Tab _ 
& "Network disk." & @CRLF ) 
Case 5 
ConsoleWrite( "DriveType: "& @Tab _ 
& "Compact disk." & @CRLF ) 
Case 6 
ConsoleWrite( "DriveType: "& @Tab _ 
& "RAM disk." & @CRLF ) 
Case Else 
ConsoleWrite( "Drive type could not be" _ 
& " determined." & @CRLF ) 
EndSwitch 
Next
;列出每个用户所占用的磁盘空间
$strComputer = "." 
$objWMIService = ObjGet("winmgmts:" _ 
& "!\" _ 
& $strComputer & "\root\cimv2") 
$colQuotas = $objWMIService.ExecQuery _ 
("Select * from Win32_DiskQuota") 
For $objQuota in $colQuotas 
ConsoleWrite( "Volume: "& @Tab _ 
& $objQuota.QuotaVolume & @CRLF ) 
ConsoleWrite( "User: "& @Tab & $objQuota.User & @CRLF ) 
ConsoleWrite( "Disk Space Used: " _ 
& @Tab & $objQuota.DiskSpaceUsed & @CRLF ) 
Next
;列出每个进程所占用的内存
$strComputer = "." 
$objWMIService = ObjGet("winmgmts:" _ 
& "!\" _ 
& $strComputer & "\root\cimv2") 
$colProcesses = $objWMIService.ExecQuery _ 
("Select * from Win32_Process") 
For $objProcess in $colProcesses 
ConsoleWrite( "Process: " & $objProcess.Name & @CRLF ) 
$sngProcessTime = (String($objProcess.KernelModeTime) + _ 
String($objProcess.UserModeTime)) / 10000000 
ConsoleWrite( "Processor Time: " & $sngProcessTime & @CRLF ) 
ConsoleWrite( "Process ID: " & $objProcess.ProcessID & @CRLF ) 
ConsoleWrite( "Working $Size: " _ 
& $objProcess.WorkingSetSize & @CRLF ) 
ConsoleWrite( "Page File Size: " _ 
& $objProcess.PageFileUsage & @CRLF) 
ConsoleWrite( "Page Faults: " & $objProcess.PageFaults & @CRLF & @CRLF ) 
Next
;修改进程的优先权
Const $ABOVE_NORMAL = 32768 
$strComputer = "." 
$objWMIService = ObjGet("winmgmts:" _ 
& "!\" _ 
& $strComputer & "\root\cimv2") 
$colProcesses = $objWMIService.ExecQuery _ 
("Select * from Win32_Process Where Name = 'Notepad.exe'") 
For $objProcess in $colProcesses 
$objProcess.SetPriority($ABOVE_NORMAL) 
Next
;检查系统同时运行了多少个au3脚本
$strComputer = "." 
$objWMIService = ObjGet( _ 
"winmgmts:\" & $strComputer & "\root\CIMV2") 
$colItems = $objWMIService.ExecQuery( _ 
"SELECT * FROM Win32_Process" & _ 
" WHERE Name = 'AutoIt3.exe'") 
For $objItem in $colItems 
ConsoleWrite( "-------------------------------------------" & @CRLF ) 
ConsoleWrite( "CommandLine: " & $objItem.CommandLine & @CRLF ) 
ConsoleWrite( "Name: " & $objItem.Name & @CRLF & @CRLF ) 
Next
;检查开机自启动项
$strComputer = "." 
$objWMIService = ObjGet("winmgmts:" _ 
& "!\" _ 
& $strComputer & "\root\cimv2") 
$colStartupCommands = $objWMIService.ExecQuery _ 
("Select * from Win32_StartupCommand") 
For $objStartupCommand in $colStartupCommands 
ConsoleWrite( "Command: " & $objStartupCommand.Command & @CRLF _ 
& "Description: " & $objStartupCommand.Description & @CRLF _ 
& "Location: " & $objStartupCommand.Location & @CRLF _ 
& "Name: " & $objStartupCommand.Name & @CRLF _ 
& "SettingID: " & $objStartupCommand.SettingID & @CRLF _ 
& "User: " & $objStartupCommand.User & @CRLF & @CRLF ) 
Next
;重启或关闭远程计算机
$strComputer = "atl-dc-01" 
$objWMIService = ObjGet("winmgmts:" _ 
& "!\" & _ 
$strComputer & "\root\cimv2") 
$colOperatingSystems = $objWMIService.ExecQuery _ 
("Select * from Win32_OperatingSystem") 
For $objOperatingSystem in $colOperatingSystems 
$ObjOperatingSystem.Shutdown(1) 
Next
;获取系统开机的时间
$strComputer = "." 
$objWMIService = ObjGet("winmgmts:" _ 
& "!\" _ 
& $strComputer & "\root\cimv2") 
$colOperatingSystems = $objWMIService.ExecQuery _ 
("Select * from Win32_OperatingSystem") 
For $objOS in $colOperatingSystems 
ConsoleWrite( $objOS.LastBootUpTime) 
Next
;获取屏幕分辨率
$strComputer = "." 
$objWMIService = ObjGet("winmgmts:\" & $strComputer & "\root\cimv2") 
$colItems = $objWMIService.ExecQuery( "Select * from Win32_DesktopMonitor") 
For $objItem in $colItems 
ConsoleWrite( "Screen Height: " _ 
& $objItem.ScreenHeight & @CRLF ) 
ConsoleWrite( "Screen Width: " _ 
& $objItem.ScreenWidth & @CRLF ) 
Next
;检查屏幕保护是否需要密码
$strComputer = "." 
$objWMIService = ObjGet("winmgmts:\" & $strComputer & "\root\cimv2") 
$colItems = $objWMIService.ExecQuery("Select * from Win32_Desktop") 
For $objItem in $colItems 
ConsoleWrite( "Screen Saver Secure: " _ 
& $objItem.ScreenSaverSecure & @CRLF ) 
Next
;判断系统是否启动在安全模式的网络状态下
$strComputer = "." 
$objWMIService = ObjGet("winmgmts:" _ 
& "!\" _ 
& $strComputer & "\root\cimv2") 
$colSettings = $objWMIService.ExecQuery _ 
("Select * from Win32_ComputerSystem") 
For $objComputer in $colSettings 
ConsoleWrite( "System Name: " _ 
& $objComputer.Name & @CRLF ) 
ConsoleWrite( "Registered owner: " _ 
& $objComputer.PrimaryOwnerName & @CRLF ) 
Next
;列出全部的已安装的软件
$strComputer = "." 
$objWMIService = ObjGet("winmgmts:" _ 
& "!\" _ 
& $strComputer & "\root\cimv2") 
$colSoftware = $objWMIService.ExecQuery _ 
("Select * from Win32_Product") 
For $objSoftware in $colSoftware 
ConsoleWrite( "Name: " & $objSoftware.Name & @CRLF ) 
ConsoleWrite( "Version: " & $objSoftware.Version & @CRLF & @CRLF ) 
Next
;卸载软件
$strComputer = "." 
$objWMIService = ObjGet("winmgmts:" _ 
& "!\" _ 
& $strComputer & "\root\cimv2") 
$colSoftware = $objWMIService.ExecQuery _ 
("Select * from Win32_Product " _ 
& "Where Name = 'Personnel database'") 
For $objSoftware in $colSoftware 
$objSoftware.Uninstall() 
Next
;列出所有鼠标的信息
.$strComputer = "." 
$objWMIService = ObjGet( _ 
"winmgmts:\" & $strComputer & "\root\cimv2") 
$colItems = $objWMIService.ExecQuery( _ 
"Select * from Win32_PointingDevice") 
For $objItem in $colItems 
ConsoleWrite( "Description: " & $objItem.Description & @CRLF ) 
ConsoleWrite( "Device ID: " & $objItem.DeviceID & @CRLF ) 
ConsoleWrite( "Device Interface: " _ 
& $objItem.DeviceInterface & @CRLF ) 
ConsoleWrite( "Double Speed Threshold: " _ 
& $objItem.DoubleSpeedThreshold & @CRLF ) 
ConsoleWrite( "Handedness: " & $objItem.Handedness & @CRLF ) 
ConsoleWrite( "Hardware Type: " & $objItem.HardwareType & @CRLF ) 
ConsoleWrite( "INF File Name: " & $objItem.InfFileName & @CRLF ) 
ConsoleWrite( "INF Section: " & $objItem.InfSection & @CRLF ) 
ConsoleWrite( "Manufacturer: " & $objItem.Manufacturer & @CRLF ) 
ConsoleWrite( "Name: " & $objItem.Name & @CRLF ) 
ConsoleWrite( "Number Of Buttons: " _ 
& $objItem.NumberOfButtons & @CRLF ) 
ConsoleWrite( "PNP Device ID: " & $objItem.PNPDeviceID & @CRLF ) 
ConsoleWrite( "Pointing Type: " & $objItem.PointingType & @CRLF ) 
ConsoleWrite( "Quad Speed Threshold: " _ 
& $objItem.QuadSpeedThreshold & @CRLF ) 
ConsoleWrite( "Resolution: " & $objItem.Resolution & @CRLF ) 
ConsoleWrite( "Sample Rate: " & $objItem.SampleRate & @CRLF ) 
ConsoleWrite( "Synch: " & $objItem.Synch & @CRLF & @CRLF ) 
Next
;列出没有工作的硬件
$strComputer = "." 
$objWMIService = ObjGet("winmgmts:\" & $strComputer & "\root\cimv2") 
$colItems = $objWMIService.ExecQuery _ 
("Select * from Win32_PnPEntity " _ 
& "WHERE ConfigManagerErrorCode <> 0") 
For $objItem in $colItems 
ConsoleWrite( "Class GUID: " & $objItem.ClassGuid & @CRLF ) 
ConsoleWrite( "Description: " & $objItem.Description & @CRLF ) 
ConsoleWrite( "Device ID: " & $objItem.DeviceID & @CRLF ) 
ConsoleWrite( "Manufacturer: " & $objItem.Manufacturer & @CRLF ) 
ConsoleWrite( "Name: " & $objItem.Name & @CRLF ) 
ConsoleWrite( "PNP Device ID: " & $objItem.PNPDeviceID & @CRLF ) 
ConsoleWrite( "Service: " & $objItem.Service & @CRLF & @CRLF ) 
Next
© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容