我的目标:
以管理员身份运行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游戏中仍然很新。 非常感谢我能得到的任何帮助...
答案 0 :(得分:0)
首先,将密码存储为安全字符串,然后在将变量传递给身份验证后,使用system.management.automation将用户名和密码存储在一个变量中。