PwExpChk.vbs can I add a company logo?

2020-05-06 07:35发布

问题:

The script I want to use in my environment is stated below, it is a .vbs script. I was wondering if it is possible to add a company logo to the pop-up box? If it is possible how would I do it? Also added is a picture (screen shot) of the results of the script as is... The script works great, I just need to know about the logo part. Due note that the logo will be a simple .jpg file and I am hoping I can add the company logo above the popup box instead of imbedded, something like:

Company logo

msgbox

Results of the script

    '==========================================
 ' Check for password expiring notification
 '==========================================
 ' First, get the domain policy.
 '==========================================
 Dim oDomain
 Dim oUser
 Dim maxPwdAge
 Dim numDays
 Dim warningDays

warningDays = 14

 Set LoginInfo = CreateObject("ADSystemInfo")  
 Set objUser = GetObject("LDAP://" & LoginInfo.UserName & "")  
 strDomainDN = UCase(LoginInfo.DomainDNSName) 
 strUserDN = LoginInfo.UserName

'========================================
 ' Check if password is non-expiring.
 '========================================
 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

     '========================================
     ' Determine the last time that the user
     ' changed his or her password.
     '========================================
     Set oUser = GetObject("LDAP://" & strUserDN)

    '========================================
     ' Add the number of days to the last time
     ' the password was set.
     '========================================
     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
         Msgbox "Password Expires in " & daysLeft & " day(s)" & " at " & whenPasswordExpires & chr(13) & chr(13) & "Once logged in, press CTRL-ALT-DEL and" & chr(13) & "select the 'Change a password' option", 0, " PASSWORD EXPIRATION WARNING!"
     End if

End if

'========================================
 ' Clean up.
 '========================================
 Set oUser = Nothing
 Set maxPwdAge = Nothing
 Set oDomain = Nothing   

回答1:

I based this on mockmyberet/ChooseFile.vbs

Sub PasswordExpirationDialog(daysLeft, whenPasswordExpires)
    Dim fso, objShell,  HTAFileName, HtaFile
    Const TemporaryFolder = 2
    Const ForReading = 1

    Set fso = CreateObject("Scripting.FileSystemObject")
    Set objTempFolder = fso.GetSpecialFolder(TemporaryFolder)
    HTAFileName = fso.GetSpecialFolder(TemporaryFolder).Path & "\PasswordExpirationDialog.hta"
    Set HtaFile = fso.CreateTextFile(HTAFileName, True)
    With HtaFile
        .writeline("<html><head>")
        .writeline("<title>PASSWORD EXPIRATION WARNING!</title>")
        .writeline("<HTA:APPLICATION ID='PaswordDialog'/></head><script language='VBScript'>")

        .writeline("Sub Window_OnLoad")
        .writeline("window.resizeto 700,400")
        .writeline("End Sub")

        .writeline("</script><body bgcolor='white'>")
        .writeline("<image src='https://upload.wikimedia.org/wikipedia/commons/thumb/3/3b/New_Orleans_Saints.svg/1000px-New_Orleans_Saints.svg.png' width='72' height='72' />")
        .writeline("<h1>")
        .writeline("Password Expires in " & daysLeft & " day(s)" & " at " & whenPasswordExpires)
        .writeline("<br><br>Once logged in, press CTRL-ALT-DEL and")
        .writeline("<br>select the 'Change a password' option")

        .writeline("<center><button onclick='Self.Close'>Okay</button></center>")
        .writeline("</h1></body></html>")
        .Close
    End With
    Set HtaFile = Nothing

    Set objShell = CreateObject("WScript.Shell")
    objShell.Run "%windir%\SysWoW64\mshta.exe " & Chr(34) & HTAFileName & Chr(34)

    WScript.Sleep 500
    fso.DeleteFile HTAFileName, True
    Set objShell = Nothing

End Sub

Usage

PasswordExpirationDialog 4, Date+ 4