我可以讓每個人自己工作,但我無法讓他們一起工作,登錄腳本使用strArg =
來調用HTA文件, HTA文件生成一個密碼窗口。當登錄腳本在第31行和第106行運行HTA文件時出錯。密碼通知腳本在剩餘天數中引發「類型不匹配」錯誤
我知道問題出在strArg
之內,我弄不明白。它應該在到期商標的前13天通知最終用戶。任何幫助都會很棒。目前,作爲腳本現在,我得到一個錯誤與HTA文件部分:
Line: 31 and 106
Error: Type Mismatch 'strARG'
code: 0
我沒有打開下面鏈接中的問題,但這些建議沒有解決問題。
vbscript statement mismatch sring failing
Dim oDomain
Dim oUser
Dim maxPwdAge
Dim numDays
Dim warningDays
warningDays = 13
Set LoginInfo = CreateObject("ADSystemInfo")
Set objUser = GetObject("LDAP://" & LoginInfo.UserName & "")
strDomainDN = UCase(LoginInfo.DomainDNSName)
strUserDN = LoginInfo.UserName
Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000
intUserAccountControl = objUser.Get("userAccountControl")
If intUserAccountControl And ADS_UF_DONT_EXPIRE_PASSWD Then
'WScript.Echo "The password does not expire."
Else
Set oDomain = GetObject("LDAP://" & strDomainDN)
Set maxPwdAge = oDomain.Get("maxPwdAge")
' Calculate the number of days that are held in this value.
numDays = CCur((maxPwdAge.HighPart * 2^32) + _
maxPwdAge.LowPart)/CCur(-864000000000)
'WScript.Echo "Maximum Password Age: " & numDays
Set oUser = GetObject("LDAP://" & strUserDN)
whenPasswordExpires = DateAdd("d", numDays, oUser.PasswordLastChanged)
fromDate = Date
daysLeft = DateDiff("d", fromDate, whenPasswordExpires)
'WScript.Echo "Password Last Changed: " & oUser.PasswordLastChanged
If (daysLeft < warningDays) And (daysLeft > -1) Then
strCMD = "\\domain\netlogon\PwExpChk\PWReminder.hta" & " -" & intDaysRemaining
Set wshShell = CreateObject("WScript.Shell")
RC = WshShell.Run(strCMD , 0, False)
End If
End If
Set oUser = Nothing
Set maxPwdAge = Nothing
Set oDomain = Nothing
Set wshShell = Nothing
的HTA文件:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Password Reminder</title>
<hta:application
border="thin
borderstyle="normal"
caption="Password Reminder"
contextmenu="yes"
maximizebutton="Yes"
minimizebutton="no"
navigable="yes"
scroll="no"
selection="yes"
showintaskbar="yes"
singleinstance="yes"
sysmenu="Yes"
WINDOWSTATE="normal"
id="objPasswordHTA">
<script language="vbscript">
Sub Window_onLoad
strArg = 13
arrCommands = Split(objPasswordHTA.commandLine, "-")
If UBound(arrCommands) > 0 Then
strArg = arrCommands(UBound(arrCommands))
End If
'setup the window size depending on how many days remain
strArg = strArg * 1
If strArg <= 5 Then
self.MoveTo 200,50
window.ResizeTo 1000,850
Set wshShell = CreateObject("WScript.Shell")
wshShell.AppActivate "Password Reminder"
wshShell.SendKeys "% x" ' ALT+SPACE+X = windows maximize, must be enabled on hta
' ALT+SPACE+N = windows minimize, must be enabled on hta
' ALT+SPACE+R = windows restore
ElseIf strArg <= 10 Then
self.MoveTo 200,50
window.ResizeTo 900,750
Else
self.MoveTo 200,50
window.ResizeTo 750, 575
End If
End Sub
</script>
</head>
<body>
<table cellspacing="0" cellpadding="0" width="100%" bgcolor=Silver>
<tbody>
<tr>
<td valign="top" width="80%">
<p style="PADDING-TOP: 8px; PADDING-LEFT: 8px; margin-top: 0px">
<font face="Verdana" color="White" style="font-size: 11pt"><strong>Company name</strong></font><br />
<font face="Verdana" color="Black" size="5"><strong>Password Reset Reminder</strong></font>
<p>
</td>
<td valign="bottom" width="50%">
<img src='\\domain\netlogon\PwExpChk\logo.jpg' width='451' height='170' style="vertical-align:bottom;">
</td>
</tr>
</tbody>
</table>
<span id=DataArea></span>
<script language="vbscript">
Set wshNetwork = reateObject("WScript.Network")
Set wshShell = CreateObject("Wscript.Shell")
'TableMsgs:
strDaysLeftMsg1 = "We have detected that your password will expire in"
strDaysLeftMsg2 = "day(s) or less."
strPWCriteriaMsg = "<BR>Password criteria:" & _
"<BR> - 8 characters or longer" & _
"<BR> - At least one alpha, one numeric, and one special character" & _
"<BR> - Cannot be an old password" & _
"<BR> - Passwords ARE CaSe SeNsItIvE!!!" & _
"<BR>"
strArg = 13
arrCommands = Split(objPasswordHTA.commandLine, "-")
If UBound(arrCommands) > 0 Then
strArg = arrCommands(UBound(arrCommands))
strArg = strArg * 1
End If
intDaysLeftonPW = strArg
'Generate the HTML for the table
strTableHTML = "<TABLE align=center width=75%>"
If intDaysLeftonPW <= 5 Then
strTableHTML = strTableHTML & "<font size=5>"
strTableHTML = strTableHTML & "<TR bgcolor=Red><TD> </TD></TR>"
strTableHTML = strTableHTML & "<TR><TD><font size=5>" & strDaysLeftMsg1 & "<font color=Red><b> " & intDaysLeftonPW & _
"</b></font> " & strDaysLeftMsg2 & "</font>" & _
"<BR>" & _
"<BR>Please reset your password now to avoid getting locked out or expiring. " & _
"The only way to unlock an expired password is to contact Help Desk. " & _
"A typical expired password request takes 15-20 minutes.</TD></TR>"
strTableHTML = strTableHTML & "<TR bgcolor=Red><TD> </TD></TR>"
strTableHTML = strTableHTML & "<TR><TD>" & strPWCriteriaMsg & "</TD></TR>"
strTableHTML = strTableHTML & _
"<TR><TD><BR><font color=red>To reset password:</font>" & _
"<BR>1. Press CTRL+ALT+DELETE" & _
"<BR>2. Select " & Chr(34) & "Change a Password..." & Chr(34) & _
"<BR>3. Complete the password reset wizard." & _
"<BR>" & _
"<BR>Caution: There are no grace logons. Expired passwords will not be allowed onto " & _
"the network.</TD></TR>"
strTableHTML = strTableHTML & "</font>"
ElseIf intDaysLeftonPW <= 10 Then
strTableHTML = strTableHTML & "<TR bgcolor=yellow><TD> </TD></TR>"
sTRTableHTML = strTableHTML & _
"<TR><TD>" & strDaysLeftMsg1 & "<font color=Red><b> " & intDaysLeftonPW & _
"</b></font> " & strDaysLeftMsg2 & "</TD></TR>"
strTableHTML = strTableHTML & "<TR bgcolor=Yellow><TD> </TD></TR>"
strTableHTML = strTableHTML & "<TR><TD>" & strPWCriteriaMsg & "</TD></TR>"
strTableHTML = strTableHTML & _
"<TR><TD><BR>To reset password:" & _
"<BR>1. Press CTRL+ALT+DELETE" & _
"<BR>2. Select " & Chr(34) & "Change a Password..." & Chr(34) & _
"<BR>3. Complete the password reset wizard." & _
"<BR>" & _
"<BR>Tip: Try to avoid resetting passwords on Friday and reset early in " & _
"the week. This will give you more opportunities to sign in and get used to the new password " & _
"so you do not forget over the weekend.</TD></TR>"
Else
strTableHTML = strTableHTML & "<TR bgcolor=Green><TD> </TD></TR>"
strTableHTML = strTableHTML & _
"<TR><TD>" & strDaysLeftMsg1 & "<font color=Red><b> " & intDaysLeftonPW & _
"</b></font> " & strDaysLeftMsg2 & "</TD></TR>"
strTableHTML = strTableHTML & "<TR bgcolor=Green><TD> </TD></TR>"
strTableHTML = strTableHTML & "<TR><TD>" & strPWCriteriaMsg & "</TD></TR>"
strTableHTML = strTableHTML & _
"<TR><TD><BR>Please press CTRL+ALT+DELETE and select Change a Password..." & _
"</TD></TR>"
End If
'Add the dynamic HTML to the table/HTA
strTableHTML = strTableHTML & "</TABLE>"
DataArea.InnerHTML = strTableHTML
</script>
</body>
</html>
[vbscript語句不匹配sring失敗]的可能重複(http://stackoverflow.com/questions/38386289/vbscript-statement-mismatch-sring-failing) – dbmitch
我已經花了12小時過去3天對它和我可以讓它工作不正確,VBscript現在的方式爲不匹配類型字符串錯誤出現在以下部分的HTA文件中: strArg = 13 arrCommands = Split(objPasswordHTA.commandLine,「 - 「) 如果UBound(arrCommands)> 0,則 strArg = arrCommands(Ubound(arrCommands)) End If –
換句話說,我無法正確地聲明參數。 –