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

2023-10-27

一.背景信息

     在我们的安全运维工作中经常需要进行安全基线配置和检查,所谓的安全基线配置就是系统的最基础的安全配置,安全基线检查涉及操作系统、中间件、数据库、甚至是交换机等网络基础设备的检查,面对如此繁多的检查项,自动化的脚本可以帮助我们快速地完成基线检查的任务,如下为基线检测脚本具体的内容,供大家学习参考

二.基线检测脚本

<#
# Windows操作系统安全加固基线检测脚本
#>
$PSDefaultParameterValues['Out-File:Encoding'] = 'utf8'
$data = @{"project"=@()}
secedit /export /cfg config.cfg /quiet

#guest停用策略

$config = Get-Content -path config.cfg

 for ($i=0; $i -lt $config.Length; $i++)
 {
    $config_line = $config[$i] -split "="
    if(($config_line[0] -eq "EnableGuestAccount ")){
        $config_line[1] = $config_line[1].Trim(' ')
        if($config_line[1] -eq "1")
        {
            $data.code = "1"
            $projectdata = @{"msg"="guest账户停用策略符合标准";}
            $data['project']+=$projectdata
        }
        else
        {
            $data.code = "0"
            $projectdata = @{"msg"="guest账户停用策略不符合标准";}
            $data['project']+=$projectdata
        }
    }
  }
  

#guest重命名策略 $config = Get-Content -path config.cfg for ($i=0; $i -lt $config.Length; $i++) { $config_line = $config[$i] -split "=" if(($config_line[0] -eq "NewGuestName ")) { $config_line[1] = $config_line[1].Trim(' ') if($config_line[1] -eq "Guest") { $data.code = "1" $projectdata = @{"msg"="guest账户重命名策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="guest账户重命名策略不符合标准";} $data['project']+=$projectdata } } }
#密码复杂性策略 $config = Get-Content -path config.cfg for ($i=0; $i -lt $config.Length; $i++) { $config_line = $config[$i] -split "=" if(($config_line[0] -eq "PasswordComplexity ")) { $config_line[1] = $config_line[1].Trim(' ') if($config_line[1] -eq "1") { $data.code = "1" $projectdata = @{"msg"="密码复杂性策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="密码复杂性策略不符合标准";} $data['project']+=$projectdata } } }
#密码长度最小值策略 $config = Get-Content -path config.cfg for ($i=0; $i -lt $config.Length; $i++) { $config_line = $config[$i] -split "=" if(($config_line[0] -eq "MinimumPasswordLength ")) { $config_line[1] = $config_line[1].Trim(' ') if($config_line[1] -ge "8") { $data.code = "1" $projectdata = @{"msg"="密码最小值策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="密码最小值策略不符合标准";} $data['project']+=$projectdata } } }


#密码最长使用期限策略 $config = Get-Content -path config.cfg for ($i=0; $i -lt $config.Length; $i++) { $config_line = $config[$i] -split "=" if(($config_line[0] -eq "MaximumPasswordAge ")) { $config_line[1] = $config_line[1].Trim(' ') if($config_line[1] -le "90") { $data.code = "1" $projectdata = @{"msg"="密码最长使用期限策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="密码最长使用期限策略不符合标准";} $data['project']+=$projectdata } } }


#账户锁定阀值策略 $config = Get-Content -path config.cfg for ($i=0; $i -lt $config.Length; $i++) { $config_line = $config[$i] -split "=" if(($config_line[0] -eq "LockoutBadCount ")) { $config_line[1] = $config_line[1].Trim(' ') if($config_line[1] -le "5") { $data.code = "1" $projectdata = @{"msg"="账户锁定阀值策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="账户锁定阀值策略不符合标准";} $data['project']+=$projectdata } } }

#账户锁定时间策略 $config = Get-Content -path config.cfg for ($i=0; $i -lt $config.Length; $i++) { $config_line = $config[$i] -split "=" if(($config_line[0] -eq "ResetLockoutCount ")) { $config_line[1] = $config_line[1].Trim(' ') if($config_line[1] -ge "10") { $data.code = "1" $projectdata = @{"msg"="账户锁定时间策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="账户锁定时间策略不符合标准";} $data['project']+=$projectdata } } }

