
[英]Add logon program for TSclients in environment tab user adsi in Powershell
[英]Assign logon script in Environment Tab for terminal server client using Powershell
嗨,我想使用Powershell为用户配置文件设置登录脚本参数。 我打算使用WMIC USERACCOUNT来执行此操作,但是发现这是不可能的。 如下所示,该方法不存在于方法中:
class Win32_UserAccount : Win32_Account
{
uint32 AccountType;
string Caption;
string Description;
boolean Disabled;
string Domain;
string FullName;
datetime InstallDate;
boolean LocalAccount;
boolean Lockout;
string Name;
boolean PasswordChangeable;
boolean PasswordExpires;
boolean PasswordRequired;
string SID;
uint8 SIDType;
string Status;
};
我希望将其作为Powershell中的语句来执行,但是如果不可能,可以将其作为脚本来完成,我希望为Win Server 2008 R2设置如图所示的参数
该设置通过组策略维护,请参考: 指定当用户登录时自动启动的程序 。 组策略设置最终由注册表设置处理。 Windows和Windows Server的组策略设置参考可能会帮助您找到要更改的注册表设置,但是我在这里找不到运气。 您会注意到,很多设置都是HKCU,这意味着只能在用户登录时进行设置。这可能对您造成问题。 Windows程序自动启动位置页面是您可以将程序设置为启动的注册表中所有位置的良好参考。
我个人建议使用schtasks代替。 这是在cmd或PowerShell中创建一个的示例:
schtasks -create -tn "Run command prompt" -tr "C:\WINDOWS\system32\cmd.exe" -sc ONLOGON
花费了很长时间,但最终得到了答案,那就是使用IADsTSUserEx 。 我也尝试使用ADSI,但只能获取它来设置登录脚本以登录本地。 参见其他帖子 。 这是Elijiah的代码以及如何通过注册表设置本地用户的环境变量
# adds user
$objComputer = [ADSI]"WinNT://127.0.0.1"
$objUser = $objComputer.Create('user', $username)
$objUser.SetPassword($password)
$objUser.PSBase.InvokeSet('Description', "user " + $userName)
$objUser.PSBase.InvokeSet('userflags', 512)
$objUser.SetInfo();
# set password not to expire
wmic USERACCOUNT WHERE "Name = '$username'" SET Passwordexpires=FALSE
#set logoff script
$ou = [adsi]"WinNT://127.0.0.1"
$user = $ou.psbase.get_children().find("test")
$user.PSBase.InvokeSet("TerminalServicesInitialProgram", "C:\logoff.bat")
$user.setinfo()
#add to group
net localgroup $groupname $username /add
net localgroup "Remote Desktop Users" $username /add
#remote login
cmdkey /generic:TERMSRV/127.0.0.1 /user: $username /pass: $password
#add logoff script
#launch remote desktop
mstsc /v:127.0.0.1 | Out-Null
cmdkey /delete:TERMSRV/127.0.0.1
#load hive
reg load HKU\%username% "C:\Users\$username\NTUSER.dat"
#set environment valiables
Set-ItemProperty -Path HKU:\$username\Environment -Name SERVERTYPE -Type STRING -Value DIR
#Unload hive
reg unload HKU\$username
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.