powershell与凭证传递一样运行为安全字符串

时间:2016-07-05 22:11:03

标签: powershell

我通常以非特权用户身份登录,并将进程提升为具有管理员权限的其他用户。该用户密码每天更改。我试图将其作为安全字符串存储在PowerShell中,然后将其读入凭证对象并启动进程。它给我的错误是传递给系统调用的数据区域太小

每天设置我运行的密码:

read-host -assecurestring | convertfrom-securestring | out-file c:\creds\mycached.txt

然后,在我的.ps1脚本中,我想使用该凭据进行提升。这就是我正在做的事情:

$proc_fullpath  = "C:\process_tools\Procmon.exe"
$username       = "mydomain\my_admin_userid"
$password       = cat c:\creds\mycached.txt

$cred            = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,(ConvertTo-SecureString -String $password -AsPlainText -Force))

$args = "Start-Process " + $proc_fullpath + " -Verb runAs"
# Write-Host $args

Start-Process powershell.exe -Credential $cred -NoNewWindow -ArgumentList $args

我收到以下错误:

Start-Process : This command cannot be run due to the error: The data area passed to a system call is too small.

如何让这项工作执行单个.exe文件(本例中为procmon.exe)以及何时运行带参数的.exe文件?

我知道这是基本的,但我无法让它发挥作用。

0 个答案:

没有答案