Windows操作系统安全加固基线检测自动化脚本
  

饮尽楚江秋 79203人觉得有帮助

{{ttag.title}}
一.背景信息
[backcolor=rgba(255, 255, 255, 0.9)]     在我们的安全运维工作中经常需要对各种设备进行安全基线配置和检查,所谓的安全基线配置就是系统的最基础的安全配置,安全基线检查涉及到操作系统、中间件、数据库、甚至是交换机等网络基础设备的检查,面对如此繁多的检查项,自动化的脚本可以帮助我们快速地完成基线检查的任务,如下为基线检测脚本具体的内容,特分享出来,供大家学习参考。
二.基线检测脚本
  1. <#
  2. # Windows操作系统安全加固基线检测脚本
  3. #>
  4. $PSDefaultParameterValues['Out-File:Encoding'] = 'utf8'
  5. $data = @{"project"=@()}
  6. secedit /export /cfg config.cfg /quiet

  7. #guest停用策略

  8. $config = Get-Content -path config.cfg

  9. for ($i=0; $i -lt $config.Length; $i++)
  10. {
  11.     $config_line = $config[$i] -split "="
  12.     if(($config_line[0] -eq "EnableGuestAccount ")){
  13.         $config_line[1] = $config_line[1].Trim(' ')
  14.         if($config_line[1] -eq "1")
  15.         {
  16.             $data.code = "1"
  17.             $projectdata = @{"msg"="guest账户停用策略符合标准";}
  18.             $data['project']+=$projectdata
  19.         }
  20.         else
  21.         {
  22.             $data.code = "0"
  23.             $projectdata = @{"msg"="guest账户停用策略不符合标准";}
  24.             $data['project']+=$projectdata
  25.         }
  26.     }
  27.   }
  28.   


  29.   #guest重命名策略

  30. $config = Get-Content -path config.cfg

  31. for ($i=0; $i -lt $config.Length; $i++)
  32. {
  33.     $config_line = $config[$i] -split "="
  34.     if(($config_line[0] -eq "NewGuestName "))
  35.     {
  36.         $config_line[1] = $config_line[1].Trim(' ')
  37.         if($config_line[1] -eq "Guest")
  38.         {
  39.             $data.code = "1"
  40.             $projectdata = @{"msg"="guest账户重命名策略符合标准";}
  41.             $data['project']+=$projectdata
  42.         }
  43.         else
  44.         {
  45.             $data.code = "0"
  46.             $projectdata = @{"msg"="guest账户重命名策略不符合标准";}
  47.             $data['project']+=$projectdata
  48.         }
  49.     }
  50.   }


  51. #密码复杂性策略
  52. $config = Get-Content -path config.cfg

  53. for ($i=0; $i -lt $config.Length; $i++)
  54. {
  55.     $config_line = $config[$i] -split "="
  56.     if(($config_line[0] -eq "PasswordComplexity "))
  57.     {
  58.         $config_line[1] = $config_line[1].Trim(' ')
  59.         if($config_line[1] -eq "1")
  60.         {
  61.             $data.code = "1"
  62.             $projectdata = @{"msg"="密码复杂性策略符合标准";}
  63.             $data['project']+=$projectdata
  64.         }
  65.         else
  66.         {
  67.             $data.code = "0"
  68.             $projectdata = @{"msg"="密码复杂性策略不符合标准";}
  69.             $data['project']+=$projectdata
  70.         }
  71.     }
  72.   }


  73. #密码长度最小值策略
  74. $config = Get-Content -path config.cfg

  75. for ($i=0; $i -lt $config.Length; $i++)
  76. {
  77.     $config_line = $config[$i] -split "="
  78.     if(($config_line[0] -eq "MinimumPasswordLength "))
  79.     {
  80.         $config_line[1] = $config_line[1].Trim(' ')
  81.         if($config_line[1] -ge "8")
  82.         {
  83.             $data.code = "1"
  84.             $projectdata = @{"msg"="密码最小值策略符合标准";}
  85.             $data['project']+=$projectdata
  86.         }
  87.         else
  88.         {
  89.             $data.code = "0"
  90.             $projectdata = @{"msg"="密码最小值策略不符合标准";}
  91.             $data['project']+=$projectdata
  92.         }
  93.     }
  94.   }



  95.   #密码最长使用期限策略
  96.   
  97.    $config = Get-Content -path config.cfg

  98. for ($i=0; $i -lt $config.Length; $i++)
  99. {
  100.     $config_line = $config[$i] -split "="
  101.     if(($config_line[0] -eq "MaximumPasswordAge "))
  102.     {
  103.         $config_line[1] = $config_line[1].Trim(' ')
  104.         if($config_line[1] -le "90")
  105.         {
  106.             $data.code = "1"
  107.             $projectdata = @{"msg"="密码最长使用期限策略符合标准";}
  108.             $data['project']+=$projectdata
  109.         }
  110.         else
  111.         {
  112.             $data.code = "0"
  113.             $projectdata = @{"msg"="密码最长使用期限策略不符合标准";}
  114.             $data['project']+=$projectdata
  115.         }
  116.     }
  117.   }



  118.   #账户锁定阀值策略
  119.   
  120.    $config = Get-Content -path config.cfg

  121. for ($i=0; $i -lt $config.Length; $i++)
  122. {
  123.     $config_line = $config[$i] -split "="
  124.     if(($config_line[0] -eq "LockoutBadCount "))
  125.     {
  126.         $config_line[1] = $config_line[1].Trim(' ')
  127.         if($config_line[1] -le "5")
  128.         {
  129.             $data.code = "1"
  130.             $projectdata = @{"msg"="账户锁定阀值策略符合标准";}
  131.             $data['project']+=$projectdata
  132.         }
  133.         else
  134.         {
  135.             $data.code = "0"
  136.             $projectdata = @{"msg"="账户锁定阀值策略不符合标准";}
  137.             $data['project']+=$projectdata
  138.         }
  139.     }
  140.   }
  141.   


  142. #账户锁定时间策略
  143.   
  144.    $config = Get-Content -path config.cfg

  145. for ($i=0; $i -lt $config.Length; $i++)
  146. {
  147.     $config_line = $config[$i] -split "="
  148.     if(($config_line[0] -eq "ResetLockoutCount "))
  149.     {
  150.         $config_line[1] = $config_line[1].Trim(' ')
  151.         if($config_line[1] -ge "10")
  152.         {
  153.             $data.code = "1"
  154.             $projectdata = @{"msg"="账户锁定时间策略符合标准";}
  155.             $data['project']+=$projectdata
  156.         }
  157.         else
  158.         {
  159.             $data.code = "0"
  160.             $projectdata = @{"msg"="账户锁定时间策略不符合标准";}
  161.             $data['project']+=$projectdata
  162.         }
  163.     }
  164.   }



  165. #关闭系统仅Administrator策略
  166.   $config = Get-Content -path config.cfg

  167. for ($i=0; $i -lt $config.Length; $i++)
  168. {
  169.     $config_line = $config[$i] -split "="
  170.     if(($config_line[0] -eq "ResetLockoutCount "))
  171.     {
  172.         $config_line[1] = $config_line[1].Trim(' ')
  173.         if($config_line[1] -ge "10")
  174.         {
  175.             $data.code = "1"
  176.             $projectdata = @{"msg"="账户锁定时间策略符合标准";}
  177.             $data['project']+=$projectdata
  178.         }
  179.         else
  180.         {
  181.             $data.code = "0"
  182.             $projectdata = @{"msg"="账户锁定时间策略不符合标准";}
  183.             $data['project']+=$projectdata
  184.         }
  185.     }
  186.   }




  187. #操作系统远程关机策略安全


  188. $config = Get-Content -path config.cfg

  189. for ($i=0; $i -lt $config.Length; $i++)
  190. {
  191.     $config_line = $config[$i] -split "="
  192.     if(($config_line[0] -eq "SeRemoteShutdownPrivilege "))
  193.     {
  194.         $config_line[1] = $config_line[1].Trim(' ')
  195.         if($config_line[1] -eq "*S-1-5-32-544")
  196.         {
  197.             $data.code = "1"
  198.             $projectdata = @{"msg"="操作系统远程关机策略符合标准";}
  199.             $data['project']+=$projectdata
  200.         }
  201.         else
  202.         {
  203.             $data.code = "0"
  204.             $projectdata = @{"msg"="操作系统远程关机策略不符合标准";
  205.                              }
  206.             $data['project']+=$projectdata
  207.         }
  208.     }
  209.   }




  210.   #操作系统本地关机策略安全

  211.   $config = Get-Content -path config.cfg
  212. for ($i=0; $i -lt $config.Length; $i++)
  213. {
  214.     $config_line = $config[$i] -split "="
  215.     if(($config_line[0] -eq "SeShutdownPrivilege "))
  216.     {
  217.         $config_line[1] = $config_line[1].Trim(' ')
  218.         if($config_line[1] -eq "*S-1-5-32-544")
  219.         {
  220.             $data.code = "1"
  221.             $projectdata = @{"msg"="操作系统本地关机策略符合标准";}
  222.             $data['project']+=$projectdata
  223.         }
  224.         else
  225.         {
  226.             $data.code = "0"
  227.             $projectdata = @{"msg"="操作系统本地关机策略不符合标准";}
  228.             $data['project']+=$projectdata
  229.         }
  230.     }
  231.   }


  232.     #取得文件或其他对象的所有权限策略
  233.   $config = Get-Content -path config.cfg
  234. for ($i=0; $i -lt $config.Length; $i++)
  235. {
  236.     $config_line = $config[$i] -split "="
  237.     if(($config_line[0] -eq "SeProfileSingleProcessPrivilege "))
  238.     {
  239.         $config_line[1] = $config_line[1].Trim(' ')
  240.         if($config_line[1] -eq "*S-1-5-32-544")
  241.         {
  242.             $data.code = "1"
  243.             $projectdata = @{"msg"="取得文件或其他对象的所有权限策略符合标准";}
  244.             $data['project']+=$projectdata
  245.         }
  246.         else
  247.         {
  248.             $data.code = "0"
  249.             $projectdata = @{"msg"="取得文件或其他对象的所有权限策略不符合标准";}
  250.             $data['project']+=$projectdata
  251.         }
  252.     }
  253.   }



  254.   #从网络访问此计算机策略
  255.   $config = Get-Content -path config.cfg
  256. for ($i=0; $i -lt $config.Length; $i++)
  257. {
  258.     $config_line = $config[$i] -split "="
  259.     if(($config_line[0] -eq "SeNetworkLogonRight "))
  260.     {
  261.         $config_line[1] = $config_line[1].Trim(' ')
  262.         if($config_line[1] -eq "*S-1-5-32-544,*S-1-5-32-545,*S-1-5-32-551")
  263.         {
  264.             $data.code = "1"
  265.             $projectdata = @{"msg"="从网络访问此计算机策略符合标准";}
  266.             $data['project']+=$projectdata
  267.         }
  268.         else
  269.         {
  270.             $data.code = "0"
  271.             $projectdata = @{"msg"="从网络访问此计算机策略不符合标准";}
  272.             $data['project']+=$projectdata
  273.         }
  274.     }
  275.   }



  276. #审核策略更改

  277. $config = Get-Content -path config.cfg
  278. for ($i=0; $i -lt $config.Length; $i++)
  279. {
  280.     $config_line = $config[$i] -split "="
  281.     if(($config_line[0] -eq "AuditSystemEvents "))
  282.     {
  283.         $config_line[1] = $config_line[1].Trim(' ')
  284.         if($config_line[1] -eq "3")
  285.         {
  286.             $data.code = "1"
  287.             $projectdata = @{"msg"="审核策略更改策略符合标准";}
  288.             $data['project']+=$projectdata
  289.         }
  290.         else
  291.         {
  292.             $data.code = "0"
  293.             $projectdata = @{"msg"="审核策略更改策略不符合标准";}
  294.             $data['project']+=$projectdata
  295.         }
  296.     }
  297.   }
  298.   



  299.   #审核登录事件

  300. $config = Get-Content -path config.cfg
  301. for ($i=0; $i -lt $config.Length; $i++)
  302. {
  303.     $config_line = $config[$i] -split "="
  304.     if(($config_line[0] -eq "AuditLogonEvents "))
  305.     {
  306.         $config_line[1] = $config_line[1].Trim(' ')
  307.         if($config_line[1] -eq "3")
  308.         {
  309.             $data.code = "1"
  310.             $projectdata = @{"msg"="审核登录事件策略符合标准";}
  311.             $data['project']+=$projectdata
  312.         }
  313.         else
  314.         {
  315.             $data.code = "0"
  316.             $projectdata = @{"msg"="审核登录事件不符合标准";}
  317.             $data['project']+=$projectdata
  318.         }
  319.     }
  320.   }



  321.     #审核对象访问

  322. $config = Get-Content -path config.cfg
  323. for ($i=0; $i -lt $config.Length; $i++)
  324. {
  325.     $config_line = $config[$i] -split "="
  326.     if(($config_line[0] -eq "AuditObjectAccess "))
  327.     {
  328.         $config_line[1] = $config_line[1].Trim(' ')
  329.         if($config_line[1] -eq "3")
  330.         {
  331.             $data.code = "1"
  332.             $projectdata = @{"msg"="审核对象访问策略符合标准";}
  333.             $data['project']+=$projectdata
  334.         }
  335.         else
  336.         {
  337.             $data.code = "0"
  338.             $projectdata = @{"msg"="审核对象访问不符合标准";}
  339.             $data['project']+=$projectdata
  340.         }
  341.     }
  342.   }
  343.   



  344.   #审核进程跟踪

  345. $config = Get-Content -path config.cfg
  346. for ($i=0; $i -lt $config.Length; $i++)
  347. {
  348.     $config_line = $config[$i] -split "="
  349.     if(($config_line[0] -eq "AuditProcessTracking "))
  350.     {
  351.         $config_line[1] = $config_line[1].Trim(' ')
  352.         if($config_line[1] -eq "2")
  353.         {
  354.             $data.code = "1"
  355.             $projectdata = @{"msg"="审核进程跟踪策略符合标准";}
  356.             $data['project']+=$projectdata
  357.         }
  358.         else
  359.         {
  360.             $data.code = "0"
  361.             $projectdata = @{"msg"="审核进程跟踪策略不符合标准";}
  362.             $data['project']+=$projectdata
  363.         }
  364.     }
  365.   }



  366.     #审核目录服务访问

  367. $config = Get-Content -path config.cfg
  368. for ($i=0; $i -lt $config.Length; $i++)
  369. {
  370.     $config_line = $config[$i] -split "="
  371.     if(($config_line[0] -eq "AuditDSAccess "))
  372.     {
  373.         $config_line[1] = $config_line[1].Trim(' ')
  374.         if($config_line[1] -eq "3")
  375.         {
  376.             $data.code = "1"
  377.             $projectdata = @{"msg"="审核目录服务访问策略符合标准";}
  378.             $data['project']+=$projectdata
  379.         }
  380.         else
  381.         {
  382.             $data.code = "0"
  383.             $projectdata = @{"msg"="审核目录服务访问策略不符合标准";}
  384.             $data['project']+=$projectdata
  385.         }
  386.     }
  387.   }
  388.   



  389.   #审核特权使用
  390. $config = Get-Content -path config.cfg
  391. for ($i=0; $i -lt $config.Length; $i++)
  392. {
  393.     $config_line = $config[$i] -split "="
  394.     if(($config_line[0] -eq "AuditPrivilegeUse "))
  395.     {
  396.         $config_line[1] = $config_line[1].Trim(' ')
  397.         if($config_line[1] -eq "3")
  398.         {
  399.             $data.code = "1"
  400.             $projectdata = @{"msg"="审核特权使用策略符合标准";}
  401.             $data['project']+=$projectdata
  402.         }
  403.         else
  404.         {
  405.             $data.code = "0"
  406.             $projectdata = @{"msg"="审核特权使用策略不符合标准";}
  407.             $data['project']+=$projectdata
  408.         }
  409.     }
  410.   }
  411.   



  412.     #审核系统事件
  413. $config = Get-Content -path config.cfg
  414. for ($i=0; $i -lt $config.Length; $i++)
  415. {
  416.     $config_line = $config[$i] -split "="
  417.     if(($config_line[0] -eq "AuditSystemEvents "))
  418.     {
  419.         $config_line[1] = $config_line[1].Trim(' ')
  420.         if($config_line[1] -eq "3")
  421.         {
  422.             $data.code = "1"
  423.             $projectdata = @{"msg"="审核系统事件策略符合标准";}
  424.             $data['project']+=$projectdata
  425.         }
  426.         else
  427.         {
  428.             $data.code = "0"
  429.             $projectdata = @{"msg"="审核系统事件策略不符合标准";}
  430.             $data['project']+=$projectdata
  431.         }
  432.     }
  433. }
  434.    



  435.      #审核账户登录事件
  436. $config = Get-Content -path config.cfg
  437. for ($i=0; $i -lt $config.Length; $i++)
  438. {
  439.     $config_line = $config[$i] -split "="
  440.     if(($config_line[0] -eq "AuditAccountLogon "))
  441.     {
  442.         $config_line[1] = $config_line[1].Trim(' ')
  443.         if($config_line[1] -eq "2")
  444.         {
  445.             $data.code = "1"
  446.             $projectdata = @{"msg"="审核账户登录事件策略符合标准";}
  447.             $data['project']+=$projectdata
  448.         }
  449.         else
  450.         {
  451.             $data.code = "0"
  452.             $projectdata = @{"msg"="审核账户登录事件策略不符合标准";}
  453.             $data['project']+=$projectdata
  454.         }
  455.     }
  456. }
  457.   
  458.   



  459.        #审核账户管理
  460. $config = Get-Content -path config.cfg
  461. for ($i=0; $i -lt $config.Length; $i++)
  462. {
  463.     $config_line = $config[$i] -split "="
  464.     if(($config_line[0] -eq "AuditAccountManage "))
  465.     {
  466.         $config_line[1] = $config_line[1].Trim(' ')
  467.         if($config_line[1] -eq "2")
  468.         {
  469.             $data.code = "1"
  470.             $projectdata = @{"msg"="审核账户管理策略符合标准";}
  471.             $data['project']+=$projectdata
  472.         }
  473.         else
  474.         {
  475.             $data.code = "0"
  476.             $projectdata = @{"msg"="审核账户管理策略不符合标准";}
  477.             $data['project']+=$projectdata
  478.         }
  479.     }
  480. }



  481. #暂停会话前所需的空闲时间
  482. $config = Get-Content -path config.cfg
  483. for ($i=0; $i -lt $config.Length; $i++)
  484. {
  485.     $config_line = $config[$i] -split "="
  486.     if(($config_line[0] -eq "MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters\AutoDisconnect"))
  487.     {
  488.         $config_line = $config_line[1]
  489.         $config_line = $config[$i] -split ","
  490.         
  491.         if($config_line[1] -le "30")
  492.         {
  493.             $data.code = "1"
  494.             $projectdata = @{"msg"="暂停会话前所需的空闲时间策略符合标准";}
  495.             $data['project']+=$projectdata
  496.         }
  497.         else
  498.         {
  499.             $data.code = "0"
  500.             $projectdata = @{"msg"="暂停会话前所需的空闲时间策略不符合标准";}
  501.             $data['project']+=$projectdata
  502.         }
  503.     }
  504. }





  505. #是否启用NTP服务同步时钟
  506. $Key = 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer'
  507. $Name = 'Enabled'
  508. $config = (Get-ItemProperty -Path "Registry::$Key" -ErrorAction Stop).$Name
  509.    if($config -eq "1")
  510.         {
  511.             $data.code = "1"
  512.             $projectdata = @{"msg"="启用NTP服务同步时钟策略符合标准";}
  513.             $data['project']+=$projectdata
  514.         }
  515.         else
  516.         {
  517.             $data.code = "0"
  518.             $projectdata = @{"msg"="启用NTP服务同步时钟策略不符合标准";}
  519.             $data['project']+=$projectdata
  520.         }



  521. #检测开机启动项
  522. $Key = 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run'
  523. $result = (Get-ItemProperty -Path "Registry::$Key" -ErrorAction Stop)
  524. $projectdata = @{"msg"="开机启动项为:$($result)";}
  525. $data['project']+=$projectdata



  526. #检查关闭默认共享盘

  527. $Key = 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa'
  528. $Name = 'restrictanonymous'
  529. $config = (Get-ItemProperty -Path "Registry::$Key" -ErrorAction Stop).$Name
  530.    if($config -eq "1")
  531.         {
  532.             $data.code = "1"
  533.             $projectdata = @{"msg"="关闭默认共享盘策略符合标准";}
  534.             $data['project']+=$projectdata
  535.         }
  536.         else
  537.         {
  538.             $data.code = "0"
  539.             $projectdata = @{"msg"="关闭默认共享盘策略不符合标准";}
  540.             $data['project']+=$projectdata
  541.         }
  542.         



  543. #禁止全部驱动器自动播放
  544. $Key = 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer'
  545. $name = "NoDriveTypeAutoRun"
  546. $config = (Get-ItemProperty -Path "Registry::$Key" -ErrorAction Stop).$name
  547.    if($config -eq "255")
  548.         {
  549.             $data.code = "1"
  550.             $projectdata = @{"msg"="禁止全部驱动器自动播放符合标准";}
  551.             $data['project']+=$projectdata
  552.         }
  553.         else
  554.         {
  555.             $data.code = "0"
  556.             $projectdata = @{"msg"="禁止全部驱动器自动播放不符合标准";}
  557.             $data['project']+=$projectdata
  558.         }
  559.         



  560. #应用日志查看器大小设置
  561. $Key = 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application'

  562. $name = "MaxSize"
  563. $config = (Get-ItemProperty -Path "Registry::$Key" -ErrorAction Stop).$name
  564. if($config -ge "8192")
  565.         {
  566.             $data.code = "1"
  567.             $projectdata = @{"msg"="应用日志查看器大小设置策略符合标准";}
  568.             $data['project']+=$projectdata
  569.         }
  570.         else
  571.         {
  572.             $data.code = "0"
  573.             $projectdata = @{"msg"="应用日志查看器大小设置策略不符合标准";}
  574.             $data['project']+=$projectdata
  575.         }



  576.         
  577. #系统日志查看器大小设置
  578. $Key = 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\System'

  579. $name = "MaxSize"
  580. $config = (Get-ItemProperty -Path "Registry::$Key" -ErrorAction Stop).$name
  581. if($config -ge "8192")
  582.         {
  583.             $data.code = "1"
  584.             $projectdata = @{"msg"="系统日志查看器大小设置策略符合标准";}
  585.             $data['project']+=$projectdata
  586.         }
  587.         else
  588.         {
  589.             $data.code = "0"
  590.             $projectdata = @{"msg"="系统日志查看器大小设置策略不符合标准";}
  591.             $data['project']+=$projectdata
  592.         }



  593. #安全日志查看器大小设置
  594. $Key = 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Security'
  595. $name = "MaxSize"
  596. $config = (Get-ItemProperty -Path "Registry::$Key" -ErrorAction Stop).$name
  597. if($config -ge "8192")
  598.         {
  599.             $data.code = "1"
  600.             $projectdata = @{"msg"="安全日志查看器大小设置策略符合标准";}
  601.             $data['project']+=$projectdata
  602.         }
  603.         else
  604.         {
  605.             $data.code = "0"
  606.             $projectdata = @{"msg"="安全日志查看器大小设置策略不符合标准";}
  607.             $data['project']+=$projectdata
  608.         }




  609. #屏幕自动保护程序
  610. $Key = 'HKEY_CURRENT_USER\Control Panel\Desktop'
  611. $name = "ScreenSaveActive"
  612. $config = (Get-ItemProperty -Path "Registry::$Key" -ErrorAction Stop).$name
  613. if($config -eq "1")
  614.         {
  615.             $data.code = "1"
  616.             $projectdata = @{"msg"="屏幕自动保护程序策略符合标准";}
  617.             $data['project']+=$projectdata
  618.         }
  619.         else
  620.         {
  621.             $data.code = "0"
  622.             $projectdata = @{"msg"="屏幕自动保护程序策略不符合标准";}
  623.             $data['project']+=$projectdata
  624.         }




  625. #屏幕保护程序启动时间
  626. $Key = 'HKEY_CURRENT_USER\Control Panel\Desktop'
  627. $name = "ScreenSaveTimeOut"
  628. $config = (Get-ItemProperty -Path "Registry::$Key" -ErrorAction Stop).$name
  629. if($config -le "600")
  630.         {
  631.             $data.code = "1"
  632.             $projectdata = @{"msg"="屏幕保护程序启动时间策略符合标准";}
  633.             $data['project']+=$projectdata
  634.         }
  635.         else
  636.         {
  637.             $data.code = "0"
  638.             $projectdata = @{"msg"="屏幕保护程序启动时间策略不符合标准";}
  639.             $data['project']+=$projectdata
  640.         }




  641. #屏幕恢复时使用密码保护
  642. $Key = 'HKEY_CURRENT_USER\Control Panel\Desktop'
  643. $name = "ScreenSaveTimeOut"
  644. $config = (Get-ItemProperty -Path "Registry::$Key" -ErrorAction Stop).$name
  645. if($config -ge "1")
  646.         {
  647.             $data.code = "1"
  648.             $projectdata = @{"msg"="屏幕恢复时使用密码保护策略符合标准";}
  649.             $data['project']+=$projectdata
  650.         }
  651.         else
  652.         {
  653.             $data.code = "0"
  654.             $projectdata = @{"msg"="屏幕恢复时使用密码保护策略不符合标准";}
  655.             $data['project']+=$projectdata
  656.         }



  657. #结果处理
  658. $date = Get-Date

  659. #$result = ""
  660. foreach ($i in $data.project){
  661.     #$result += "{'msg':$($i.msg)},"
  662.     echo "{'msg':[$($i.msg)]}"
  663.     $i.msg >>jixian.txt
  664.    
  665. }
