还需要登录脚本吗?
虽然现在可以很方便地用组策略来实现网络共享映射,但有些时候VBS脚本仍然有它的用武之地,例如:
- 映射用户主目录(可以通过用户属性设置用户主目录,但个人感觉通过脚本更加方便);
- 个性化的映射如将扫描仪的目标目录映射为“我的扫描仪”以方便网络扫描仪的使用;
- 记录用户登录及注销日志;
- 收集客户端软、硬件信息;
- 服务器或客户端异常导致组策略未能正确应用;
- 客户端异常导致应用组策略后登录等待时间过长;
- 没有原因,就是喜欢使用脚本
组策略与UAC
简单来说,如果用户属于客户端电脑的管理员组(一般手提电脑用户会加入本地管理员组以方便用户日常使用;台式电脑如果有程序需要在管理员模式下才能正常运行的也需加入本地管理员组,当然,此种情况亦可以通过AutoIT来解决),此时直接运行登录脚本将达不到预期效果,因为此种情况下脚本将会运行在elevated privilege user context下,而不是运行在当前登录的interactive user context下。
所以,一般情况(因为现在基本都是Windows 7 和Windows 10的客户端了吧),如使用登录脚本,最好不要直接引用登录脚本, 而是引用一个前导脚本,解决域用户是本地管理员时的运行问题。
注:此脚本为国外同行根据微软官方的launchapp.wsf所写,出处找到后再补上
'launchapp.vbs, modified from Microsoft's launchapp.wsf
'launches a process as interactive user, NOT as the elevated privilege user context
Option Explicit
Set objNetwork = CreateObject("Wscript.Network")
Const TriggerTypeRegistration = 7
Const ActionTypeExecutable = 0
Const FlagTaskCreate = 2
Const LogonTypeInteractive = 3
Dim strWorkingDirectory, strHostname, strOSVer, colProcessList, strUser, strDomain
Dim objNetwork, objComputer, objShell, objExec, objWMI, objItem, strScriptName, strStdOut
Dim strLogonScriptName, strUserProfile, strTargetScript
'定义登录脚本目录,通常和launchapp.vbs在同一目录
strWorkingDirectory = "\\mycorp.com\SYSVOL\mycorp.com\Policies\{
9D8F5AF1-E6DF-491D-B980-DCF66DBDACE0}\User\Scripts\Logon"
'定义登录脚本名称logon.vbs
'launch this login script
strScriptName = "logon.vbs"
strLogonScriptName = strWorkingDirectory & "\" & strScriptName
Set objNetwork = CreateObject("WScript.Network")
Set objShell = CreateObject("WScript.Shell")
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
strHostname = objNetwork.ComputerName
Set objComputer = GetObject("WinNT://" & strHostname & ",computer")
strOSVer = objComputer.OperatingSystemVersion
strUserProfile=objShell.ExpandEnvironmentStrings("%USERPROFILE%")
strTargetScript = strUserProfile & "\logon.exe"
If strOSVer >= 6 Then
If IsElevated() Then
'Machine has UAC and user is elevated so use LAUNCHAPP.WSF Task Scheduler method based
'on appendix from http://technet.microsoft.com/en-us/library/cc766208(WS.10).aspx