以不同用户身份运行代码以获得提升的权限
Posted
技术标签:
【中文标题】以不同用户身份运行代码以获得提升的权限【英文标题】:Run code as different user to have elevated privileges 【发布时间】:2016-10-03 21:52:27 【问题描述】:我正在部署一个监控系统,尽管它有大量的插件,但有些需要以不同的用户身份运行才能正常运行。
所以我切换到powershell,但问题是一样的,我有一些代码让我访问被拒绝,因为用户没有提升的权限。
我的问题是如何以不同的用户身份运行此代码,我试过了
$usuario = "myuser@mydomain"
$pass = get-content C:\credential.txt`
$spass = $pass | Convertto-SecureString`
pass = "securepass"`
spass = $pass | ConvertTo-SecureString -AsPlainText -Force`
write-host $pass
$cred = new-object System.Management.Automation.PSCredential -argumentlist $usuario, $spass
$UpdateSession = New-Object -ComObject Microsoft.Update.Session
$UpdateSearcher = ($UpdateSession.CreateupdateSearcher())
$Updates = $UpdateSearcher.Search("IsAssigned=1 and IsHidden=0 and IsInstalled=0").updates
$total = $Updates | measure
$total.count
那么我怎样才能将凭据传递给变量。问题访问被拒绝来自这一行
$Updates = $UpdateSearcher.Search("IsAssigned=1 and IsHidden=0").updates
【问题讨论】:
【参考方案1】:$args = ' -file path-to-script.ps1'
Start-Process -FilePath powershell.exe -Credential $creds -ArgumentList $args -Verb RunAs
Powershell 还具有 -Command,您可以使用它来调用函数或 cmdlet 而不是另一个脚本。
【讨论】:
以上是关于以不同用户身份运行代码以获得提升的权限的主要内容,如果未能解决你的问题,请参考以下文章