O BGInfo suporta o seguinte para definir variáveis personalizadas:
Aprimeiracoisaquevemàmenteédefinirumscriptdelogonparaousuárioprimeiro.Algoqueencontraadatadeexpiraçãoegrava-aemumarquivonocomputadorlocal:
$Searcher=New-ObjectSystem.DirectoryServices.DirectorySearcher$Searcher.Filter="(sAMAccountName=$($Env:USERNAME))"
$Searcher.SearchRoot = "LDAP://$Env:USERDNSDOMAIN"
$Searcher.SearchScope = 'Subtree'
$ADAccount = $Searcher.FindAll()
$PwdLastSet = [DateTime]::FromFileTime($ADAccount.Properties.pwdlastset[0])
$PwdAge = (New-TimeSpan $PwdLastSet (Get-Date)).TotalDays
$NextPwdChange = 60 - $PwdAge
[Math]::Round($NextPwdChange, 0) | Out-File (Join-Path $Env:USERPROFILE 'pwdage.txt')
Isso descobrirá a última vez que a senha do usuário foi alterada, calculará a sua idade e gravará a diferença de 60 dias em um arquivo de texto na pasta do perfil do usuário. Então, se eu mudei minha senha 30 dias atrás, ela escreveria "30" no arquivo de texto porque tenho 30 dias para ir até a próxima mudança de senha.
Em seguida, você pode fazer com que o BGInfo consuma o conteúdo desse arquivo de texto.