Powershell ISE Crashes on Launch - powershell

Not sure why, but today my workstation refuses to load the Powershell ISE. I can load Powershell just fine and my cmdlets work. I've tried loading both the 32bit and 64bit ISEs and both crash for the same reason.
This is the crashdump:
Problem signature: Problem Event Name: PowerShell NameOfExe:
PowerShell_ISE.exe FileVersionOfSystemManagementAutomation:
6.1.7600.16385 InnermostExceptionType: System.Xml.XmlException OutermostExceptionType: System.Reflection.TargetInvocation
DeepestPowerShellFrame:
indows.PowerShell.GuiExe.Internal.GPowerShell.Main DeepestFrame:
indows.PowerShell.GuiExe.Internal.GPowerShell.Main ThreadName:
unknown OS Version: 6.1.7600.2.0.0.256.48 Locale ID: 1033
Read our privacy statement online:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409
If the online privacy statement is not available, please read our
privacy statement offline: C:\Windows\system32\en-US\erofflps.txt
I couldn't find anything on google on this crash so I'm hoping someone here has some guidance.

This may be completely unrelated but in my case, I didn't understand much when I looked through Process Monitor to determine what was causing the crash as a windows update (cherry picked by our Helpdesk team), broke my PowerShell ISE launch, I also tried running without a profile. with Powershell_ISE -NoProfile
I followed the techcommunity thread and was able to fix my issue with Solution #3 GlobalUserInterface.CompositeFont from dotnet github issue
All I had to do was download this font and update it at below locations, PowerShell ISE is a WPF Application and Fonts were corrupted by dotnet upgrade as a part of KB4074906
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\WPF\Fonts and C:\Windows\Microsoft.NET\Framework\v4.0.30319\WPF\Fonts

Related

App installation(?) being blocked on user's Win10 machine, Get-WmiObject

