【发布时间】:2020-07-05 16:43:17
【问题描述】:
例如,我有一个域控制器和一个加入域的客户端。 如果我想远程锁定客户端,我应该会运行
Invoke-Command -ComputerName [workstation name] -ScriptBlock {rundll32.exe user32.dll, LockWorkStation}
但是这不起作用。我假设这是因为 Invoke-Command cmdlet 运行脚本块中的代码,但会将任何内容返回到本地终端。我想要完成的是让代码或 powershell 脚本在远程计算机上本地运行。
我的问题首先是这是否是正确的方法,其次是为什么我正在运行的命令不起作用。
【问题讨论】:
-
从域中锁定客户端与锁定远程主机不同。无论您是否涉及域控制器。你可以按照@Suman Chhetri 所说的去做,没必要。只有在您的计算机上启用了 PowerShell Remoting 以及您计划命中的任何远程目标时,您的命令才会起作用。您还必须在远程目标的本地管理员组中才能执行此操作。您可以使用 GPO 为加入域的计算机启用 PSRemotiong,但对于工作组计算机,您必须手动执行此操作。有关于如何设置 PS Remoting、Web/Youtube 的内置帮助和示例
-
@postanote 我的意图是锁定远程主机。抱歉没有说清楚!我正在尝试从域管理员运行任何可能的命令,所以我认为权限等应该不是问题。各种不同的命令似乎运行完美,只是锁定远程主机的命令显然不起作用。我在论坛上的其他地方读到,据说 “Windows 不允许任何进程操纵交互式用户会话。” 但是,如果我运行远程命令以 注销 远程主机,它工作得很好。
-
您不能在登录用户的上下文中执行 PowerShell 命令。 PowerShell 始终在启动它的用户上下文中运行。这是 PowerShell 尊重的 Windows 安全边界。您可以将计划任务发送到目标以立即或在几秒钟内运行,设置为无论用户是否登录或使用 PSExec 和其他 3rdP 工具都可以运行,但您已经传递了交互式用户参数.请参阅 PSExec 帮助或this
标签: powershell active-directory