1

こんにちは私はPowershellを使用して、ユーザープロファイルのログオンスクリプトパラメーターを設定しようとしています。これを行うためにWMICUSERACCOUNTを使用することを計画していましたが、それが不可能であることがわかりました。以下に示すように、メソッドはメソッドに存在しません。

    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の場合、図に示すパラメーターを設定するためのスクリプトとして実行できます。 このパラメータ

4

2 に答える 2

1

この設定は、グループポリシーで維持されます。参照:ユーザーがログオンしたときに自動的に開始するプログラムを指定する。グループポリシー設定は、最終的にレジストリ設定によって処理されます。WindowsおよびWindowsServerのグループポリシー設定リファレンスは、変更するレジストリ設定を見つけるのに役立つ場合がありますが、そこで見つけることができませんでした。多くの設定はHKCUであることに注意してください。つまり、ユーザーがログインしているときにのみ設定できます。これは問題になる可能性があります。このページ「Windowsプログラムの自動起動場所」は、プログラムを起動するように設定できるレジストリ内のすべての場所に関する優れたリファレンスです。

代わりに、 schtasksを使用してこれを行うことを個人的にお勧めします。cmdまたはPowerShellで作成する例を次に示します。

schtasks -create -tn "Run command prompt" -tr "C:\WINDOWS\system32\cmd.exe" -sc ONLOGON
于 2012-08-02T17:10:50.687 に答える
0

長い時間がかかりましたが、最終的に答えを得たのは、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  
于 2012-08-24T15:54:08.730 に答える