#关闭系统仅Administrator策略 $config = Get-Content -path config.cfg for ($i=0; $i -lt $config.Length; $i++) { $config_line = $config[$i] -split "=" if(($config_line[0] -eq "ResetLockoutCount ")) { $config_line[1] = $config_line[1].Trim(' ') if($config_line[1] -ge "10") { $data.code = "1" $projectdata = @{"msg"="账户锁定时间策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="账户锁定时间策略不符合标准";} $data['project']+=$projectdata } } }


#操作系统远程关机策略安全 $config = Get-Content -path config.cfg for ($i=0; $i -lt $config.Length; $i++) { $config_line = $config[$i] -split "=" if(($config_line[0] -eq "SeRemoteShutdownPrivilege ")) { $config_line[1] = $config_line[1].Trim(' ') if($config_line[1] -eq "*S-1-5-32-544") { $data.code = "1" $projectdata = @{"msg"="操作系统远程关机策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="操作系统远程关机策略不符合标准"; } $data['project']+=$projectdata } } }


#操作系统本地关机策略安全 $config = Get-Content -path config.cfg for ($i=0; $i -lt $config.Length; $i++) { $config_line = $config[$i] -split "=" if(($config_line[0] -eq "SeShutdownPrivilege ")) { $config_line[1] = $config_line[1].Trim(' ') if($config_line[1] -eq "*S-1-5-32-544") { $data.code = "1" $projectdata = @{"msg"="操作系统本地关机策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="操作系统本地关机策略不符合标准";} $data['project']+=$projectdata } } }

#取得文件或其他对象的所有权限策略 $config = Get-Content -path config.cfg for ($i=0; $i -lt $config.Length; $i++) { $config_line = $config[$i] -split "=" if(($config_line[0] -eq "SeProfileSingleProcessPrivilege ")) { $config_line[1] = $config_line[1].Trim(' ') if($config_line[1] -eq "*S-1-5-32-544") { $data.code = "1" $projectdata = @{"msg"="取得文件或其他对象的所有权限策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="取得文件或其他对象的所有权限策略不符合标准";} $data['project']+=$projectdata } } }


#从网络访问此计算机策略 $config = Get-Content -path config.cfg for ($i=0; $i -lt $config.Length; $i++) { $config_line = $config[$i] -split "=" if(($config_line[0] -eq "SeNetworkLogonRight ")) { $config_line[1] = $config_line[1].Trim(' ') if($config_line[1] -eq "*S-1-5-32-544,*S-1-5-32-545,*S-1-5-32-551") { $data.code = "1" $projectdata = @{"msg"="从网络访问此计算机策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="从网络访问此计算机策略不符合标准";} $data['project']+=$projectdata } } }


#审核策略更改 $config = Get-Content -path config.cfg for ($i=0; $i -lt $config.Length; $i++) { $config_line = $config[$i] -split "=" if(($config_line[0] -eq "AuditSystemEvents ")) { $config_line[1] = $config_line[1].Trim(' ') if($config_line[1] -eq "3") { $data.code = "1" $projectdata = @{"msg"="审核策略更改策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="审核策略更改策略不符合标准";} $data['project']+=$projectdata } } }


#审核登录事件 $config = Get-Content -path config.cfg for ($i=0; $i -lt $config.Length; $i++) { $config_line = $config[$i] -split "=" if(($config_line[0] -eq "AuditLogonEvents ")) { $config_line[1] = $config_line[1].Trim(' ') if($config_line[1] -eq "3") { $data.code = "1" $projectdata = @{"msg"="审核登录事件策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="审核登录事件不符合标准";} $data['project']+=$projectdata } } }


