Download autoit
https://www.autoitscript.com/files/autoit3/autoit-v3-setup.zip
We use sertificate for sign dll microsoft net core with hasp USB key from NetSafe, and after some time needed reenter password to utility
Write script by autoit scripd editor
>cat C:\Scripts\autoit.au3
MsgBox(4096, 'Message', 'Check enter pass',10) $hWnd = WinWait("Token Logon","",3)
cat c:\script\ if WinActivate($hWnd) Then
MsgBox(4096, 'Message', 'Need enter password',5)
WinActivate($hWnd)
Send("P@ssw0rd{!}6")
Send("{ENTER}")
Exit
Else
MsgBox(4096,'Message', 'Do not need enter password',5)
Exit
EndIf
And use it in powershell script:
>cat C:\Scripts\noLogin.ps1
param($minutes = 180)
$varDate= get-date
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = { return $true}
$smtpserv = "exchsmtp.local"
$mailto = "Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript."
$mailfrom = "Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript."
$mailsubj = "[Error] [PPAS-BUILD0-VM]Signing on the PPAS-BUILD0-VM server"
$mailbody = "[Error] Signing on the PPAS-BUILD0-VM server."
write "... screen will be awake for $minutes"
$t=0
$myshell = New-Object -com "Wscript.Shell"
for ($i = 0; $i -lt $minutes; $i++) {
write "... screen will be awake for" ($minutes-$i),$varDate, $t
Start-Sleep -Seconds 30
$myshell.sendkeys("{F15}")
$i--
$t++
if($t % 12 -eq 0)
{
Write-host "divisible by 12"
C:\Scripts\autoit.au3
Write-host "+++++++++++++"
$resultsign = cmd /c "`"C:\Scripts\SIGN\signtool.exe`" sign /s my /d `"Packege Installation`" /tr `"http://timestamp.digicert.com`" /fd sha256 ` C:\Scripts\SIGN\x64\msigrm.sys`""
if ($resultsign | Select-String -Pattern "Successfully signed" -Quiet){
echo 'GOOD -- C:\Scripts\SIGN\x64\msigrm.sys is signed'
}else{
echo 'Error signing'
Send-MailMessage -To $mailto -Subject $mailsubj -SmtpServer $smtpserv -From $mailfrom -Body $mailbody -Priority High
}
}
}