AD域GPO下发自动关机用户计算机配置文档
一、自动关机脚本编写
打开记事本写内容如下:
@echo off
ver|find "5.0" >nul && if not errorlevel 1 goto 2k
ver|find "5.1" >nul && if not errorlevel 1 goto xp
ver|find "5.2" >nul && if not errorlevel 1 goto
win2k3
ver|find "6.0" >nul && if not errorlevel 1 goto
vista
ver|find "6.1" >nul && if not errorlevel 1 goto win7
goto win7
:2k
at /delete /yes
AT 18:00 /interactive /every:M,T,W,Th,F,S,Su \\AD......\scripts\自动关机.exe
exit
:xp
at /delete /yes
AT 18:00 /interactive /every:M,T,W,Th,F,S,Su \\ AD......\scripts\自动关机.exe
exit
:win2k3
exit
:vista
SCHTASKS /Delete /tn "*" /f
schtasks /create /tn 自动关机 /tr "\\ AD......\scripts\自动关机.exe" /sc daily /st 18:00:00 /it /f
exit
:win7
SCHTASKS /Delete /tn "*" /f
schtasks /create /tn 自动关机 /tr "\\ AD......\scripts\自动关机.exe" /sc daily /st 18:00:00 /it /f
exit
另存为*.BAT文件。
# 以上脚本是修改后的,原来的脚本只是用AT命令创建任务,通过反馈信息发现公司可能部分用户使用的是非XP系统,因此重新编制脚本进行终端用户系统判别,判断系统后由不同的命令创建任务,这样保证XP以上版本系统在运行任务时都以交互式运行。
说明
1、脚本首先判断终端用户操作系统版本,2K、XP、VISTA或WIN7建立计划任务应该使用不同的命令,否则任务无法和用户交互。
2、判断终端系统是2K、XP执行下面命令
AT /delete /yes
通过AT命令删除全部计划任务,这样是为了保证任务ID相同不重复任务
AT 18:00 /interactive
/every:M,T,W,Th,F,S,Su \\ AD......\scripts\自动关机.exe
通过AT命令新建任务ID=1,参数/interactive实现交互界面,否则关机窗口不弹出,时间为18:00,周一至周日都运行,执行程序路径设置为AD域服务器共享路径。
/ interactive参数就是设置XP系统有用户交互,由于schtasks命令在XP系统版本中没有/it参数,所以使用AT命令的这个参数。
3、判断终端系统是2K3不操作EXIT直接退出。
4、判断终端系统是VISTA或WIN7执行命令(goto win7其他的未知操作系统也按这条命令执行,域用户终端最低版本一般应该是XP)
SCHTASKS /Delete
/tn "*" /f
删除原来所有的计划任务
schtasks /create
/tn 自动关机 /tr "\\ AD......\scripts\自动关机.exe" /sc daily /st 18:00:00 /it /f
/create参数是新建任务,/tn后面是任务名称,/tr是指定要执行命令的路径,/sc设为每天,/st设置触发时间为18:00:00, /it 设置当用户登录时,这个就是设置WIN7和VISTA 系统运行任务时和用户交互,/f参数是当创建任务时任务名已经存在强制覆盖。
二、编写自动关机程序
打开VB编程软件
1、建窗体Form,插入控件command、Timer、Label、Image。
写如下代码:
Private Declare Function SetWindowPos Lib "user32" (ByVal HWnd
As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal
cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Dim m, m1, s, s1 As Integer
Private Sub command1_click()
End
End Sub
Private Sub Form_Load()
SetWindowPos Me.HWnd, -1, 0, 0, 0, 0, 2 Or 1 #这句是为了让窗体显示在最上层,上面有函数声明。
Timer1.Interval = 1000
Label1.Caption = ""
m = 0: m1 = 3: s = 0: s1 = 0
End Sub
Private Sub Timer1_Timer()
s1 = s1 - 1
If s1 < 0 Then
s = s - 1
s1 = 9
If s < 0 Then
m1 = m1 - 1
s = 5
If m1 < 0 Then
m = m - 1
m1 = 9
End If
End If
End If
If m = 0 And m1 = 0 And s = 0 And s1 = 0 Then
Timer1.Enabled = False
Shell "cmd.exe /c shutdown -s -t 0"
End If
Label1.Caption = m & m1 & ":" & s & s1
End Sub
2、调整各控件位置,美化界面。
三、GPO策略
1、新建GPO(定时关闭公司计算机)——计算机配置——Windows设置——脚本——启动脚本,浏览选择上面保存的BAT文件路径,选定文件点击确定。 也可以下发用户启动脚本
2、选定需要下发OU ,链接现有GPO策略,选择刚建立的“定时关闭公司计算机”,点确定。
至此计算机策略GPO下发,实现具有终端交互式的定时关机完成。
沒有留言:
張貼留言