#审核对象访问 $config = Get-Content -path config.cfg for ($i=0; $i -lt $config.Length; $i++) { $config_line = $config[$i] -split "=" if(($config_line[0] -eq "AuditObjectAccess ")) { $config_line[1] = $config_line[1].Trim(' ') if($config_line[1] -eq "3") { $data.code = "1" $projectdata = @{"msg"="审核对象访问策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="审核对象访问不符合标准";} $data['project']+=$projectdata } } }


#审核进程跟踪 $config = Get-Content -path config.cfg for ($i=0; $i -lt $config.Length; $i++) { $config_line = $config[$i] -split "=" if(($config_line[0] -eq "AuditProcessTracking ")) { $config_line[1] = $config_line[1].Trim(' ') if($config_line[1] -eq "2") { $data.code = "1" $projectdata = @{"msg"="审核进程跟踪策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="审核进程跟踪策略不符合标准";} $data['project']+=$projectdata } } }


#审核目录服务访问 $config = Get-Content -path config.cfg for ($i=0; $i -lt $config.Length; $i++) { $config_line = $config[$i] -split "=" if(($config_line[0] -eq "AuditDSAccess ")) { $config_line[1] = $config_line[1].Trim(' ') if($config_line[1] -eq "3") { $data.code = "1" $projectdata = @{"msg"="审核目录服务访问策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="审核目录服务访问策略不符合标准";} $data['project']+=$projectdata } } }


#审核特权使用 $config = Get-Content -path config.cfg for ($i=0; $i -lt $config.Length; $i++) { $config_line = $config[$i] -split "=" if(($config_line[0] -eq "AuditPrivilegeUse ")) { $config_line[1] = $config_line[1].Trim(' ') if($config_line[1] -eq "3") { $data.code = "1" $projectdata = @{"msg"="审核特权使用策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="审核特权使用策略不符合标准";} $data['project']+=$projectdata } } }


#审核系统事件 $config = Get-Content -path config.cfg for ($i=0; $i -lt $config.Length; $i++) { $config_line = $config[$i] -split "=" if(($config_line[0] -eq "AuditSystemEvents ")) { $config_line[1] = $config_line[1].Trim(' ') if($config_line[1] -eq "3") { $data.code = "1" $projectdata = @{"msg"="审核系统事件策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="审核系统事件策略不符合标准";} $data['project']+=$projectdata } } }


#审核账户登录事件 $config = Get-Content -path config.cfg for ($i=0; $i -lt $config.Length; $i++) { $config_line = $config[$i] -split "=" if(($config_line[0] -eq "AuditAccountLogon ")) { $config_line[1] = $config_line[1].Trim(' ') if($config_line[1] -eq "2") { $data.code = "1" $projectdata = @{"msg"="审核账户登录事件策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="审核账户登录事件策略不符合标准";} $data['project']+=$projectdata } } }


#审核账户管理 $config = Get-Content -path config.cfg for ($i=0; $i -lt $config.Length; $i++) { $config_line = $config[$i] -split "=" if(($config_line[0] -eq "AuditAccountManage ")) { $config_line[1] = $config_line[1].Trim(' ') if($config_line[1] -eq "2") { $data.code = "1" $projectdata = @{"msg"="审核账户管理策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="审核账户管理策略不符合标准";} $data['project']+=$projectdata } } }


#暂停会话前所需的空闲时间 $config = Get-Content -path config.cfg for ($i=0; $i -lt $config.Length; $i++) { $config_line = $config[$i] -split "=" if(($config_line[0] -eq "MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters\AutoDisconnect")) { $config_line = $config_line[1] $config_line = $config[$i] -split "," if($config_line[1] -le "30") { $data.code = "1" $projectdata = @{"msg"="暂停会话前所需的空闲时间策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="暂停会话前所需的空闲时间策略不符合标准";} $data['project']+=$projectdata } } }


#是否启用NTP服务同步时钟 $Key = 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer' $Name = 'Enabled' $config = (Get-ItemProperty -Path "Registry::$Key" -ErrorAction Stop).$Name if($config -eq "1") { $data.code = "1" $projectdata = @{"msg"="启用NTP服务同步时钟策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="启用NTP服务同步时钟策略不符合标准";} $data['project']+=$projectdata }

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

