定时关机方案Word格式文档下载.docx
《定时关机方案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《定时关机方案Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
\"
foreach($namein$names)
{
$date=Get-Date
$sdate=$date.ToString("
G"
)
$logPath=$dir+$date.ToString("
yyyy-MM-dd"
)+"
-shu.log"
$eLogPath=$dir+$date.ToString("
-err_shu.log"
if(test-connection$name)
{
$r=shutdown/s/t$time/c"
此计算机将被管理员执行关机计划!
"
-m\\$name
if($r=1)
echo"
$sdate\\$name,已被管理员执行关机计划!
>
>
$logPath
}
else
$sdate\\$name,此计算机执行关机计划失败!
$eLogPath
$sdate\\$name,已由使用人员关闭!
}
--------------------------------------------------------------------------------------------
如上所示:
此脚本标红部分(三处)为要定义的变量参数,以下逐项说明:
此红色部分为要关闭的计算机的IP地址列表的文件路径,每一行代表一台计算机,文件详细内容定义如下:
脚本将读入文本中的计算机地址并尝试将计算机关闭。
此红色部分定义关机等待的时间,单位为“秒”
此红色部分定义脚本日志的输出路径(可以使共享路径),不含文件名称,文件名称将由脚本其他地方定义。
如上图所示:
以上三个文件为脚本输出的日子文件,带“err”的用于记录关机异常日志文件,不带“err”字样的记录用户正常关机与被管理关机的日志。
日志内容大致如下:
注:
以上日志供值班人员参考
给脚本签名
由于受系统安全机制的影响,我们需要对系统进行签名,系统才会允许脚本正常运行。
制作签名证书
签名前的准备工作
由于脚本的签名要使用到“makecert.exe”证书制作工具,所以签名前需要先安装“Microsoft.NETFrameworkSDKv2.0”:
下载地址如下:
使用“makecert.exe”证书制作工具
单击【开始】-->
【所有程序】-->
【Microsoft.NETFrameworkSDKv2.0】-->
【SDK命令提示】
窗口显示如下:
键入如下命令:
makecert.exe-pe-r-n"
cn=TmarkPowerShell"
-eku1.3.6.1.5.5.7.3.3-ss"
my"
-eku参数:
1.3.6.1.5.5.7.3.3,不能是其它,证书预期目的属性签名
-n参数:
,定义证书的名称。
确认证书已经建立成功:
PowerShell
lscert:
\CurrentUser\My|where{$_.subject-eq"
CN=TmarkPowerShell"
将可以查询到证书的“Thumbprint”与“Subject”
验证代码签名证书
查看预期目的为代码签名的证书
$certs=@(Dircert:
CurrentUser\My-codeSigningCert)
找到{0}个代码签名证书"
-f$certs.count
选择刚才创建的证书:
$certificate=lscert:
$certificate.subject
$certificate.issuer
$certificate|selectSerialNumber,Thumbprint|fl*
分别可以查询到证书的“证书的代表”、“证书的签发者”、“证书的序列号”、“指纹”
设置证书信任
检查证书是否受信任
$certificate.Verify()
[System.Reflection.Assembly]:
:
LoadWithPartialName("
System.Security"
[System.Security.Cryptography.x509Certificates.X509Certificate2UI]:
DisplayCertificate($certificate)
然后弹出窗口如下:
将该证书复制到受信任的存储区
$rootStore=New-Objectsystem.security.cryptography.X509Certificates.x509Store("
root"
"
Currentuser"
$rootStore.Open("
ReadWrite"
$rootStore.Add($certificate)
$rootStore.Close()
然后弹出:
单击【是】按钮后证书将被添加到受信任区域。
确认证书是否受信任
Powershell脚本签名
脚本签名
cdC:
\scripts
Set-AuthenticodeSignature.\shu.ps1$certificate
检查是否已经签名
Get-Content.\shu.ps1
窗口的最后面将显示脚本的签名信息:
计划任务调用脚本
【控制面板】-->
【系统和安全】-->
【计划任务】
单击【操作】-->
【创建任务】
键入计划任务的“名称”
勾选【不管用户是否登录都要运行】
勾选【使用最高权限运行】
然后单击【触发器】选项卡
单击【新建】
勾选【每天】
“开始”修改时间为“2:
00:
00”
勾选【启动】
单击【确认】退出
回到“创建任务”窗口
单击【操作窗口】
“程序或脚本中”中键入“C:
\Windows\System32\WindowsPowerShell\v1.0\powershell.exe”