जब तक द्वितीयक लॉगऑन सेवा ( seclogon
) चल रही है, निम्न कोड ब्लॉक कार्य को स्वचालित करने के लिए बैच और VBScript फ़ाइलों के संयोजन की अनुमति देता है। बैच फ़ाइल किसी भी पथ में स्थानों की अनुमति देने के लिए सापेक्ष पथ संदर्भों का उपयोग करती है जो वर्तमान और चयनित उपयोगकर्ता खातों द्वारा कम से कम पढ़ने की अनुमति देती है। दोनों फाइलें एक ही पथ के भीतर स्थित होनी चाहिए। के उपयोग ShellExecute
की एक क्रिया के साथ runasuser
का कारण बनता है विंडोज के लिए एक संकेत को लाने के लिए उपयोगकर्ता किसी भी लॉगऑन विधि मेजबान कंप्यूटर द्वारा अनुमति से चयन करने के लिए अनुमति देने के लिए।
इस प्रक्रिया को एक उपयोगकर्ता स्टार्टअप प्रक्रिया में जोड़ा जा सकता है ताकि यह एक बार कंप्यूटर सिस्टम में लॉग इन हो जाए।
बैच फ़ाइल: {RunAsUser}{CMD}.cmd
@Echo Off
If "%~1" NEQ "/CALLBACK" Goto :label_Process_Run_As_User
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
REM Start the process once running as designated user
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
cd C:\
start "" %~dp0cmd.lnk
Goto :EOF
:label_Process_Run_As_User
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
REM Section below verifies if Secondary Login is available
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
REM Query [Secondary Logon]
sc query seclogon 1> nul 2> nul || (
Goto :label_Missing_Secondary_Login
)
REM Check to see if [Secondary Logon] service is not disabled
sc qc seclogon | Find /i "START_TYPE" | Find /i "DISABLED" 1> nul 2> nul && (
Set flg.SecLog.Enabled=F
) || (
Set flg.SecLog.Enabled=T
)
REM Check to see if [Secondary Logon] service is Running
sc queryex seclogon | Find /i "STATE" | Find /i "RUNNING" 1> nul 2> nul && (
Set flg.SecLog.Running=T
) || (
Set flg.SecLog.Running=F
)
REM Determine if action should work
If /i "%flg.SecLog.Enabled%:%flg.SecLog.Running%" EQU "F:F" Goto :label_Secondary_Login_Unavailable
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
REM Section below starts the RunAsUser process
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
REM System configuration was validateed and RunAsUser will commence
Set "str.SELF=%~0"
WSCRIPT /E:VBSCRIPT "%~dp0RunAsUser.txt"
Goto :EOF
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
REM Section below provides written notices to user for error conditions
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:label_Secondary_Login_Unavailable
Echo.
Echo Unable to utilize the Secondary Logon system service because it is disabled.
Echo.
pause
Goto :EOF
:label_Missing_Secondary_Login
Echo.
Echo Unable to find the Secondary Logon system service
Echo.
pause
Goto :EOF
VBScript फ़ाइल: RunAsUser.txt
'-------------------------------------------
'
' Launch Process RunAsUser
CreateObject("Shell.Application").ShellExecute CreateObject("WScript.Shell").Environment("PROCESS")("str.SELF"), "/CALLBACK", "", "runasuser", 1
'
' Display a message box to pause script
msgbox "Enter username or select Certificate for account" & vbCrLf & "On the windows dialog that will popup." & vbCrLf & vbCrLf & "Click OK once process opens", vbokonly
'
' Quit the script
On Error Resume Next
Window.Close ' HTA Must be Closed Through the Window Object
Err.Clear
Wscript.Quit ' VBS Must be Closed Through the Wscript Object
Err.Clear
On Error Goto 0
'
' ----------------------------------------------------------------------