#检查关闭默认共享盘 $Key = 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa' $Name = 'restrictanonymous' $config = (Get-ItemProperty -Path "Registry::$Key" -ErrorAction Stop).$Name if($config -eq "1") { $data.code = "1" $projectdata = @{"msg"="关闭默认共享盘策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="关闭默认共享盘策略不符合标准";} $data['project']+=$projectdata }


#禁止全部驱动器自动播放 $Key = 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer' $name = "NoDriveTypeAutoRun" $config = (Get-ItemProperty -Path "Registry::$Key" -ErrorAction Stop).$name if($config -eq "255") { $data.code = "1" $projectdata = @{"msg"="禁止全部驱动器自动播放符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="禁止全部驱动器自动播放不符合标准";} $data['project']+=$projectdata }


#应用日志查看器大小设置 $Key = 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application' $name = "MaxSize" $config = (Get-ItemProperty -Path "Registry::$Key" -ErrorAction Stop).$name if($config -ge "8192") { $data.code = "1" $projectdata = @{"msg"="应用日志查看器大小设置策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="应用日志查看器大小设置策略不符合标准";} $data['project']+=$projectdata }


#系统日志查看器大小设置 $Key = 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\System' $name = "MaxSize" $config = (Get-ItemProperty -Path "Registry::$Key" -ErrorAction Stop).$name if($config -ge "8192") { $data.code = "1" $projectdata = @{"msg"="系统日志查看器大小设置策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="系统日志查看器大小设置策略不符合标准";} $data['project']+=$projectdata }


#安全日志查看器大小设置 $Key = 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Security' $name = "MaxSize" $config = (Get-ItemProperty -Path "Registry::$Key" -ErrorAction Stop).$name if($config -ge "8192") { $data.code = "1" $projectdata = @{"msg"="安全日志查看器大小设置策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="安全日志查看器大小设置策略不符合标准";} $data['project']+=$projectdata }


#屏幕自动保护程序 $Key = 'HKEY_CURRENT_USER\Control Panel\Desktop' $name = "ScreenSaveActive" $config = (Get-ItemProperty -Path "Registry::$Key" -ErrorAction Stop).$name if($config -eq "1") { $data.code = "1" $projectdata = @{"msg"="屏幕自动保护程序策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="屏幕自动保护程序策略不符合标准";} $data['project']+=$projectdata }


#屏幕保护程序启动时间 $Key = 'HKEY_CURRENT_USER\Control Panel\Desktop' $name = "ScreenSaveTimeOut" $config = (Get-ItemProperty -Path "Registry::$Key" -ErrorAction Stop).$name if($config -le "600") { $data.code = "1" $projectdata = @{"msg"="屏幕保护程序启动时间策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="屏幕保护程序启动时间策略不符合标准";} $data['project']+=$projectdata }


#屏幕恢复时使用密码保护 $Key = 'HKEY_CURRENT_USER\Control Panel\Desktop' $name = "ScreenSaveTimeOut" $config = (Get-ItemProperty -Path "Registry::$Key" -ErrorAction Stop).$name if($config -ge "1") { $data.code = "1" $projectdata = @{"msg"="屏幕恢复时使用密码保护策略符合标准";} $data['project']+=$projectdata } else { $data.code = "0" $projectdata = @{"msg"="屏幕恢复时使用密码保护策略不符合标准";} $data['project']+=$projectdata }


#结果处理 $date = Get-Date #$result = "" foreach ($i in $data.project){ #$result += "{'msg':$($i.msg)}," echo "{'msg':[$($i.msg)]}" $i.msg >>jixian.txt }

