PowerShell 重新运行用户登录脚本

问题描述 投票:0回答:1

我有一个重新运行用户登录脚本的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
powershell vbscript login-script
1个回答
0
投票

来帮助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)"
© www.soinside.com 2019 - 2024. All rights reserved.