复制代码
三.执行脚本

打赏鼓励作者,期待更多好文!

打赏
27人已打赏

新手899116 发表于 2020-12-3 19:39
  

回帖奖励 +2

感谢分享
LinYee 发表于 2020-12-7 09:35
  
强啊老哥
暗夜星空 发表于 2020-12-8 09:18
  
向大佬学习
圣大天齐赵树良 发表于 2020-12-19 20:13
  
楼主分析的很详细,不错的实战经验,小白用户一看就懂,非常好的技术干货帖,顶一个!
心已搬到你那 发表于 2021-1-14 10:01
  
感谢作者分享,步骤写的很详细
吃馒头的大豆豆 发表于 2021-3-2 08:37
  

感谢楼主分享,这个很实用。
এ塔铃独语别黄昏এ 发表于 2021-3-22 09:13
  
支持一下。顺便盖楼。。。
ie5000 发表于 2021-3-26 09:19
  
感谢楼主的分享,马克学习一下
JM 发表于 2021-4-3 23:38
  
实用干货,感谢分享。
发表新帖
热门标签
全部标签>
每日一问
技术盲盒
技术笔记
干货满满
技术咨询
功能体验
新版本体验
产品连连看
GIF动图学习
标准化排查
自助服务平台操作指引
运维工具
2023技术争霸赛专题
通用技术
秒懂零信任
技术晨报
信服课堂视频
用户认证
安装部署配置
深信服技术支持平台
安全攻防
SDP百科
设备维护
社区帮助指南
答题自测
每日一记
玩转零信任
畅聊IT
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
上网策略
测试报告
日志审计
问题分析处理
流量管理
云计算知识
原创分享
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
功能咨询
终端接入
授权
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
每周精选

本版达人

新手68983...

本周分享达人

零和一网络

本周提问达人