We have a small custom data-conversion application developed in .Net+WinForms. We distribute it as a ZIPped .exe, no installer or anything. One of our customers is having the installation blocked. None of the other users at the same company are having any problems.
The error is a screen snap from an unidentified app and I'm typing this in, forgive any fat-fingers. It says the category is "script", and the details are:
Script Command: if (Get-WmiObject Win32_USBControlerDevice...
Googling that, it seems this is part of a PowerShell script? Can anyone offer a reason this might be happening? Perhaps part of unzipping or some other process? Does Window's own security check run scripts perhaps?

Powershell ISE crash when loading

I have encountered an error when trying to launch Powershell ISE. The launch starts with 'Loading' displayed in the splash panel, then a dialog box comes up with "An unexpected error has occurred, and Windows PowerShell ISE must close"
I have Googled this error and come up with nothing specific, but I have followed a few steps that have been suggested for fixing other issues.
Platform: Windows 8.1 Pro
Powershell ISE product version: 10.0.14409.1005
(Cannot open shell so cannot run cmdlet to get exect version details)
Things I have tried
1 The plain Powershell shell **does** launch.
2 Tried launching ISE with -NoProfile & -MTA switches no luck
3 Rename powershel_ise.exe.config so it cannot be read in both System32 & WOW64 folders
4 Upgrade .NET Framework to 4.5.1
5 Upgrade Management Framework to 5.1
6 Other machines within our environment with same image and patch level have **not** encountered this problem
7 Cannot find an associated error in the Event viewer logs
I really don't want to blow the machine away and start again so any suggestions or fix would be appreciated !
Angus
I had the same issue, I was able to fix it with recreating my user profile.
You can log as different user and try to run powershell_ise in that profile, if it runs, so more likely you can fix it. Just have somebody with admin rights delete your profile, and then just log back. Or if you have admin rights go create another account with admin, go to system properties / user profiles and remove your current profile ( just save files you need to keep)
"I renamed the C:\Users<name>\Documents\WindowsPowerShell directory and re-ran ISE and it didn't crash. Something up with that profile directory for me... –
Duncan Smart
Feb 10 '21 at 11:07"
Solved my similar issue! :D
Go to Documents C:\Users<loggedinProfileName>\Documents\WindowsPowerShell and re name from WindowsPowerShell to Old_WindowsPowerShell it will work if its crashes because for user profile.

Windows 10 application issues. Start and Cortana freeze

Recently forced upgraded to windows 10 by microsoft. Windows Start and cortana froze. Searched google and from powershell ran
Get-AppXPackage -AllUsers | Foreach
{Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
Now lot of my windows application have disappeared. They show up with #{AppPackageName} in taskmanager or when searched using cortana for example #{Microsoft.ZuneMusic_2019.6.15131.0_neutral_~_8wekyb3d8bbwe}. I can not remove these app using any command like
Tried to install store app manually and get error Merge Failure : error 0x80070003 : Cannot register the Microsoft.WindowsStore_2015.21.25.0_x64__8wekyb3d8bbwe package because there was a merge failure with the following file: C:\Program Files\WindowsApps\Microsoft.WindowsStore_2015.21.25.0_neutral_split.scale-100_8wekyb3d8bbwe\resources.pri
Full log below:
Now I understand that store app is not getting add because add process is causing error or merge failure with another package (?). The problem is get/Add-AppxPackage are resolving dependency of application with package-version: Microsoft.WindowsCalculator_10.1510.13020.0_neutral_split.scale-100_8wekyb3d8bbw‌​e
AND/OR
Microsoft.WindowsCalculator_10.1510.13020.0_neutral_split.language-hi_8wekyb3d8bbwe
My laptop c:\program files\windowsapp only has Microsoft.WindowsCalculator_10.1510.9020.0_neutral_split.scale-100_8wekyb3d8bbwe (not diff in version 13020 and 9020). Note: The version no on app is 13020 but dependent package on drive is 9020.
Second package is missing from drive (Microsoft.WindowsCalculator_10.1510.13020.0_neutral_split.language-hi_8wekyb3d8‌​bbwe).
How to get my calculator and windows store application back.
<1>Create a new user account and Log into the new account
<2>You can also try
Running the System File Checker by running
sfc /scannow
Download files from Windows Update to replace the corrupt ones by running
DISM /Online /Cleanup-Image /RestoreHealth
You may try the following, at your own risk.
I had the same issue after trying to reinstall the apps via that powershell thingy. Fixed it and returned the apps to their out-of-box state by first wiping everything from C:\Program Files\WindowsApps and C:\Users*\AppData\Local\Packages and then reinstalling Windows over itself from the tech bench ISO (from under Windows and keeping "traditional" apps and files in place, of course). I had to use the ISO because the media creation tool wasn't cooperative at all, throwing some error at me. Just in case, the aforesaid wiping didn't cripple the vitals like the immersive control panel or something else, just the typical no start menu/dead modern apps/no right click on the taskbar items.
By the way, the whole problem started after the 1511 update. Modern apps would refuse to remember their settings, and windows shell experience host would freeze for no reason, taking the start menu and things like volume control with it. I've had this Windows installation for a couple of years now, and the system has gone pretty smoothly through the 8.0-8.1-10 update process over that time, but that 1511 screwed something big time.

Powershell System.__ComObject.document property no longer works under IE 9

I've been writing up a script that runs some server functions using a web-browser interface. I coded up the script on Windows 7 with Internet explorer 8 and it works fine.
As soon as I move it to the production server running Windows 2008 with Internet Explorer 9, it breaks. Finally traced it the point of failure, but I'm a bit stumped how to fix it.
Here's the code that will cause an issue:
$ie = new-object -com "InternetExplorer.Application"
$ie.navigate("http://www.google.com")
$ie.visible = $True
$doc = $ie.document
$Object1 = $doc.getElementByID("pocs")
This pops up an IE windows, and it should be able to search elements by ID. Trouble is, now I get the error
"Cannot find an overload for "getElementById" and the argument count:
"1"."
I can find very very little on this error. The actual issue is actually the variable $doc. If I do a "$doc | get-member" on IE 9 I get:
TypeName: System.__ComObject#{c59c6b12-f6c1-11cf-8835-00a0c911e8b2}
But under IE 8 I get:
TypeName: mshtml.HTMLDocumentClass
So, basically, IE 9 / Windows 2008 is failing to load the web document contents when I call $ie.document. I've tried setting IE9 to compatibility mode, but no luck there.
The $ie.document | get-member does actually show the method of : "getElementById Method Variant getElementById () " so it's in there, but there's no document for it to parse.
Any ideas would be greatly appreciated.
I am equally astonished this has not been fixed yet given the longevity of the issue on various technical forums. However I think I have found the solution, though it would be up to the Microsoft IE team to address at some point.
Like all the threads referenced that have looked into this I have suffered the same issue with the getElementById method, which with no other changes to a couple of test machines (one Windows 2008R2 Enterprise 64bit and one Windows 7 32bit), I can get the same script to work.
Workarounds that worked as temp solution that I didn't like:
Using the dev console in IE11, switch the Document Mode to 8 (9,10,11,Edge (default) don't work) - my automation script works instantly. No changes to IE trusted sites, zone security, protected mode, PowerShell session priveleges). So clearly just a component issue of the IE11 installation of some sort
Installing Office 2013, without ever running or licensing it, the same script works instantly without changing the Document Mode of IE11. Clearly Office does install/register something that fixes the problem (as Rhys Edwards says)
So I set about narrowing down what Office does to enable the COM object required for IE automation by:
Preparing a new Virtual Windows 2008R2 Server , no updates. Ran test script under IE8 - no issues.
Upgraded to IE11. Ran test script - failed as usual.
Took a VM snapshot
Used Regshot to do record the registry and file system
Ran the Office 2013 Pro_SP1 installation, no changes to default options
When Office install completes, did not run office once (at all ever)
Ran test script again - everything works, the IE automation with getElementById calls all back in operation
Took a 2nd VM snapshot
Ran 2nd scan with regshot and analysed the differences
Dumped the properties of my $ie object and also noticed there is far more there than before running Office install. References mshtml.dll and HTMLDocument classes throughout - looks as it should
I can see from the RegShot difference file that MSHTML.dll is ADDED and registered in the GAC (version 7.0.3300.0) by the office installation
What I did next may not be completely approved but:
I located the microsoft.mshtml.dll in the "c:\program files(x86)\Microsoft.net\primary interop assemblies" folder and saved it out of the VM to my local machine desktop
reverted to the pre-office 2013 snapshot
copied the microsoft.mshtml.dll into the VM and installed to the GAC (remember this is a 2008R2 server still on .net 2, I didn't update .net prior to or after IE11 install, only office). I installed to the GAC simply by dragging the file into the c:\windows\assembly view in explorer. In later versions of .Net you need to use gacutil /l
Tested the same script and BOOM, it all works fine. No need to change any IE settings or elevate script privileges or install Office
So to sum up. If you install IE11, to get PowerShell to automate the Document Model, I had to (re-)register the mshtml.dll in the GAC. Why the IE11 installation doesn't ensure this happens is beyond me but I think that the IE team need to look into this.
I also think for those where it 'just works' in IE10/11, you must have a product on the machine that has already registered the mshtml.dll in the GAC (perhaps Office, perhaps Visual Studio or some other MS app). Hence why you are not seeing the same problem that definitely exists.
Hope this helps someone - it was driving me crazy!
Andrew
As detailed in the comments on the question, there seems to be three solutions to this problem.
Upgrade to PowerShell 3.0: Version 2.0 is only compatible with up to IE8 when it comes to web-scraping and using IE as an object. However, version 3.0 will work with IE9. You can get it here.
Turn off protected mode in IE: Turning of protected mode for the Internet zone under the Security tab in settings seemed to do the trick for me. There are security implications to this that should be carefully considered.
Run the script in admin mode: Simply run the script in an elevated PowerShell prompt.
The last two solutions come from a different SO answer.
I had similar kind of issue and it got resolved by following below steps:
Check for the Microsoft.mshtml.dll on your machine. It should be available at location C:\Program Files (x86)\Microsoft.NET\Primary Interop Assemblies. If you don't find it at this location, It might be the case that you don't have this dll and this is the reason you are getting this issue.
Find the dll, and try to load the assembly at run time. You can place the dll at any location on you machine and do it.
Below is the link to a method to load assembly at run time.
https://onedrive.live.com/?cid=21ad54fd70600673&id=21AD54FD70600673%211922

Installshield 2009 installer refuses to onfigure for a second user (did work until recently)

Since years we use installshield to deliver our software. Since the last Version of our software the following happens:
After installing the program for "all users", when a restricted user logs in, he sees our applications Icon on the desktop. When double clicking it the first time a dialog appears "Configuring ". In recent versions after a while the dialog disappeared and our program stared. Now the process is aborted with a message: "The function is hosted on a unavailable network resource". Our program does not start. But when we create a shortcut to the .exe file by hand everything's fine.
We did not make any modifications to the installer project recently (besides changing the Version number). We also denied to install updates.
Questions:
What can the problem be?
How can i debug a installer?
Not so sure about Installshield (I use Wise) but you should check the following:
Set the MSI Property "ALLUSERS" to 1 in the "Property" table of the MSI database. See Windows Installer SDK documentation for more details. This ensures that all users get a shortcut for launching the application.
Call your installer with
MSIEXEC.EXE /v MyInstall.MSI
from the command line (this sets the logging to verbose) - might help!
Liam