Viewing hidden Powershell/IE windows - windows

I have a Powershell script that runs in the background and part of the script will use IE that is hidden. Sometimes this script gets hung up and I'd like to view the IE and Powershell windows to see where its stuck. I can't find a way to do this.
Sometimes Windows will give me a message if a script is running that a process is running and asks if I would like to view it and then I am able to view the windows then but I can't figure out away to do that without getting that message first.
I need to figure out where this script is getting stuck at. If I run it manually it works fine and works fine most times but every so often it gets stuck in the same place.
It's a Windows 10 machine that it's running on.

Open a powershell window and type in these commands to connect to your running internet explorer:
$windows = (New-Object -Com "Shell.Application").Windows()
$ie = $windows | Where-Object {$_.Name -eq "Internet Explorer"}
$ie.Visible = $true
That should connect you to the running IE instance and make the window visible again. If that doesn't work, I would check out what objects are in the $windows variable to see if it is even detecting your IE. If it doesn't detect it, you might need to make sure it is running with Administrator rights.
After finding that the powershell script is starting the IE object in the remote session, I would instead implement a scheduled task and trigger that task remotely so that it will run in session 1 instead of session 0.
More info on this issue with various other applications:
http://psappdeploytoolkit.com/forums/topic/session-0-ui/
https://github.com/PowerShell/Win32-OpenSSH/issues/998
https://serverfault.com/questions/690852/use-powershell-to-start-a-gui-program-on-a-remote-machine

Related

Run PowerShell script in window on machine

I am trying to have a PowerShell script run after a machine restart. I want the script to run on restart, not login. Additionally, I want the script to run in a window. I found many questions that are almost identical to mine but don't include having the script running in a window. I've tried including -noexit. I have tried to use task scheduler and while it says that my script is running, no window appears. What do I need to do to make it run in a window?
I do not want to change global keys making all scripts run in a window and I do not want to write anything in my script that prompts the user to close the window.

C:\windows\SysWow64\CScript.exe window pop up

I created a macro in Excel and i am running it from a .vbs file. It's working fine on my laptop. I copied the same work on a new laptop and each time i am running the vbs file this window appears on the screen.
I have made some research and read that the situation i mentioned is happening when loading CheckNDISPort service on the startup. But i don't believe it's the reason because when i go to task manager and check in the startUp tab i don't find this service. Also when i restart my laptop i don't get this window, only when i am running my vbs file. I am sure there is any problem with my vbs file too because on the other laptops it's working fine.
Any suggestion please how to get ride of this pop up ? For now i am closing the window each time or ending the task from task manager but everytime i run it again so it pops up again.
Thank you very much.
Windows Scripting Host has two interpreter front-ends, wscript.exe and cscript.exe. cscript.exe is a console application and if cscript.exe is set as the default a console window will open every time you execute a script.
Run cmd.exe elevated as administrator and run wscript.exe //h:wscript.
Depending on the Windows version, you might also be able to right-click a .vbs file, select "Open with...", choose %windir%\system32\wscript.exe and check the "default" checkbox.

How do I hide the cmd windows when rotating logs?

I added this command to httpd_uwamp.conf :
#LOG ROTATION
TransferLog "|C:/UwAmp/bin/apache/bin/rotatelogs.exe C:/UwAmp/bin/apache/logs/backup/access-%Y_%m_%d.log 5M"
It works fine, but cmd window is always visible while Apache is on.
Does anyone know how to hide this cmd window ?
This happens to me too with my access logs. I couldn't figure out a solid solution but for now I hide it through the command line using this tool found here:
https://steve.fi/Software/windowhide/
I've used it on Windows 7 and Windows Server 2012
Credits go to Steve Kemp .. steve#steve.org.ku
Revisiting... You might want to check on what user profile your server is starting and make sure it's running as a service.
My rotatelogs windows finally cleared away when I ran my server applications as a service..
Under the Task Manager the username is now SYSTEM and no longer my user name.
With this modification, an "Interactive Services Detection" window would popup presenting the option to view the prompts from a self-contained screen.
I also modified the httpd.conf and moved my "CustomLog" and "ErrorLog" lines to the directives as they were outside, though I don't think it'll affect the outcome.

Windows 7 scheduled task "runs" but doesn't DO anything

I have a vbscript file that must run under 32bit on a 64 bit Windows 7 machine so that it can connect to a 32 bit Access database. From a run box I can enter:
C:\Windows\SysWow64\WSCRIPT.EXE P:\Applicants\Applicants.wsf
and it runs great. When I try to run this as a scheduled task, it runs in under a second (it shouldn't be that fast) and claims it finished successfully. This is the 'action' I am running it under currently:
Start a Program
C:\Windows\SysWow64\WSCRIPT.EXE
Arguments: //Nologo //B P:\Applicants\Applicants.wsf >> P:\Applicants\logfile.txt
I have also tried running it under CScript instead of WScript and the result is exactly the same.
Before I added "//Nologo //B" (a tip I found here) it would start running and never stop.
The optional "Start In" box is empty. If I put any value in it at all (tried P:\Applicants) the task fails to start with "Error Value: 2147942667." No solutions offered by searching this error code have worked so I leave this box empty.
The logfile never even gets created and none of the work the script performs is getting done.
The task runs under my network account and should have access to all needed drives and resources.
Suggestions? Without a logfile I don't even know where to begin troubleshooting this thing.
EDIT: New Info: If I set it to run only when I am logged in it works fine. It is only when set to run even if user is logged off that it doesn't work, even if I am logged in when it runs.
EDIT 2: Security context of 'run even if user is logged off' states that ""...select the radio button labeled Run whether user is logged on or not. If this radio button is selected, tasks will not run interactively. To make a task run interactively, select the Run only when user is logged on radio button."
So I guess it thinks my script is somehow interactive, but it isn't. There aren't any kind of prompts or dialog boxes or msgBox calls so I'm not sure why this would be an issue.
Got it! The problem was that I was referencing a mapped drive with P:\ both in the 'action' call and in the script itself. When I replaced all calls to the P drive with the full network path \server\share everything works fine. Of course mapped drives aren't available if I'm not logged in, makes perfect sense :p
You have two options.
1.Create a batch file with the command to run, then schedule the batch file to run instead of the VBScript file.
2.Run the script file directly, instead of using WScript or CScript.
Sources: http://social.technet.microsoft.com/Forums/en-US/windowsserver2008r2general/thread/464a3bb3-3bcd-47a0-ab03-f0b8910f2ed1/

Launch batch script before windows login window

I'm working on Windows Server 2003 and Windows server 2008.
I would like to start a batch script just before the login window is displayed.
I read about adding the script in the Group Policy editor (startup/shutdown) but it's not working (it worked for logon and logoff though).
An alternative would be to use the task scheduler service but it's not working either. Plus, I want to be able to see the results in a cmd window. That means the last alternative - creating a service to do the job - is not an option.
Do you have any idea ?
Thanks.
Control Panel -> Scheduled Tasks -> < follow the prompts>
Not as nice as a service, which you can start and stop through well-behaved commands, but if it is a service you want running at all times, it does the job.
Try adding your script as a user defined service
That way it will get executed before the login prompt;
http://support.microsoft.com/default.aspx?kbid=137890
Though this article says it can't be used for batch scripts, you can call the script from an executable.

Resources