特定のユーザーの開始プログラムを変更しようとしています。Windows Server 2003 で正常に動作するコードがいくつかあります。
Set objUser = GetObject("WinNT://localhost/sysadmin")
objUser.TerminalServicesInitialProgram = "C:\myapp.exe"
objUser.TerminalServicesWorkDirectory = "C:\"
objUser.SetInfo
ただし、2000 サーバーで実行すると、最初の行で失敗し、次のエラーが表示されます。
エラー: ネットワーク パスが見つかりませんでした。
コード: 80070035
ソース: (null)
同じことを達成する別の方法を見つけました:
Set objNetwork = CreateObject("Wscript.Network")
strComputer = objNetwork.ComputerName
Set colUsers = GetObject("WinNT://" & strComputer)
colUsers.Filter = Array("user")
For Each objUser In colUsers
If (InStr(objUser.Name, "sysadmin")) Then
objUser.TerminalServicesInitialProgram = "C:\myapp.exe"
objUser.TerminalServicesWorkDirectory = "C:\"
End If
Next
繰り返しますが、これは 2003 年には機能しますが、2000 年にはコードの一部で失敗しIf
、次のエラーが発生します。
エラー: オブジェクトはこのプロパティまたはメソッドをサポートしていません: 'objUser.TerminalServicesInitialProgram'
コード: 800A01B6
ソース: Microsoft VBScript ランタイム エラー
2000 と 2003 の両方でAdministrative Tools->Computer Management->System Tools->Local Users and Groups->Users
、 に移動してユーザーのプロパティを選択し、Environment
タブに移動して、 の下のプログラム ファイル名を変更できますStarting program
。2003 年にそのプロパティにアクセスできるのであれば、2000 年にそのプロパティにアクセスする方法が必要だと思います。そこでプログラムを開始しましたが、うまくいきませんでした。
編集:私は、Nilpo からの回答を組み込んで、これに新しいテスト ユーザーを追加し、次の行のようなものでユーザー オブジェクトを作成する部分を過ぎました。
Set objUser = GetObject("LDAP://CN=joe,CN=Users,DC=lab,DC=server,DC=net")
上記と同じエラーが表示されますObject doesn't support this property or method: 'objUser.TerminalServicesInitialProgram'
。これは、これを行うための 4 つの代替方法が失敗したことを意味します。誰かがこれについて他のアイデアを持っていますか?