How to send keys/ input to a process that is running without a logged in user using powershell?
I'm having an issue with automating part of an application install with powershell.
Part of the install is running a command line tool with parameters and entering credentials to access a database. This is supposed to be done without logging in.
For that purpose I've been using scheduled tasks to start my scripts at system startup.
I've been trying to get this particular step working by using AppActivate and SendWait to send the credentials to the window. This does not work though since there is no interactive window if I use the task scheduler.
This is the current script I've been using. It works if I would use the RunOnce key for example.
[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:appapp.exe"
start-sleep -Milliseconds 1000
[Microsoft.VisualBasic.Interaction]::AppActivate("C:appapp.exe")
[System.Windows.Forms.SendKeys]::SendWait("username")
start-sleep -Milliseconds 1000
[Microsoft.VisualBasic.Interaction]::AppActivate("C:appapp.exe")
[System.Windows.Forms.SendKeys]::SendWait("password")
This script is called by another script which is run by the task scheduler.
Right now it fails with:
Exception calling "AppActivate" with "1" argument(s): "Process '{0}' was not found."
and:
Exception calling "SendWait" with "1" argument(s): "Access is denied"
Which is due to not being able to access the window.
Is there any way to send the username and password to the process without requiring an active windows? From what I've seen it doesn't seem to be supported by powershell but I'm still hoping that there is a way. Maybe using Handles? I can not use any applications like AutoHotkey or AutoIt.
powershell scheduled-tasks sendkeys
add a comment |
I'm having an issue with automating part of an application install with powershell.
Part of the install is running a command line tool with parameters and entering credentials to access a database. This is supposed to be done without logging in.
For that purpose I've been using scheduled tasks to start my scripts at system startup.
I've been trying to get this particular step working by using AppActivate and SendWait to send the credentials to the window. This does not work though since there is no interactive window if I use the task scheduler.
This is the current script I've been using. It works if I would use the RunOnce key for example.
[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:appapp.exe"
start-sleep -Milliseconds 1000
[Microsoft.VisualBasic.Interaction]::AppActivate("C:appapp.exe")
[System.Windows.Forms.SendKeys]::SendWait("username")
start-sleep -Milliseconds 1000
[Microsoft.VisualBasic.Interaction]::AppActivate("C:appapp.exe")
[System.Windows.Forms.SendKeys]::SendWait("password")
This script is called by another script which is run by the task scheduler.
Right now it fails with:
Exception calling "AppActivate" with "1" argument(s): "Process '{0}' was not found."
and:
Exception calling "SendWait" with "1" argument(s): "Access is denied"
Which is due to not being able to access the window.
Is there any way to send the username and password to the process without requiring an active windows? From what I've seen it doesn't seem to be supported by powershell but I'm still hoping that there is a way. Maybe using Handles? I can not use any applications like AutoHotkey or AutoIt.
powershell scheduled-tasks sendkeys
add a comment |
I'm having an issue with automating part of an application install with powershell.
Part of the install is running a command line tool with parameters and entering credentials to access a database. This is supposed to be done without logging in.
For that purpose I've been using scheduled tasks to start my scripts at system startup.
I've been trying to get this particular step working by using AppActivate and SendWait to send the credentials to the window. This does not work though since there is no interactive window if I use the task scheduler.
This is the current script I've been using. It works if I would use the RunOnce key for example.
[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:appapp.exe"
start-sleep -Milliseconds 1000
[Microsoft.VisualBasic.Interaction]::AppActivate("C:appapp.exe")
[System.Windows.Forms.SendKeys]::SendWait("username")
start-sleep -Milliseconds 1000
[Microsoft.VisualBasic.Interaction]::AppActivate("C:appapp.exe")
[System.Windows.Forms.SendKeys]::SendWait("password")
This script is called by another script which is run by the task scheduler.
Right now it fails with:
Exception calling "AppActivate" with "1" argument(s): "Process '{0}' was not found."
and:
Exception calling "SendWait" with "1" argument(s): "Access is denied"
Which is due to not being able to access the window.
Is there any way to send the username and password to the process without requiring an active windows? From what I've seen it doesn't seem to be supported by powershell but I'm still hoping that there is a way. Maybe using Handles? I can not use any applications like AutoHotkey or AutoIt.
powershell scheduled-tasks sendkeys
I'm having an issue with automating part of an application install with powershell.
Part of the install is running a command line tool with parameters and entering credentials to access a database. This is supposed to be done without logging in.
For that purpose I've been using scheduled tasks to start my scripts at system startup.
I've been trying to get this particular step working by using AppActivate and SendWait to send the credentials to the window. This does not work though since there is no interactive window if I use the task scheduler.
This is the current script I've been using. It works if I would use the RunOnce key for example.
[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:appapp.exe"
start-sleep -Milliseconds 1000
[Microsoft.VisualBasic.Interaction]::AppActivate("C:appapp.exe")
[System.Windows.Forms.SendKeys]::SendWait("username")
start-sleep -Milliseconds 1000
[Microsoft.VisualBasic.Interaction]::AppActivate("C:appapp.exe")
[System.Windows.Forms.SendKeys]::SendWait("password")
This script is called by another script which is run by the task scheduler.
Right now it fails with:
Exception calling "AppActivate" with "1" argument(s): "Process '{0}' was not found."
and:
Exception calling "SendWait" with "1" argument(s): "Access is denied"
Which is due to not being able to access the window.
Is there any way to send the username and password to the process without requiring an active windows? From what I've seen it doesn't seem to be supported by powershell but I'm still hoping that there is a way. Maybe using Handles? I can not use any applications like AutoHotkey or AutoIt.
powershell scheduled-tasks sendkeys
powershell scheduled-tasks sendkeys
asked Nov 15 '18 at 12:22
TrafficJam23TrafficJam23
61
61
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Try this,
$proc = Get-process | where {$_.path -eq "C:appapp.exe"}
[Microsoft.VisualBasic.Interaction]::AppActivate($Proc.id)
It is recommended to provide more context to your answer. Review the guide on how to answer: stackoverflow.com/help/how-to-answer
– Enkode
Dec 12 '18 at 22:04
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53319429%2fhow-to-send-keys-input-to-a-process-that-is-running-without-a-logged-in-user-us%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Try this,
$proc = Get-process | where {$_.path -eq "C:appapp.exe"}
[Microsoft.VisualBasic.Interaction]::AppActivate($Proc.id)
It is recommended to provide more context to your answer. Review the guide on how to answer: stackoverflow.com/help/how-to-answer
– Enkode
Dec 12 '18 at 22:04
add a comment |
Try this,
$proc = Get-process | where {$_.path -eq "C:appapp.exe"}
[Microsoft.VisualBasic.Interaction]::AppActivate($Proc.id)
It is recommended to provide more context to your answer. Review the guide on how to answer: stackoverflow.com/help/how-to-answer
– Enkode
Dec 12 '18 at 22:04
add a comment |
Try this,
$proc = Get-process | where {$_.path -eq "C:appapp.exe"}
[Microsoft.VisualBasic.Interaction]::AppActivate($Proc.id)
Try this,
$proc = Get-process | where {$_.path -eq "C:appapp.exe"}
[Microsoft.VisualBasic.Interaction]::AppActivate($Proc.id)
answered Dec 12 '18 at 14:09
Raeez VpRaeez Vp
211
211
It is recommended to provide more context to your answer. Review the guide on how to answer: stackoverflow.com/help/how-to-answer
– Enkode
Dec 12 '18 at 22:04
add a comment |
It is recommended to provide more context to your answer. Review the guide on how to answer: stackoverflow.com/help/how-to-answer
– Enkode
Dec 12 '18 at 22:04
It is recommended to provide more context to your answer. Review the guide on how to answer: stackoverflow.com/help/how-to-answer
– Enkode
Dec 12 '18 at 22:04
It is recommended to provide more context to your answer. Review the guide on how to answer: stackoverflow.com/help/how-to-answer
– Enkode
Dec 12 '18 at 22:04
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53319429%2fhow-to-send-keys-input-to-a-process-that-is-running-without-a-logged-in-user-us%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown