Ability to run PhotoStructure without PowerShell

Several users have had issues with PhotoStructure’s use of PowerShell to gather system and volume metadata, and, frankly, debugging Windows permission issues is a nightmare as both system and security configurations vary wildly, and are almost impossible to reproduce on another machine.

For the users where the PowerShell troubleshooting instructions don’t suffice, there could be a powershell-less mode of PhotoStructure that

  • removes volume-is-almost-full health checks (these prevent big library imports from filling up your disk, which can cause problems)

  • removes support for cross-platform libraries (due to the lack of volume uuids)

  • removes support for hidden file and directory determination (which lets PhotoStructure automatically skip importing hidden files and directories)

  • removes the ability for PhotoStructure to run child processes at a lower priority, to prevent library imports from making systems too busy for the user

This is a fairly large change to PhotoStructure, and I don’t know how many people are being affected by it, but this feature request’s votes should help determine relative interest.

Are there still reports of issues with 1.0?

The new startup arguments for the powershell process in v1.0 (-executionpolicy bypass and -noprofile) should solve most of the issues related to environment customization and policy settings.

I work with powershell as one of my main tools and is quite proficient with it. I would be happy to help diagnose issues related to powershell.

1 Like

Thanks! Someone’s getting an EPIPE on fork, which would be (presumably) from some external process (presumably anti malware?) killing the child process. I didn’t find anything relevant in googling, but my search mojo may have been lacking.

Why do you need PowerShell for these features? If you can’t do what you need in Node, what about creating a native library (should be able to do that in any language that can create a standard Windows DLL, so C, C++, Rust, etc) using Node-API, or creating some sort of sidecar process in any programming language and just communicate through named pipes or stdin/stdout?

1 Like

I absolutely could have a native DLL to do this, you’re right.

If there are a bunch of votes for this, I’ll take the hit and build that out: there are only about ~5 API calls I need, anyway.

Thanks for the suggestion!