三.执行脚本

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows操作系统安全加固基线检测脚本 的相关文章

  • 亚马逊 Linux - 安装 openjdk-debuginfo?

    我试图使用jstack在 ec2 实例上amazon linux 所以我安装了openjdk devel包裹 sudo yum install java 1 7 0 openjdk devel x86 64 但是 jstack 引发了异常j
  • Apache LOG:子进程 pid xxxx 退出信号分段错误 (11)

    Apache PHP Mysql Linux 注意 子进程 pid 23145 退出信号分段错误 11 tmp 中可能存在 coredump 但 tmp下没有找到任何东西 我怎样才能找到错误 PHP 代码中函数的无限循环导致了此错误
  • Unix 中的访问时间是多少

    我想知道访问时间是多少 我在网上搜索但得到了相同的定义 读 被改变 我知道与touch我们可以改变它 谁能用一个例子来解释一下它是如何改变的 有没有办法在unix中获取创建日期 时间 stat结构 The stat 2 结构跟踪所有文件日期
  • 如何在 bash_profile 文件中添加导出语句?

    我正在尝试了解是否必须添加导出语句来在 bash profile 文件中设置变量 我该怎么做呢 例如 如果我必须添加 export AX name 那么我应该将其简单地写在文件末尾还是我还需要编写其他内容 简单写一下export AS na
  • Linux下单个目录下文件过多会怎样?

    如果一个目录中有大约 1 000 000 个单独的文件 大部分大小为 100k 其中没有其他目录和文件 是否会以任何其他可能的方式降低效率或产生缺点 ARG MAX 会对此提出异议 例如 rm rf 在目录中时 会说 参数太多 想要执行某种
  • 为什么使用signalfd无法捕获SIGSEGV?

    我的系统是ubuntu 12 04 我将示例修改为man 2 signalfd 并添加sigaddset mask SIGSEGV 在示例中 但我无法得到输出SIGSEGV被生成 这是一个错误吗glibc 源代码片段如下 sigemptys
  • 命名互斥体的 Mono 替代方案

    在 Windows NET 上 命名的互斥体可用于同步多个进程 不幸的是 Mono 在 Linux 上不太支持这一点 他们的发行说明 http www mono project com Release Notes Mono 2 8 Shar
  • 无法连接到 Azure Ubuntu VM - 公钥被拒绝

    我们在 Azure 上使用 Ubuntu VM 一段时间了 很少遇到任何问题 然而 其中一台虚拟机最近出现了问题 出乎意料的是 Ubuntu VM 开始拒绝公钥 ssh i azure key email protected cdn cgi
  • BeagleBone Black 如何用作大容量存储设备?

    是否可以使用 BB 作为大容量存储设备 我希望将其连接到可以从 USB 连接 例如 USB 闪存驱动器 读取文件的音频播放器并充当包含一个特定文件夹的数据存储设备 及其子文件夹 从文件系统 如果可能 在连接到开发板的闪存驱动器上 正如设备规
  • 用于 e NetworkManager VPN 连接的 dbus 信号处理程序

    我需要开发一些在建立 VPN 连接时执行的 python 代码 VPN 由 NetworkManager 控制 我试图弄清楚如何为此使用 NM DBUS 事件 使用 dbus monitor system 我能够识别连接信号 signal
  • EULA 接受 Bash 脚本

    我有一个尝试安装垃圾箱的脚本 除了 bin 在 more 中打开 EULA 之外 一切正常 在脚本再次开始并自行完成安装之前 您必须手动 ctrl c 退出此 more 实例 因为这更多的是逃离 shell 所以脚本在打开后不知道要运行什么
  • 每个虚拟主机的错误日志?

    在一台运行 Apache 和 PHP 5 的 Linux 服务器上 我们有多个带有单独日志文件的虚拟主机 我们似乎无法分离 phperror log虚拟主机之间 覆盖此设置
  • SIGHUP 用于重新加载配置

    根据signal 7 SIGHUP用于检测控制终端的挂起或控制进程的死亡 然而 我遇到过很多 OSS 守护进程 服务 其中SIGHUP用于启动配置的重新加载 这里有一些例子 hostapd sshd snort etc 这是实现重新加载的标
  • 为什么我的代码在编译用于分析 (-pg) 时在多线程下运行比在单线程下运行慢?

    我正在写一个光线追踪器 最近 我在程序中添加了线程 以利用 i5 四核上的附加内核 奇怪的是 应用程序的调试版本现在运行速度变慢 但优化后的构建运行速度比添加线程之前更快 我将 g pg 标志传递给 gcc 以进行调试构建 并将 O3 标志
  • 删除 Python 中某些操作的 root 权限

    在我的 Python 脚本中 我执行了一些需要 root 权限的操作 我还创建并写入文件 我不想由 root 独占所有 而是由运行我的脚本的用户独占所有 通常 我使用以下命令运行脚本sudo 有办法做到上述吗 您可以使用以下方式在 uid
  • sudo pip install python-Levenshtein 失败,错误代码 1

    我正在尝试在 Linux 上安装 python Levenshtein 库 但每当我尝试通过以下方式安装它时 sudo pip install python Levenshtein 我收到此错误 命令 usr bin python c 导入
  • 路由是否会影响具有绑定源地址的套接字?

    假设我有两个网络接口 eth0有地址10 0 0 1 eth1有地址192 168 0 1 Using route or ip route add我已将其设置为路由 所有地址至eth0 1 2 3 4只为了eth1 所以数据包到1 2 3
  • 在bash中用其他文件过滤一个文件

    我有一个带有数字的文件 例如 cat file 31038467 32048169 33058564 34088662 35093964 31018168 31138061 31208369 31538163 31798862 和其他例如
  • 我们可以在 Bash 脚本中使用 PHP 吗?

    我有一个 bash 脚本abcd sh bin sh for i in seq 8 do ssh w i uptime ps elf grep httpd wc l free m mpstat done pid sleep 1 kill 9
  • SVN 不断提示我输入密码并拒绝缓存我的凭据

    环境 Eclipse Indigo Ubuntu 11 04 Subclipse 1 6 SVN 客户端 Subclipse RabbitVCS 我通过 svn ssh 连接 我的网址如下所示 svn ssh 我的名字 我的域名 路径 我可

