我正在尝试更轻松地通过 powershell 与特定用户一起运行某些东西。
所以我首先计算运行特定命令所需的用户名和域,这没有问题。
但后来我想使用计算出的凭据运行特定命令,但失败了。我已经尝试了以下变体:
# this does not work yet (the command works, but the alias/function doesn't
# function aduc {"runas /user:$currentUserDomain\$adminUserNameTier0 dsa.msc"}
# function aduc {& "runas /user:$currentUserDomain\$adminUserNameTier0 dsa.msc"}
# function aduc {Invoke-Command -NoNewScope -ScriptBlock {runas /user:$currentUserDomain\$adminUserNameTier0 dsa.msc}}
# function aduc {Invoke-Command -NoNewScope -ScriptBlock {& "runas /user:$currentUserDomain\$adminUserNameTier0 dsa.msc"}}
每当我调用“aduc”时,我都会得到:
aduc:术语“runas /user:DOMAIN\USER dsa.msc”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。第 1 行,字符:1
(出于数据保护的原因,我在错误消息中输入了 DOMAIN\USER,当然实际上我们使用的是真实的现有值)
知道如何让它工作吗?
答案1
经过进一步的实验我发现这是可行的:
$currentUserDomain = "contoso.com"
$adminUserNameTier0 = "contosodomainadmin"
function aduc {Invoke-Command -NoNewScope -ScriptBlock {runas /netonly /user:$currentUserDomain\$adminUserNameTier0 "mmc dsa.msc"}}
现在只需调用“aduc”就会以 contoso\contosodomainadmin 的身份运行 dsa(“Active Directory 用户和计算机”)mcc 控制台,并要求输入密码。
问题可以关闭了。