【问题标题】:Storing Credentials used to Run PowerShell as Administrator存储用于以管理员身份运行 PowerShell 的凭据
【发布时间】:2016-03-22 12:00:19
【问题描述】:

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

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

我怎样才能做到这一点?

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

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

...但这给我留下了两个问题:

1) 我以管理员权限运行 PS,但它与我的“以管理员身份运行”不同

#Requires -RunAsAdministrator

line 拒绝它。和

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

看起来比较简单,但我对这个 PS 游戏还是很陌生。 非常感谢我能得到的任何帮助...

【问题讨论】:

    标签: credentials powershell-4.0 elevated-privileges


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2016-01-25
      • 1970-01-01
      • 1970-01-01
      • 2011-12-03
      • 2019-04-14
      • 2021-12-29
      • 2023-03-18
      • 1970-01-01
      相关资源
      最近更新 更多