PowerShell 如何让普通用户以管理员权限执行程序

Windows的客户端管理经常会遇见一个场景,用户需要升级某个软件,但是需要管理员权限,如果是那些没有通过组策略或者SCCM发布的程序,那么桌面支持需要亲自跑过去,输入管理员用户和密码提升权限进行操作。

那么怎么才能让普通的用户能够以管理员权限执行某个程序呢?

最简单的方法是创建个快捷方式,路径上指定runas的管理员账号和密码,文件的路径就可以执行了。不过这样的缺点是密码账号都是明文显示的,用户稍微聪明一点就能看见。解决方法很简单,把runas的操作用脚本实现,然后编译成exe文件就可以隐藏源代码了。

下面来个简单的例子 我希望以管理员权限来打开teamviewer
写个脚本 t2.ps1

可以看见密码和用户都是明文显示的

$secpasswd = ConvertTo-SecureString ‘Pa$$word‘ -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ("administrator", $secpasswd)

Start-Process "C:\Program Files (x86)\TeamViewer\TeamViewer.exe" -Credential $mycreds

下一步需要编译成exe。这里需要说明一下powershell并不能真正的‘编译’成exe,他的实质就是压缩以后加工exe的外壳。一般可以用PowerGui这个软件来编译,不过我懒得下载安装这么大个软件,直接用Powershell的脚本也可以实现。这个PowerShell的脚本已经有人写好了,下载链接 https://gallery.technet.microsoft.com/scriptcenter/PS2EXE-GUI-Convert-e7cb69d5

下载完成 里面都有现成的例子。为了省事,我直接把我的t2.ps1拖到了Examples的目录里面

修改一下BuildExamples.ps1, 指定目录和icon

$SCRIPTPATH = Split-Path $SCRIPT:MyInvocation.MyCommand.Path -parent
ls "$SCRIPTPATH\Examples\*.ps1" | %{
    ."$SCRIPTPATH\ps2exe.ps1" "$($_.Fullname)" "$($_.Fullname -replace ‘.ps1‘,‘.exe‘)" -verbose -iconfile "PSEXE.ico"
    ."$SCRIPTPATH\ps2exe.ps1" "$($_.Fullname)" "$($_.Fullname -replace ‘.ps1‘,‘-GUI.exe‘)" -verbose -noConsole
}

Remove-Item "$SCRIPTPATH\Examples\Progress.exe*"
Remove-Item "$SCRIPTPATH\Examples\ScreenBuffer-GUI.exe*"

$NULL = Read-Host "Press enter to exit"

然后执行这个BuildExamples.bat文件,他会自动编译ps1文件为exe文件,并加上指定的ICON

双击我的t2.exe 他会自动打开teamviewer

查看一下进程的确是administrator执行的

问题解决

原文地址:http://blog.51cto.com/beanxyz/2161494

时间: 2024-10-03 09:06:16

PowerShell 如何让普通用户以管理员权限执行程序的相关文章

CentOS普通用户添加管理员权限

1.添加用户,首先用adduser命令添加一个普通用户,命令如下:#adduser keaising//添加一个名为keaising的用户#passwd ljl //修改密码Changing password for user keaising.New UNIX password: //在这里输入新密码Retype new UNIX password: //再次输入新密码passwd: all authentication tokens updated successfully. 2.赋予roo

BAT-把当前用户以管理员权限运行(用户帐户控制:用于内置管理员帐户的管理员批准模式)

相关资料: http://jingyan.baidu.com/article/72ee561a5dc24fe16138df95.html 网友求助:联想Y400,Win8系统 怎样获得管理员身份 要求详解. 分享经验:Windows 8.1 操作系统获取权限,和什么品牌机无关! 电脑人人有 提示:自己的电脑为什么没有足够的权限?这是微软的操作系统,照顾电脑新手的缘故,虽然每次操作都要咨询一遍,显得很麻烦,但安全的原因,操作系统还不至于轻易被不良程序击毁!一旦掌握自我防范的技巧,那就可以将这些警示

window8.1中用户的管理员权限的提升方法

1.使用命令netplwiz 2.点击确定后出现如下所示的内容,选择待修改的用户 3.然后点击属性,出现如图的内容 在上图中选中管理员左侧的单选按钮便可以了,将当前用户提升为管理员账户.

linux普通用户获取管理员权限

原文:http://www.cnblogs.com/likwo/p/3435404.html 测试环境:CentOS 5.5 1.添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户#passwd tommy   //修改密码Changing password for user tommy.New UNIX password:     //在这里输入新密码Retype new UNIX password:  //再次输入新

linux 创建新用户并增加管理员权限

1.adduser与useradd有什么区别?2.那种方式会自动创建组.用户组等信息? 3.如何新建用户具有管理员权限? $是普通管员,#是系统管理员,root用户默认是没有密码的,因此也就无法使用(据说是为了安全).想用root的话,得给root用户设置一个密码:sudo passwd root然后登录时用户名输入root,再输入密码就行了. 例子:adduser user1这样他就会自动创建用户主目录,创建用户同名的组.[email protected]:~# sudo adduser db

ubuntu创建新用户并增加管理员权限

问题导读:1.adduser与useradd有什么区别?2.那种方式会自动创建组.用户组等信息?3.如何新建用户具有管理员权限? $是普通管员,#是系统管理员,在Ubuntu下,root用户默认是没有密码的,因此也就无法使用(据说是为了安全).想用root的话,得给root用户设置一个密码:sudo passwd root然后登录时用户名输入root,再输入密码就行了.ubuntu建用户最好用adduser,虽然adduser和useradd是一样的在别的linux糸统下,但是我在ubuntu下

WinForm 程序加管理员权限

在Vista 和 Windows 7 及更新版本的操作系统,增加了 UAC(用户账户控制) 的安全机制,如果 UAC 被打开,用户即使以管理员权限登录,其应用程序默认情况下也无法对系统目录.系统注册表等可能影响系统正常运行的设置进行写操作.这个机制大大增强了系统的安全性,但对应用程序开发者来说,我们不能强迫用户去关闭UAC,但有时我们开发的应用程序又需要以 Administrator 的方式运行,如何实现这样的功能呢?下面演示 C# 程序如何实现提示用户以管理员权限运行. 本例以WinForm程

VS2005 工程在win7下使用管理员权限运行

想关资料 http://stackoverflow.com/questions/13030492/set-administrator-privilege-for-my-c-application-in-vs2005 http://msdn.microsoft.com/en-us/library/bb756929.aspx http://msdn.microsoft.com/en-us/library/ms235591.aspx //================================

windows Service启动带有管理员权限的进程

事情是这样的,公司的产品有个守护进程(windows Service)需要启动产品的主程序exe,让主程序它运行为管理员权限(因为主程序会加载一个插件,插件中有列出端口监听的功能,需要由端口查找到进程PID,由进程PID查找进程名或进程镜像路径,这些对于一些特殊进程例如svchost需要有管理员权限才能查到进程名和路径).windows下的程序是不能在运行时获得管理员权限的,只能在创建进程的时候提升为管理员权限.如果是普通进程运行一个管理员权限程序,可以调用ShellExcute API.双击鼠