随机推荐

  • 模块定义qmldir文件

    Module Definition qmldir Files 模块定义qmldir文件 There are two distinct types of qmldir files qmldir文件有两种不同的类型 QML document d
  • ubuntu查看系统资源占用(内存,cpu和进程)

    转载自网易博客 http bluexp29 blog 163 com blog static 33858148201071534450856 bluexp29的博客 linux真是太强大了 查看ubuntu的资源占用的命令为 top top
  • odoo第三方模块审批模块的使用

    1 激活超级用户 因为里面的domain限制了一些字段非超级用户只读 2 依次点击 设置 gt gt 审批流设置 设置审批流 审批流设置完成后 进入所绑定模型的form视图 可以看到多了三个动作
  • python 自(1)定义变量 数据类型 判断数据类型 转换数据类型 算数运算符 复合运算符 比较运算符 逻辑运算符 赋值运算符

    注释 注释 就是一个 也可以 ctrl 也可以出来注释 命名规范 标识符 由字母 下划线 数字 组成 数字不能开头 不可以使用 关键字 严格区分大小写 定义变量 变量定义 重复利用 例如 cons 你好小周 print cons print
  • 【论文阅读-ASE 2020】利用单词重叠信息的代码检索 OCoR: An Overlapping-Aware Code Retriever

    OCoR An Overlapping Aware Code Retriever Conference ASE 2020 Authors 摘要 代码搜索任务是通过给出一段自然语言描述 模型能够找到一系列最相关的代码片段 由此来帮助开发人员重
  • Spring中单例bean注入多例bean的解决方法

    1 问题描述 在项目代码的使用过程 单例对象A中需要注入对象B B对象要求是多例的 我们在对象B上添加注解 Scope prototype 代码运行过程中 发现A中注入的B对象始终是同一个 并没有实现多例的效果 下面展示一些 内联代码片 C
  • 蓝桥云课——跳跃 Python(动态规划)

    题目地址 跳跃 此题是一道比较经典又带有一定难度的动态规划题目 且听我慢慢道来 虽然不一定能讲明白 先输入数据 n m map int input split score for i in range n score append list
  • Activiti6.0学习实践(4)-流程引擎配置一

    在上一节 我们进行了一个hello world 的简单应用搭建 本节继续对activiti的一些重要组件进行更进一步的分析 目录 1 activiti工程骨架 1 2 添加demo类到骨架工程 1 3 创建基于骨架的maven工程 2 流程
  • Leetcode20. 给定字符串,判断括号是否有效,不可用栈

    class Solution public boolean isValid String s int len s length if s length 2 1 s length 0 return false else for int i 0
  • SpringBoot项目——创建菜单与游戏页面

    SpringBoot项目 vue 实现游戏页面 回顾 SpringBoot项目 配置git环境与项目创建 文章目录 SpringBoot项目 vue 实现游戏页面 vue 实现前端页面 Web 一 导航栏功能 PK地图的实现 二 js 控制
  • c3p0连接池和druid连接池的使用

    1 c3p0连接池 没有配置文件的情况下 Test public void T1 throws SQLException PropertyVetoException ComboPooledDataSource cpds new ComboP
  • Keil N01:的软件逻辑分析仪( logic analyzer)使用

    在keil MDK中软件逻辑分析仪很强的功能 可以分析数字信号 模拟化的信号 CPU的总线 UART IIC等一切有输出的管脚 提供调试函数机制 用于产生自定义的信号 如Sin 三角波 澡声信号等 这些都可以定义 以keil里自带的stm3
  • 3.网络爬虫——Requests模块get请求与实战

    Requests模块get请求与实战 requests简介 检查数据 请求数据 保存数据 前言 前两章我们介绍了爬虫和HTML的组成 方便我们后续爬虫学习 今天就教大家怎么去爬取一个网站的源代码 后面学习中就能从源码中找到我们想要的数据 此
  • 中级软件设计师考试(软考中级)考试简介与考试内容分布

    原文链接 中级软件设计师考试 软考中级 考试简介与考试内容分布 文章目录 一 考试简介 1 1 软件设计师考试是什么 1 2 通过软件设计师考试应该具备的技术能力 1 3 软件设计师 中级 资格简介 1 4 什么是评什么是聘 1 5 什么是
  • java 栈----java.util.Stack

    Stack类简介 Stack 类表示后进先出 LIFO 的对象堆栈 它通过五个操作对类 Vector 进行了扩展 Stack类继承自Vector类 允许将向量视为堆栈 它提供了通常的 push 和 pop 操作 以及取堆栈顶点的 peek
  • 软件测试-外国语言和易用性测试

    1 外国语言测试 1 1 使用文字图片有意义 开发软件时 考虑用户的国家和地理位置 使软件适应特定地域特征 照顾到语言 方言 地区习俗和文化的过程称为本地化 测试此类软件称为本地化测试 1 2 翻译问题 文本扩展 将英语翻译成其他语言时 通
  • spring框架整合shiro

    shiro框架 定义 Shiro是apache旗下一个开源框架 它将实现用户身份认证 权限授权 加密 会话管理等功能 组成了一个通用的安全认证框架 既然shiro将安全认证相关的功能抽取出来组成一个框架 使用shiro就可以非常快速的完成认
  • 使用frp工具实现内网穿透以及配置多个ssh和web服务

    frp简介 FRP 项目地址 https github com fatedier frp blob master README zh md frp 是一个可用于内网穿透的高性能的反向代理应用 支持 tcp udp 协议 为 http 和 h
  • qt中的toUtf8, toLatin1, Local8bit, toUcs4

    1 首先说下字符集 gb18030字符集兼容了gbk字符集 以两个字节表示一个文字 windows系统可能使用的就是这两种的一种 unicode字符集以2个或以上的字节表示一个汉字 通用字符集 Universal Character Set
  • Windows操作系统安全加固基线检测脚本

    一 背景信息 在我们的安全运维工作中经常需要进行安全基线配置和检查 所谓的安全基线配置就是系统的最基础的安全配置 安全基线检查涉及操作系统 中间件 数据库 甚至是交换机等网络基础设备的检查 面对如此繁多的检查项 自动化的脚本可以帮助我们快速