Je peux obtenir que chacun fonctionne seul, mais je n'arrive pas à les faire fonctionner ensemble, le script d'ouverture de session utilise le strArg =
pour appeler le fichier HTA, le Le fichier HTA génère une fenêtre de mot de passe. Lorsque le script d'ouverture de session exécute les erreurs de fichier HTA sur les lignes 31 et 106.Le script de notification de mot de passe soulève une erreur de type "incompatibilité de type" pour le nombre de jours restants
Je sais que la question se trouve dans la strArg
, je ne peux pas comprendre. Il devrait informer les utilisateurs finaux aux 13 jours avant la date d'expiration. Toute aide est la bienvenue. À l'heure actuelle, que le script est maintenant, je reçois une erreur avec la partie de fichier HTA:
Line: 31 and 106
Error: Type Mismatch 'strARG'
code: 0
Je l'ai ouvert la question dans le lien ci-dessous, mais ces suggestions ne résout pas le problème.
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
Le fichier 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>
Possible duplication de [vbscript statement discordance sring failing] (http://stackoverflow.com/questions/38386289/vbscript-statement-mismatch-sring-failing) – dbmitch
J'ai passé 12 heures pour les 3 derniers jours et Je peux le faire fonctionner pas juste, la façon dont le VBscript est maintenant l'erreur de chaîne de type Mismatch apparaît pour le fichier HTA qui est dans la partie suivante: strArg = 13 arrCommands = Split (objPasswordHTA.commandLine, "- ") Si UBound (arrCommands)> 0 alors strArg = arrCommands (Ubound (arrCommands)) Fin Si –
En d'autres termes, je ne peux pas définir correctement les arguments. –