Admin Rights Win 8+ and LNK-Library


only a short question, i hope:). How can i compile a executable in rust that automaticly triggers the UAC and gives admin rights to the exe?

In Micosoft Studios he wants an manifest xml file.

And knows anybody a good crate lib that handle windows .lnk files?


This has been asked before

What do you mean by “handle” them? There’s RustyLnk, but I can’t seem to find a page.

thx for the infos.
It looks like i must scooooop in the code of RustyLnk and snag the code i needed:). But an crate i don’t have found, too.

@OptimisticPeach The thread don’t answer my problem. I want to make the rust executables that trigger the uac and request admin rights, i don’t call an adminexecutable from an rust executable. When user start my executable i wants that the uac-prompts request an admin right.

You don’t need to copy it actually, you can add it as a dependency like so:

# Your Cargo.toml
RustyLnk = { git = "" }

@OptimisticPeach Thx, i will try it, unfortunately there is no api-doc and i think there only convert to json, but i hope i can use the binary-datas and copy it back again to an .lnk file.

You need a manifest file, and you need a resource file to embed the manifest file. There are a couple crates out there for compiling and linking resource files.

@retep998 Thx, do you have some crate-links, that will be nice?

Edit: Ah i see your winres-crate do the things i need, i have to go to your documentation, there stand it:).

Some Additions to check if the user has admin rights:

fn checkAdmin()
		use std::fs;
		use std::fs::File;
		let testfile = format! (r"{}\{}",env::var("WinDir").unwrap(),r"admin.testfile");
		let mut f = File::create(testfile);
		match f.as_ref()
			Ok(f) =>
				println!("{:?}", "Admin");
			_ =>
				println!("{:?}", "NoAdmin");

Not the most elegant way but its functioned at the moment.