【发布时间】:2022-10-25 03:38:33
【问题描述】:
我最近一直在使用 powershell 脚本来简化我的工作,并且到目前为止取得了巨大的成功,尽管经过了一些努力。我创建了一些脚本来打开 ADUC、Comp 管理和其他一些处于提升状态的东西,但我遇到了以下脚本的问题。
基本代码:
$Workstation = Read-Host "Workstation\IP Address"
$Username = Read-Host "Username"
$AdminGroup = [ADSI]"WinNT://$Workstation/Administrators,group"
$User = [ADSI]"WinNT://USA/$Username,user"
$AdminGroup.Add($User.Path)
pause
如果我右键单击并以管理员身份运行它,它可以工作,但是一旦我尝试添加任何内容以强制它在提升状态下运行,它似乎正在处理,但是当我检查管理员组时它不会出现工作过。我的代码可能完全偏离了这里,所以任何帮助表示赞赏,我对此很陌生。我一直在搜索谷歌和其他论坛,但没有找到任何有效的方法。我尝试过的其他代码:
runas /netonly /user:USA\adm$env:USERNAME "$AdminGroup.Add($User.Path)"
上面的代码将是首选方法,因为它允许用户使用自动填充的管理员帐户来提升它,因此他们只需要输入密码。当我这样做时,它会提示输入密码并具有正确的用户名,代码会处理并且我没有收到任何错误,但不会将用户添加到管理员组。
我也试过这个,但这里也没有成功。
$arg = "$AdminGroup.Add($User.Path)"
start-process powershell -Verb runas $arg
pause
在过去的几天里,我也尝试了其他一些事情,但我觉得我现在只是在兜圈子。我得到的最好的方法是创建脚本的快捷方式并将其设置为以管理员身份运行。但是,我希望能够删除在 UAC 中输入用户名的部分,并在出现提示时让它在 powershell 窗口中请求密码。我也尝试在这里搜索,但没有任何成功。也许这是我在寻找解决方案时使用的上下文?非常感谢对新手的任何帮助/建议!
【问题讨论】:
标签: powershell-5.1