我正在创建一个PowerShell脚本,用户可以运行该脚本来编辑注册表中的条目。我的问题是我无法弄清楚如何在同一脚本中存储本地管理员用户名和密码,以便用户可以双击该脚本并运行它,而不必手动输入用户名和密码。
这是我的代码:
with_items
$username = "testpc\administrator"
$pasword = get-content C:\Users\test1\documents\testpassword.txt
$credential = new-object -typename system.management.automation.pscredential
-argumentlist $username, $password
这根本不起作用。请让我知道我在做什么错。
答案 0 :(得分:2)
通常,我会要求您输入错误,但在这种情况下,我会建议您改错,只是因为您的方法不可接受。
在这种情况下,我将看到两个具有给定信息的解决方案:
答案 1 :(得分:0)
实际上@vrdse是正确的。 您可以使用KEY作为参数创建脚本,并且:
使用您的用户凭据创建计划的作业,并将脚本添加为任务。
授予用户执行作业的权限,但不具有编辑或删除权限
为用户提供了计划作业的快捷方式(或运行脚本),并制作了一个操作文档,以向用户显示如何使用该参数。
我使用明文密码作为临时测试工具,以确保用户无法使用我的脚本(因此,这与您的操作完全相反)。
您可以在执行期间捕获凭证:
$cred = get-gredential -message 'This script needs a real admin user'
Enter-PSSession -Credential $cred -ComputerName 127.0.0.127
您可以建立凭据(不存储特权用户数据):
$user = 'SuchAGreatDomainName\IAmLowPrivilegedUserName'
$Password = 'SuperSecretPassEverybodyKnows'
$secpassword = ConvertTo-SecureString $Password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential($user, $secpassword)
Invoke-RestMethod -Uri $Uri -Credential $Credential