我有一个重新运行用户登录脚本的VBScript,每当用户的网络状态发生变化时,我使用任务计划程序触发脚本运行。 (以确保在必要时映射驱动器)。我想将其转换为 PowerShell,但我被难住了。你会怎么做?
这是我正在使用的 VBScript:
Dim objNet
Dim wshShell
Dim wshProcess
Dim domain, username, dc
Set objNet = CreateObject("WScript.NetWork")
Set wshShell = CreateObject("Wscript.Shell")
Set wshProcess = wshShell.Environment("Process")
Domain = objNet.UserDomain
UserName = objNet.UserName
DC = wshProcess("LogonServer")
Set UserObj = GetObject("WinNT://" & domain & "/" & username)
loginScript = DC & "\netlogon\" & UserObj.LoginScript
On Error Resume Next
wshShell.Run(loginscript)
Set UserObj = Nothing
Set wshProcess = Nothing
Set wshShell = Nothing
Set objNet = Nothing
来帮助OP已经太晚了,但如果其他人需要的话,我想出了如何在PowerShell中做到这一点。
$ObjNet = New-Object -ComObject WScript.NetWork
$WshShell = New-Object -ComObject WScript.Shell
$WshProcess = $WshShell.Environment('Process')
$Domain = $ObjNet.UserDomain
$UserName = $ObjNet.UserName
$DC = $WshProcess['LogonServer']
$UserObj = [ADSI]"WinNT://$Domain/$UserName"
& CALL "$DC\netlogon\$($UserObj.LoginScript)"