teepes
asked on
VBScript/HTA Help! run command line on click
Hello,
I'm trying to make an hta that will unlock a users account using joeware's unlock tool. It's an EXE that you run in cmd and give it an attribute. "Unlock.exe unlock . username"
I have been able to get it to open a command window, but now put in the unlock.exe unlock . username with the following code
Sub cmdSubmit
Const NORMAL_WINDOW = 1
Set objShell = CreateObject("Shell.Applic ation")
objShell.ShellExecute "cmd.exe", "%userprofile%\appdata\loc al\microso ft\windows sidebar\gadgets\teepe.gadg et\EXE\Unl ock.exe unlock . name", , , NORMAL_WINDOW
End Sub
Any help would be greatly appreciated. Below is my whole code.
I'm trying to make an hta that will unlock a users account using joeware's unlock tool. It's an EXE that you run in cmd and give it an attribute. "Unlock.exe unlock . username"
I have been able to get it to open a command window, but now put in the unlock.exe unlock . username with the following code
Sub cmdSubmit
Const NORMAL_WINDOW = 1
Set objShell = CreateObject("Shell.Applic
objShell.ShellExecute "cmd.exe", "%userprofile%\appdata\loc
End Sub
Any help would be greatly appreciated. Below is my whole code.
<html>
<head>
<title>Woot</title>
<style>
body
{
width: 129;
height: 203;
padding: 0;
margin: 0;
background-image: url(../IMG/background.png);
background-repeat: no-repeat;
}
.style1 {
color: #FFFFFF;
font-family: Calibri;
font-weight: bold;
font-size: 11px;
}
.style2 {
color: #FFFFFF;
font-family: Calibri;
font-weight: bold;
font-size: 14px;
}
.style3 {
color: #FFFFFF;
font-family: Calibri;
font-weight: bold;
font-size: 5px;
}
</style>
</head>
<body>
<table width='116' border='0' cellspacing='0' cellpadding='0' style='padding-left:10px'>
<tr>
<td>
<div align='center' class='style2'>
<p><b> Locked Accounts</b></p>
</div></td>
</tr>
<tr>
<td>
<span class="style3"><br></span>
<span class='style1'>
<script Language="VBScript">
Sub cmdSubmit
Const NORMAL_WINDOW = 1
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "cmd.exe", "%userprofile%\appdata\local\microsoft\windows sidebar\gadgets\teepe.gadget\EXE\Unlock.exe unlock . document.test.name.value", , , NORMAL_WINDOW
End Sub
On Error Resume Next
Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = _
"SELECT distinguishedName FROM 'LDAP://dc=,dc=,dc=,dc=com' WHERE objectCategory='user'"
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
strDN = objRecordset.Fields("distinguishedName").Value
Set objUser = GetObject ("LDAP://" & strDN)
strislocked = objuser.isAccountlocked
straccount = objuser.displayName
straccount2 = objuser.samAccountName
If strislocked = True Then
document.write "<FORM style='margin: 0;' name='test'><input style='margin: 0;' name='name' type='hidden' id='name' value='"+straccount2+"'>"+ straccount +" <a style='margin: 0;' href='#' onclick='cmdSubmit()'>Out</a></form>"
objRecordSet.MoveNext
Else
objrecordset.MoveNext
End If
Set objuser = Nothing
Loop
</script>
</span>
</td>
</tr>
</table>
</body>
</html>
ASKER
i figured it out. I just made a batch file that i point to, and carry the variable over using the %1.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
well i got everything working the only problem is that when i have it in my sidebar and click unlock, it unlocks the person but also opens another application window. Any idea on how to make it stop?
ASKER
almost forgot here is the code
<html>
<head>
<hta:application
id="Locked Users"
applicationname="Locked Users"
border="dialog"
SCROLL="no"
caption="yes"
showintaskbar="yes"
singleinstance="yes"
sysmenu="yes"
>
<title>Woot</title>
<style>
body
{
width: 129;
height: 203;
padding: 0;
margin: 0;
background-image: url(../IMG/background.png);
background-repeat: no-repeat;
}
.style1 {
color: #FFFFFF;
font-family: Calibri;
font-weight: bold;
font-size: 11px;
}
.style2 {
color: #FFFFFF;
font-family: Calibri;
font-weight: bold;
font-size: 14px;
}
.style3 {
color: #FFFFFF;
font-family: Calibri;
font-weight: bold;
font-size: 5px;
}
</style>
</head>
<script Language="VBScript">
Sub Window_OnLoad
RefreshList
iTimerID = window.setInterval("RefreshList", 10000)
End Sub
Sub cmdSubmit(strtest)
Set objShell = CreateObject("Wscript.Shell")
objShell.Run """%userprofile%\appdata\local\microsoft\windows sidebar\gadgets\teepe.gadget\HTML\unlock.bat""" & strtest
End Sub
Sub RefreshList
On Error Resume Next
ProcessList.InnerHTML = ""
Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = _
"SELECT distinguishedName FROM 'LDAP://dc=,dc=,dc=,dc=com' WHERE objectCategory='user'"
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
ProcessList.InnerHTML = "<FORM style='margin: 0;' name='test'>"
Do Until objRecordSet.EOF
strDN = objRecordset.Fields("distinguishedName").Value
Set objUser = GetObject ("LDAP://" & strDN)
strislocked = objuser.isAccountlocked
straccount = objuser.displayName
straccount2 = objuser.samAccountName
If strislocked = True Then
ProcessList.InnerHTML = ProcessList.InnerHTML & straccount & " " & " <a style='color:#CCCCCC; margin: 0;' href='#' onclick='vbscript:cmdSubmit(""" & straccount2 & """)'>(Unlock)</a> <br>"
objRecordSet.MoveNext
Else
objrecordset.MoveNext
End If
Set objuser = Nothing
Loop
ProcessList.InnerHTML = ProcessList.InnerHTML
End Sub
</script>
<body>
<table width='116' border='0' cellspacing='0' cellpadding='0' style='padding-left:10px'>
<tr>
<td>
<div align='center' class='style2'>
<p><b> Locked Accounts</b></p>
</div></td>
</tr>
<tr>
<td>
<span class="style3"><br></span>
<span class='style1'>
<span id = "ProcessList"></span>
</span>
</td>
</tr>
</table>
</body>
</html>
ASKER
i got it. I had to take the href out of my onclick. But i have noticed that .hta is not the best thing for vista gadgets. It's a little buggy.
Good work. They can be a bit buggy, particular with screen refreshes, but they get the job done...
Rob.
Rob.
ASKER
LOL i totally revamped it to use HTML,VBSCRIPT, JAVASCRIPT, and my EXE's.No .hta. Thanks for all your help it's running great now! Thanks
ASKER
Thanks i used your code :)
1) Run unlock.exe directly, rather than using CMD.exe
2) Use the /C (runs unlock then closes cmd): cmd /c unlock.exe....
3) Use the /K (runs unlock then leaves cmd open): cmd /c unlock.exe....
4) If this doesn't work, use WScript.Shell.Run:
oShell = CreateObject("WScript.Shel
oShell.Run <command line>, 1, true