windows的checklist,自行编译exe文件
package main
import (
"fmt"
"github.com/axgle/mahonia"
"golang.org/x/sys/windows/registry"
"io/ioutil"
"os"
"os/exec"
"os/user"
"runtime"
"strings"
"syscall"
)
// 修改脚本前熟悉所有命令函数,切勿对系统造成影响,创建的东西要记得删除
// SecEdit.exe /export /cfg C:\\systeminfo.txt 獲取系統策略信息
//获取软件安装列表
// X64
// dir Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall -Name
// X86
// dir Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\ -Name
func gopro() {
fmt.Println("************************************读取系统配置中*******************************")
// 生產系統配置文件
Getsystemset()
// 读取系统文件
systemsetconfig := readsystemset()
fmt.Println()
fmt.Println("************************************输出系统信息*********************************")
// 获取系统信息
Getsystem()
// 获取系统的架构
Getsystemframework()
// 获取系统的内核版本
Getsystemversion()
fmt.Println("************************************获取用户信息*********************************")
// 获取系统用户
Getsystemuserdata()
// 获取当前用户信息
Getcurrentuserinfo()
// 获取系统默认账户
Getsystemdefaultuser(systemsetconfig)
// 获取administrator组用户20201125
getAdmingroupuser()
fmt.Println("************************************获取端口信息*********************************")
// 打印系统端口数据
Getsystemport()
fmt.Println("************************************打印系统密码策略******************************")
// 获取密码策略
Getsystempwdpolicy(systemsetconfig)
// 密码过期提醒
passwd_Expired(systemsetconfig)
fmt.Println("***********************************获取系统安全审计策略****************************")
// 获取系统安全策略
Getsystemaudit(systemsetconfig)
// eventlog服务状态
getEventlogstat()
fmt.Println("*************************************智能卡选项**********************************")
// 智能卡移除操作
smart_card_remove(systemsetconfig)
// 交互式登录是否需要智能卡
smart_card_login(systemsetconfig)
fmt.Println("************************************获取系统共享目录******************************")
// 查看共享
net_share()
fmt.Println("************************************获取系统屏保状态******************************")
// 查看是否看起屏保
getScreenSaver()
fmt.Println("************************************系统自动播放功能******************************")
// 系统媒体和设备自动播放功能
sysmediaauto()
fmt.Println("************************************系统SAM访问设置******************************")
// 网络访问SAM访问设置数据
GetSystemSAMcontrol()
fmt.Println("************************************系统进程输出*********************************")
// 進程輸出
getSystemtasklist()
fmt.Println("************************************系统服务输出*********************************")
// 获取服务器当前运行服务
getCurrentservice()
fmt.Println("************************************系统安装软件*********************************")
// 获取系统安装的软件
getSystemapp()
fmt.Println("************************************查看安装补丁********************************")
// 获取系统当前安装补丁
getSystemhotfix()
// 收尾工作
Delfile()
}
// 功能啓動模塊
func main() {
var commnd string
gopro()
// 杜绝直接关闭
fmt.Println("点击回车键退出脚本")
fmt.Scanf("%s", &commnd)
}
//获取系统administrator组的用户
func getAdmingroupuser() string {
output, err := exec.Command("cmd", "/C", "net", "localgroup", "administrators").Output()
if err != nil {
fmt.Println("查看administrators组用户命令执行不成功,请尝试手工自行判断")
return ""
}
outputdata := ConvertToString(string(output), "GBK", "UTF-8")
outputdata = str_check(outputdata)
lastdata := strings.Split(outputdata, " ")
fmt.Println("当前系统administrators组中存在的用户如下")
for i:=6; i<len(lastdata)-1; i++{
fmt.Println(lastdata[i])
}
//fmt.Println(lastdata)
//result := lastdata[4:len(lastdata)-1]
//fmt.Println(outputdata)
return ""
}
// 获取系统安装的app
func getSystemapp() string {
i := 0
fmt.Println("本机安装软件如下:")
// 路径记录
X64output, X64err := exec.Command("powershell", "/C", "dir", "Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall", "-Name").Output()
X86output, X86err := exec.Command("powershell", "/C", "dir", "Registry::HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\", "-Name").Output()
if X64err != nil{
//fmt.Println(X64err)
fmt.Println("读取64位系统注册表不成功,表现为读取64位软件")
return ""
}
if X86err != nil{
fmt.Println("读取64位系统注册表不成功,表现为读取32位软件")
return ""
}
X64outputdata := strings.TrimSpace(ConvertToString(string(X64output), "GBK", "UTF-8"))
X86outputdata := strings.TrimSpace(ConvertToString(string(X86output), "GBK", "UTF-8"))
lastX64 := strings.Split(X64outputdata, "\n")
lastX86 := strings.Split(X86outputdata,"\n")
for X64d:=0; X64d<len(lastX64); X64d++{
i++
if strings.Contains(lastX64[X64d], "{"){
x64path := "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\"+strings.TrimSpace(lastX64[X64d])
//fmt.Printf("%T", x64path)
ke_va, err := registry.OpenKey(registry.LOCAL_MACHINE, x64path, registry.QUERY_VALUE)
if err != nil{
return ""
}
defer ke_va.Close()
Displayname, _, err := ke_va.GetStringValue("DisplayName")
if err != nil{
return ""
}
fmt.Println("[", i, "]", Displayname)
}else {
fmt.Println("[", i, "]", lastX64[X64d])
}
//fmt.Println(lastX64[X64d])
}
for X86d:=0; X86d<len(lastX86); X86d++{
i++
if strings.Contains(lastX86[X86d], "{"){
x86path := "SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\"+strings.TrimSpace(lastX86[X86d])
ke_va, err := registry.OpenKey(registry.LOCAL_MACHINE, x86path, registry.QUERY_VALUE)
if err != nil{
return ""
}
defer ke_va.Close()
Displayname, _, err := ke_va.GetStringValue("DisplayName")
if err != nil{
//fmt.Println(Displayname)
return ""
}
fmt.Println("[", i, "]", Displayname)
}else {
fmt.Println("[", i, "]", lastX86[X86d])
}
//fmt.Println(lastX86[X86d])
}
//fmt.Println(X64outputdata)
//fmt.Println(X86outputdata)
return ""
}
// 获取系统当权运行服务
func getCurrentservice() string {
output, err := exec.Command("cmd", "/C", "net", "start").Output()
if err != nil {
return ""
}
outputdata := strings.TrimSpace(ConvertToString(string(output), "GBK", "UTF-8"))
lastdata := strings.Split(outputdata, "\n")
lastdata = lastdata[2:len(lastdata)-2]
fmt.Println("Windows当前已启动以下服务:")
for i:=0; i<len(lastdata); i++ {
fmt.Println(strings.TrimSpace(lastdata[i]))
}
//fmt.Print(outputdata)
return ""
}
// 获取系统安装补丁
func getSystemhotfix() string {
output, err := exec.Command("cmd", "/C", "wmic", "qfe", "GET", "hotfixid").Output()
if err != nil {
return ""
}
outputdata := ConvertToString(string(output), "GBK", "UTF-8")
lastdata := strings.TrimSpace(strings.Split(outputdata, "HotFixID")[1])
fmt.Println("系统安装的补丁如下:")
fmt.Print(lastdata)
fmt.Println()
return ""
}
// 获取系统进程列表
func getSystemtasklist() string {
output, _ := exec.Command("cmd", "/C", "tasklist").Output()
outputdata := ConvertToString(string(output), "GBK", "UTF-8")
fmt.Print("进程表查看")
fmt.Printf(outputdata)
return ""
}
// 获取系统eventlog服务状态
func getEventlogstat() string {
ke_va, err := registry.OpenKey(registry.LOCAL_MACHINE, `SYSTEM\CurrentControlSet\Services\EventLog`, registry.QUERY_VALUE)
if err != nil {
return ""
}
defer ke_va.Close()
start, _, err := ke_va.GetIntegerValue("start")
if start == 4 {
fmt.Println("Event log启动类型已禁用")
}else if start == 3 {
fmt.Println("Event log启动类型为手动")
}else if start == 2 {
fmt.Println("Event log启动类型为自动")
}else if start == 1 {
fmt.Println("Event log启动类型为自动(延迟启动)")
}
return ""
}
// 获取系统网络访问SAM设置
func GetSystemSAMcontrol() string {
ke_va, err := registry.OpenKey(registry.LOCAL_MACHINE, `SYSTEM\CurrentControlSet\Control\LSA`, registry.QUERY_VALUE)
if err != nil{
return ""
}
defer ke_va.Close()
// 不允许SAM账户的匿名枚举
restrictanonymoussam, _, err := ke_va.GetIntegerValue("restrictanonymoussam")
// 不允许SAM账户和共享的匿名枚举
restrictanonymous, _, err := ke_va.GetIntegerValue("restrictanonymous")
if restrictanonymoussam == 1{
fmt.Println("不允许SAM账户的匿名枚举功能已开启")
}else if restrictanonymoussam == 0{
fmt.Println("不允许SAM账户的匿名枚举功能已禁用")
}
if restrictanonymous == 1{
fmt.Println("不允许SAM账户和共享的匿名枚举功能已开启")
}else if restrictanonymous == 0{
fmt.Println("不允许SAM账户和共享的匿名枚举功能已禁用")
}
//fmt.Println(restrictanonymoussam)
return ""
}
// 系统媒体和设备自动播放功能
func sysmediaauto() string {
ke_va, err := registry.OpenKey(registry.LOCAL_MACHINE, `SYSTEM\CurrentControlSet\Services\cdrom`, registry.QUERY_VALUE)
if err != nil{
return ""
}
defer ke_va.Close()
//key, _, err := ke_va.GetStringValue("AutoRun")
key, _, err := ke_va.GetIntegerValue("AutoRun")
if err != nil{
return ""
}
if key == 1 {
fmt.Println("系统媒体和设备自动播放功能已开启")
}else if key == 0 {
fmt.Println("系统媒体和设备自动播放功能已关闭")
}
//fmt.Println(key)
return ""
}
// 查看系统是否开启共享
func net_share() string {
data, _ := exec.Command("cmd", "/C", "net", "share").Output()
outputdata := ConvertToString(string(data), "GBK", "UTF-8")
//fmt.Println(outputdata)
//outputdata = str_check(outputdata)
fmt.Println(outputdata)
//lastdata := strings.Split(outputdata, " ")
//result := lastdata[4:len(lastdata)-1]
//fmt.Println("共享名\t\t资源\t\t注解")
//for i:=0; i<len(result); i++{
// fmt.Printf("%s\t\t", result[i])
// if i%3 == 2 && i != 0{
// fmt.Println()
// }
// if i%3 == 0 && strings.Contains(result[i], "IPC"){
// result[i+1] = ""
// result[i+2] = "远程IPC"
// }
//}
return ""
}
// 交互式登录是否需要智能卡
func smart_card_login(policy string) string {
smart_card := strings.TrimSpace(strings.Split(strings.Split(strings.Split(policy, "ScForceOption")[1], "MACHINE")[0], ",")[1])
//fmt.Println(smart_card)
if smart_card == "0" {
fmt.Println("用户无需使用智能卡就可以登录系统")
}else if smart_card == "1" {
fmt.Println("用户需要使用智能卡才能登录系统")
}
return ""
}
// 智能卡移除操作
func smart_card_remove(policy string) string {
smart_cart := strings.Split(strings.Split(policy, "ScRemoveOption")[1], "\"")[1]
if smart_cart == "0"{
fmt.Println("当智能卡移除时,系统无任何操作")
}else if smart_cart == "1" {
fmt.Println("当智能卡移除时,系统锁定工作站")
}else if smart_cart == "2" {
fmt.Println("当智能卡移除时,系统强制注销")
}
return ""
}
// 密码过期提醒
func passwd_Expired(policy string) string {
passauit := strings.Split(strings.Split(policy, "[Privilege Rights]")[0], "[Registry Values]")[1]
//fmt.Printf("%s", passauit)
getNum := strings.TrimSpace(strings.Split(strings.Split(strings.Split(passauit, "PasswordExpiryWarning")[1], "MACHINE")[0], ",")[1])
fmt.Println("系统密码过期前" + getNum + "天系统会有相应的过期提醒")
return ""
}
// 收尾工作
func Delfile() string {
err := os.Remove("C:\\systemset.txt")
if err != nil{
return ""
}
return ""
}
// 获取系统安全审计策略
func Getsystemaudit( policy string) string {
Winaudit := strings.Split(strings.Split(policy, "[Registry Values]")[0], "[Event Audit]")[1]
// 未开启状态
Winaudit = strings.Replace(Winaudit, "AuditSystemEvents = 0", "审核系统事件功能未开启", 1)
Winaudit = strings.Replace(Winaudit, "AuditLogonEvents = 0", "审核登录事件功能未开启", 1)
Winaudit = strings.Replace(Winaudit, "AuditObjectAccess = 0", "审核对象访问功能未开启", 1)
Winaudit = strings.Replace(Winaudit, "AuditPrivilegeUse = 0", "审核特权使用功能未开启", 1)
Winaudit = strings.Replace(Winaudit, "AuditPolicyChange = 0", "审核策略更改功能未开启", 1)
Winaudit = strings.Replace(Winaudit, "AuditAccountManage = 0", "审核账户管理功能未开启", 1)
Winaudit = strings.Replace(Winaudit, "AuditProcessTracking = 0", "审核进程追踪功能未开启", 1)
Winaudit = strings.Replace(Winaudit, "AuditDSAccess = 0", "审核目录服务访问功能未开启", 1)
Winaudit = strings.Replace(Winaudit, "AuditAccountLogon = 0", "审核账户登录事件功能未开启", 1)
// 仅记录成功事件日志
Winaudit = strings.Replace(Winaudit, "AuditSystemEvents = 1", "审核系统事件功能 成功", 1)
Winaudit = strings.Replace(Winaudit, "AuditLogonEvents = 1", "审核登录事件功能 成功", 1)
Winaudit = strings.Replace(Winaudit, "AuditObjectAccess = 1", "审核对象访问功能 成功", 1)
Winaudit = strings.Replace(Winaudit, "AuditPrivilegeUse = 1", "审核特权使用功能 成功", 1)
Winaudit = strings.Replace(Winaudit, "AuditPolicyChange = 1", "审核策略更改功能 成功", 1)
Winaudit = strings.Replace(Winaudit, "AuditAccountManage = 1", "审核账户管理功能 成功", 1)
Winaudit = strings.Replace(Winaudit, "AuditProcessTracking = 1", "审核进程追踪功能 成功", 1)
Winaudit = strings.Replace(Winaudit, "AuditDSAccess = 1", "审核目录服务访问功能 成功", 1)
Winaudit = strings.Replace(Winaudit, "AuditAccountLogon = 1", "审核账户登录事件功能 成功", 1)
// 仅记录失败事件日志
Winaudit = strings.Replace(Winaudit, "AuditSystemEvents = 2", "审核系统事件功能 失败", 1)
Winaudit = strings.Replace(Winaudit, "AuditLogonEvents = 2", "审核登录事件功能 失败", 1)
Winaudit = strings.Replace(Winaudit, "AuditObjectAccess = 2", "审核对象访问功能 失败", 1)
Winaudit = strings.Replace(Winaudit, "AuditPrivilegeUse = 2", "审核特权使用功能 失败", 1)
Winaudit = strings.Replace(Winaudit, "AuditPolicyChange = 2", "审核策略更改功能 失败", 1)
Winaudit = strings.Replace(Winaudit, "AuditAccountManage = 2", "审核账户管理功能 失败", 1)
Winaudit = strings.Replace(Winaudit, "AuditProcessTracking = 2", "审核进程追踪功能 失败", 1)
Winaudit = strings.Replace(Winaudit, "AuditDSAccess = 2", "审核目录服务访问功能 失败", 1)
Winaudit = strings.Replace(Winaudit, "AuditAccountLogon = 2", "审核账户登录事件功能 失败", 1)
// 记录成功、失败事件日志
Winaudit = strings.Replace(Winaudit, "AuditSystemEvents = 3", "审核系统事件功能 成功、失败", 1)
Winaudit = strings.Replace(Winaudit, "AuditLogonEvents = 3", "审核登录事件功能 成功、失败", 1)
Winaudit = strings.Replace(Winaudit, "AuditObjectAccess = 3", "审核对象访问功能 成功、失败", 1)
Winaudit = strings.Replace(Winaudit, "AuditPrivilegeUse = 3", "审核特权使用功能 成功、失败", 1)
Winaudit = strings.Replace(Winaudit, "AuditPolicyChange = 3", "审核策略更改功能 成功、失败", 1)
Winaudit = strings.Replace(Winaudit, "AuditAccountManage = 3", "审核账户管理功能 成功、失败", 1)
Winaudit = strings.Replace(Winaudit, "AuditProcessTracking = 3", "审核进程追踪功能 成功、失败", 1)
Winaudit = strings.Replace(Winaudit, "AuditDSAccess = 3", "审核目录服务访问功能 成功、失败", 1)
Winaudit = strings.Replace(Winaudit, "AuditAccountLogon = 3", "审核账户登录事件功 成功、失败", 1)
fmt.Print(Winaudit)
return ""
}
// 获取系统administrator,guest账户状态
func Getsystemdefaultuser(policy string) string{
Windefault := strings.Split(strings.Split(strings.Split(policy, "[Event Audit]")[0], "[System Access]")[1], "LSAAnonymousNameLookup = 0")[1]
Windefault = strings.Replace(Windefault, "EnableAdminAccount = 0", "administrator账户未开启", 1)
Windefault = strings.Replace(Windefault, "EnableAdminAccount = 1", "administrator账户已开启", 1)
Windefault = strings.Replace(Windefault, "EnableGuestAccount = 0", "Guest账户未开启", 1)
Windefault = strings.Replace(Windefault, "EnableGuestAccount = 1", "Guest账户已开启", 1)
fmt.Print(Windefault)
return ""
}
// 获取系统密码策略
//MinimumPasswordAge = 0 //密码最短留存期
//MaximumPasswordAge = 42 //密码最长留存期
//MinimumPasswordLength = 0 //密码长度最小值
//PasswordComplexity = 0 //密码必须符合复杂性要求
//PasswordHistorySize = 0 //强制密码历史 N个记住的密码
//LockoutBadCount = 5 //账户锁定阈值
//ResetLockoutCount = 30 //账户锁定时间
//LockoutDuration = 30 //复位账户锁定计数器
//RequireLogonToChangePassword = 0 *下次登录必须更改密码
//ForceLogoffWhenHourExpire = 0 *强制过期
func Getsystempwdpolicy(policy string) string {
pwdpolicy := strings.Split(strings.Split(strings.Split(policy, "[Event Audit]")[0], "[System Access]")[1], "NewAdministratorName")[0]
//fmt.Printf("%s", pwdpolicy)
pwdpolicy = strings.Replace(pwdpolicy, "MinimumPasswordAge =", "密码最短留存期为", 1)
pwdpolicy = strings.Replace(pwdpolicy, "MaximumPasswordAge =", "密码最长留存期为", 1)
pwdpolicy = strings.Replace(pwdpolicy, "MinimumPasswordLength =", "密码长度最小值为",1)
pwdpolicy = strings.Replace(pwdpolicy, "PasswordComplexity = 0", "密码复杂度检验功能未开启",1)
pwdpolicy = strings.Replace(pwdpolicy, "PasswordComplexity = 1", "密码复杂度检验功能已开启",1)
pwdpolicy = strings.Replace(pwdpolicy, "PasswordHistorySize =", "强制密码历史记住的数量为",1)
pwdpolicy = strings.Replace(pwdpolicy, "LockoutBadCount =", "账户锁定阈值为",1)
pwdpolicy = strings.Replace(pwdpolicy, "ResetLockoutCount =", "账户锁定时间",1)
pwdpolicy = strings.Replace(pwdpolicy, "LockoutDuration =", "复位账户锁定计数器",1)
pwdpolicy = strings.Replace(pwdpolicy, "RequireLogonToChangePassword = 0", "下次登录必须更改密码功能未开启",1)
pwdpolicy = strings.Replace(pwdpolicy, "RequireLogonToChangePassword = 1", "下次登录必须更改密码功能已开启",1)
pwdpolicy = strings.Replace(pwdpolicy, "ForceLogoffWhenHourExpire = 0", "密码强制过期功能未开启",1)
pwdpolicy = strings.Replace(pwdpolicy, "ForceLogoffWhenHourExpire = 1", "密码强制过期功能已开启",1)
fmt.Println(pwdpolicy)
return ""
}
// 讀取系統配置文件
func readsystemset() string {
filedata, err := ioutil.ReadFile("C:\\systemset.txt")
if err != nil{
fmt.Println("系统配置文件读取不成功")
return ""
}
filestr := string(filedata)
//fmt.Printf("%T", filestr)
// windows中的空格可能不是空格,哈哈哈哈
fileres := strings.Replace(filestr, "\x00", "", -1)
return fileres
}
// 生成配置文件在C盤目錄下
func Getsystemset() {
data := exec.Command("cmd", "/C", "secedit", "/export", "/cfg", "C:\\systemset.txt")
if err := data.Run(); err != nil {
fmt.Println("Error: ", err)
}else {
fmt.Println("配置文件已生成")
}
}
// 獲取當前用戶信息
func Getcurrentuserinfo() string {
if userinfo, err := user.Current(); err == nil {
fmt.Printf("用户姓名:%s\n", userinfo.Username)
fmt.Printf("用户地址:%s\n", userinfo.HomeDir)
//fmt.Printf("用户组:%s\n", userinfo.Name)
}
return ""
}
// 获取系统用户数据
func Getsystemuserdata() string {
output, _ := exec.Command("cmd", "/C", "net", "user").Output()
outputdata := string(output)
//fmt.Print(ConvertToString(outputdata, "GBK", "UTF-8"))
outputdata = str_check(outputdata)
//fmt.Print(outputdata)
checkdata := strings.Split(outputdata, " ")
checkdata = checkdata[3:len(checkdata)-1]
fmt.Printf("共计%d个用户,分别是%s\n", len(checkdata), checkdata)
//fmt.Print(checkdata)
return ""
}
// 獲取系統TCP端口
func Getsystemport() string {
output, _ := exec.Command("cmd", "/C", "netstat", "-ano").Output()
outputdata := string(output)
outputdata = str_check(outputdata)
checkdata := strings.Split(outputdata, "UDP")[0]
TCPdata := strings.Split(checkdata, "TCP")[1:]
fmt.Print(set_string_len("本地地址"))
fmt.Print(set_string_len("外部地址")+ "\n")
for i:=0; i<len(TCPdata); i++{
localip_port := strings.Split(string(TCPdata[i]), " ")[1]
foregin_port := strings.Split(string(TCPdata[i]), " ")[2]
localip_port = set_string_len(localip_port)
fmt.Print(localip_port, "\t\t\t", foregin_port)
//fmt.Print(len(localip_port))
fmt.Print("\n")
}
return ""
}
// 获取当前系统
func Getsystem() string {
system := runtime.GOOS
fmt.Printf("当前系统:%s\n", system)
return ""
}
// 获取系统架构
func Getsystemframework() string {
systemframework := runtime.GOARCH
fmt.Printf("当前系统架构:%s\n", systemframework)
return ""
}
//获取当前系统版本
func Getsystemversion() string {
version, err := syscall.GetVersion()
if err != nil {
return ""
}
fmt.Printf("当前系统版本:%d.%d (%d)\n", byte(version), uint8(version>>8), version>>16 )
return ""
}
// string字符串的空格处理
func str_check(str string) string{
var re_str string
re_str = strings.Join(strings.Fields(str), " ")
return string(re_str)
}
// 控制字符串长度
func set_string_len(str string) string{
for {
if len(str) < 18{
str = str + " "
}else if len(str) >= 18{
break
}
}
return str
}
// 字符串转换UTF-8 模式
func ConvertToString(src string, srcCode string, tagCode string) string {
srcCoder := mahonia.NewDecoder(srcCode)
srcResult := srcCoder.ConvertString(src)
tagCoder := mahonia.NewDecoder(tagCode)
_, cdata, _ := tagCoder.Translate([]byte(srcResult), true)
result := string(cdata)
return result
}
// 获取屏幕保护状态
func getScreenSaver() string {
//fmt.Println("ls")
ke_va, err := registry.OpenKey(registry.CURRENT_USER, `Control Panel\Desktop`, registry.QUERY_VALUE)
if err != nil{
fmt.Println("屏幕保护未开启")
return ""
}
defer ke_va.Close()
//screensaveactive, _, err := ke_va.GetStringValue("ScreenSaveActive")
screensaverissecure, _, err := ke_va.GetStringValue("ScreenSaverIsSecure")
screensavetimeout, _, err := ke_va.GetStringValue("ScreenSaveTimeOut")
if err != nil{
fmt.Println("数据采集异常,屏幕保护未开启")
return ""
}
if screensaverissecure == "1" {
fmt.Println("屏幕保护程序已勾选“在恢复时显示登录屏幕”")
}else if screensaverissecure == "0" {
fmt.Println("屏幕保护程序未勾选“在恢复时显示登录屏幕”")
fmt.Println("屏幕保护超时时间为", screensavetimeout, "秒")
}
//fmt.Println(key)
//if screensaveactive == "1" && screensaverissecure == "1"{
// fmt.Println("屏幕保护已开启")
// fmt.Println("屏幕保护超时时间为", screensavetimeout, "秒" )
//}else if screensaveactive == "0" && screensaverissecure == "1"{
// fmt.Println("屏幕保护已开启")
// fmt.Println("屏幕保护超时时间为", screensavetimeout, "秒" )
//}else if screensaveactive == "1" && screensaverissecure == "0"{
// fmt.Println("建议使用手工判断")
// fmt.Println("如果屏保开启,屏幕保护超时时间为", screensavetimeout, "秒" )
//}else if screensaveactive == "0" && screensaverissecure == "0"{
// fmt.Println("屏幕保护未开启")
//}
return ""
}
运行截图:



多给我点个赞呗

浙公网安备 33010602011771号