У меня проблема с автоматизацией установки приложения с помощью powershell.
Частью установки является запуск инструмента командной строки с параметрами и ввод учетных данных для доступа к базе данных. Это должно быть сделано без входа в систему.
Для этого я использовал запланированные задачи для запуска моих скриптов при запуске системы.
Я пытался заставить этот конкретный шаг работать, используя AppActivate и SendWait для отправки учетных данных в окно. Это не работает, хотя, так как нет интерактивного окна, если я использую планировщик задач.
Это текущий скрипт, который я использовал. Это работает, если бы я использовал ключ RunOnce, например.
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.VisualBasic")
powershell.exe add-type -AssemblyName microsoft.VisualBasic
add-type -AssemblyName System.Windows.Forms
$parms = 'create instance'
Start-Process "app.exe" -ArgumentList $parms -WorkingDirectory "C:\app\app.exe"
start-sleep -Milliseconds 1000
[Microsoft.VisualBasic.Interaction]::AppActivate("C:\app\app.exe")
[System.Windows.Forms.SendKeys]::SendWait("username")
start-sleep -Milliseconds 1000
[Microsoft.VisualBasic.Interaction]::AppActivate("C:\app\app.exe")
[System.Windows.Forms.SendKeys]::SendWait("password")
Этот скрипт вызывается другим скриптом, который запускается планировщиком задач.
Сейчас это не с:
Exception calling "AppActivate" with "1" argument(s): "Process '{0}' was not found."
и
Exception calling "SendWait" with "1" argument(s): "Access is denied"
Это связано с невозможностью доступа к окну.
Есть ли способ отправить имя пользователя и пароль процессу, не требуя активных окон? Из того, что я видел, похоже, что не поддерживается PowerShell, но я все еще надеюсь, что есть способ. Может быть, с помощью ручек? Я не могу использовать любые приложения, такие как AutoHotkey или AutoIt.