存储用于以管理员身份运行PowerShell的凭据

时间:2015-12-16 11:12:12

标签: credentials powershell-v4.0 elevated-privileges

我的目标:
以管理员身份运行PowerShell,在我们的环境中需要管理员身份验证,并将这些凭据存储在该会话中运行的脚本使用的变量中。

如果信息不足:
我正在编写一个脚本,该脚本使用在变量中运行脚本的管理员的用户名(用于记录)。 我不想让运行此脚本的管理员必须登录两次。我们的环境已设置,因此当以管理员身份运行Powershell时,系统会提示他输入管理员凭据。我不希望第二次让脚本提示输入凭据以将它们存储在变量中 $ env:USERNAME没有帮助我,因为我不希望用户名登录到计算机,我想要用于运行脚本的管理员用户名。

我该如何做到这一点?

我到目前为止最接近的是在标准PowerShell会话中运行以下内容:

$AdminCred = Get-Credential
Start-Process powershell -Credential $AdminCred -ArgumentList "-file c:\ScriptName.ps1"

...但这让我有两个问题:

1)我正在使用管理员权限运行PS,但它与我的

中的“以管理员身份运行”不同
#Requires -RunAsAdministrator

线拒绝它。和

2)这会打开一个新的PS窗口,我的$ AdminCred变量不存储在那里。

看起来相对简单,但我在这款PS游戏中仍然很新。 非常感谢我能得到的任何帮助...

1 个答案:

答案 0 :(得分:0)

首先,将密码存储为安全字符串,然后在将变量传递给身份验证后,使用system.management.automation将用户名和密码存储在一个变量中。