Hallo, wir nutzen für diese Szenario folgende selbst gestrickte Lösung. Server VM, V3.7 installiert und eingerichtet. V5 noch nicht getestet. per SEH UTN wird die mIdentity durchgereicht. Die Ordner der Belege sind freigegen, sodass unsere Mitarbeiter die Belege in die entsprechenden Verzeichnisse ablegen können. Am Server wird sich automatisch mit einem dafür vorgehsehen Service Account eingeloggt: https://docs.microsoft.com/de-de/troubleshoot/windows-server/user-profiles-and-logon/turn-on-automatic-logon#use-registry-editor-to-turn-on-automatic-logon Per Aufgabenplanung wird ein Powershell Script bei Anmeldung des Service Accounts gestartet, was bei bei PIN Aufforderung Dialog den PIN eingibt und die Eingabetaste drückt über die fehlende Automatisierungsmöglichkeit freuen Server wird jede Nacht per Aufgabenplanung neu gestartet mit einer entsprechenden Monitoring Lösung z. B: Check_MK könnt ihr die Pfade auf Dateien überwachen das hier wäre das PS Skript, welches hauptsächlich von meinem Kollegen erstellt wurde. Es wird eine zusätzliche DLL bzw. UIAutomation genutzt: https://www.softwaretestinghelp.com/desktop-application-ui-automation-with-powershell/ (bitte sorgfältig prüfen und abwägen) Pfade, IP-Adressen UTN, USB-Indexeintrag des Sticks und PIN sind natürlich zu ändern... Start-Transcript -path "C:\batch\log.txt" -append
Import-Module C:\batch\UIAutomation\UIAutomation.dll
[UIAutomation.Preferences]::OnErrorScreenShot = $false #By default, UIAutomation saves a screenshot if a cmdlet fails.in %temp%: https://softwaretestingusingpowershell.wordpress.com/2012/09/26/daily-automation-taking-screenshots-unleashed/
[UIAutomation.Preferences]::HighlightParent = $False #durch highlighting schmiert sonst die Powershell ISE ab...
[UIAutomation.Preferences]::Highlight = $False #durch highlighting schmiert sonst die Powershell ISE ab...
[System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms") #für "sendkeys"
$timeout = Get-Date
$error.Clear()
$errcount = 0
do{
& "C:\Program Files (x86)\SEH Computertechnik GmbH\SEH UTN Manager\utnm.exe" /c "activate 192.168.x.x 3"
$state = & "C:\Program Files (x86)\SEH Computertechnik GmbH\SEH UTN Manager\utnm.exe" /c "state 192.168.x.x 3"
if($state -like '*"Activated" (1)'){
& "C:\Program Files (x86)\Belegtransfer\DATEV.BEDI.BelegTransfer.exe" /w # /w startet gleich in den Überwachungsmpodus
do{
$a = "no error"
try{
start-sleep 10
Get-UIAWindow -Name 'PIN eingeben' | Get-UiaPane | Set-UIAFocus | Set-UIAControlKeys "123456789{ENTER}"
Start-Sleep -Seconds 5
}
catch{
$error
$a = "error"
$errcount = $errcount + 1
Write-host $errcount -ForegroundColor Magenta
Write-Host "Warte 10 Sekunden..."
Start-Sleep -Seconds 10
}
}while(($a -eq "error") -and $timeout.AddMinutes(2) -gt (Get-Date))
}
}while($state -notlike '*"Activated" (1)' -and $timeout.AddMinutes(2) -gt (Get-Date))
exit
Start-Sleep -Seconds 5
Get-UIADesktop | Get-UiaPane -Class 'Shell_TrayWnd' | Get-UiaButton -Name 'Belegtransfer*' -Timeout 0 viel Spaß damit Grüße, AW
... Mehr anzeigen