GithubHelp home page GithubHelp logo

simonchen / createprocessasuser Goto Github PK

View Code? Open in Web Editor NEW

This project forked from murrayju/createprocessasuser

0.0 0.0 0.0 40 KB

Creates a process in a different Windows session

License: MIT License

C# 92.78% Batchfile 7.22%

createprocessasuser's Introduction

CreateProcessAsUser

Maintainers Wanted


๐Ÿšง Looking for maintainers ๐Ÿšง

๐Ÿ“ข We are actively seeking collaborators to help maintain and improve this project!

This library was created 10+ years ago when I was actively working on Windows services. I have since moved on to other things, and I'm not in a position to easily maintain this project, which is still actively used by the community. If you are interested in helping, please reach out!


This uses the Win32 apis to:

  1. Find the currently active user session
  2. Spawn a new process in that session

This allows a process running in a different session (such as a windows service) to start a process with a graphical user interface that the user must see.

Note that the process must have the appropriate (admin) privileges for this to work correctly. For WTSQueryUserToken you will need the SE_TCB_NAME privilege, which is typically only held by Services running under the LocalSystem account ( SO Link ).

Usage

using murrayju.ProcessExtensions;
// ...
ProcessExtensions.StartProcessAsCurrentUser("calc.exe");

Parameters

The second argument is used to pass the command line arguments as a string. Depending on the target application, argv[0] might be expected to be the executable name, or it might be the first parameter. See this stack overflow answer for details. When in doubt, try it both ways.

Demo Projects

The DemoService project uses .NET Framework 4.8. Building the demo will copy the batch files to the build target.

Similarly, the DemoModernService project uses .NET 8.0, and a build will copy the batch files to the build target.

For either version, CD to the bin directory and run createService to install and start the service. It will launch calc.exe as soon as it starts. After that, run deleteService to stop and uninstall the service.

createprocessasuser's People

Contributors

murrayju avatar bumbeishvili avatar kamenriderkuuga avatar mv10 avatar 0x53a avatar mmiszczyk avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.