windows - 如何使用 powershell 在本地用户上设置 "Environment"> "Start the following program at logon"属性?

标签 windows powershell

背景:
我有一台安装了 Windows 2008 R2 的服务器作为终端服务器 session 主机运行。我有一长串本地用户设置和配置为远程桌面用户。当用户使用远程桌面连接远程登录时,程序会自动启动。当用户关闭该程序时, session 结束。如果我手动设置,这一切都很好。

我的问题:
我编写了一个脚本来自动添加本地用户列表并设置和配置属性。问题是我无法找到如何设置“环境”>“登录时启动以下程序”属性。 (请参阅图片了解我要设置的属性)

enter image description here

我当前脚本的示例部分如下:

  $computer = "localhost"
  $userName = "aTestUser"
  $objComputer = [ADSI]"WinNT://$computer"
  $objUser = $objComputer.Create('user', $userName)
  $objUser.SetPassword("Password")
  $objUser.PSBase.InvokeSet('Description', "Some description for $userName")
  $objUser.PSBase.InvokeSet('userflags', 512)
  $objUser.PSBase.InvokeSet('passwordExpired', 1)
  $objUser.SetInfo();

我也试过这个不起作用的命令:
  $objUser.PSBase.InvokeSet("TerminalServicesInitialProgram", "C:\programs\a_test_program.exe")  

我已经在 Microsoft 的 MSDN 站点以及 Google 和 StackOverflow 上进行了搜索,但找不到这个特定的属性。

最佳答案

我找到了解决方案here .

$ou = [adsi]"WinNT://127.0.0.1"
$user = $ou.psbase.get_children().find("test")
$user.PSBase.InvokeSet("TerminalServicesInitialProgram", "C:\logoff.bat")
$user.setinfo()

关于windows - 如何使用 powershell 在本地用户上设置 "Environment"> "Start the following program at logon"属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45729847/

相关文章:

c++ - 如何通过非常频繁的读取/非常罕见的写入来同步对全局变量的访问?

html - 如何将控制台应用程序(如 MSBuild 或 PowerShell)的彩色输出转换为保留颜色的 HTML 格式?

PowerShell Get-Service 返回结果很慢

powershell - 在Powershell中的一个zip文件中添加多个文件夹

powershell - 在2个选项之间更改dns的批处理文件

c - 带/不带控制台的 Windows 启动过程

windows - Windows 如何保护过渡到内核模式?

windows - 使用 nmake.exe Windows 在 makefile 中无法识别 addprefix 命令

powershell - 如何使用 PowerShell 从本地目录中的 github 下载文件

Windows 和 Linux 之间的 C++ 可移植性