1

リモートデスクトップ接続を使用してサーバーにログインするアプリを作成していますが、VB.net経由でADユーザー名を取得して保存する必要があります。次のようなユーザー名を取得する方法をたくさん試しました。

Protected oNet = CreateObject("WScript.NetWork")
Protected user5 = oNet.UserName
Protected userName = oNet.ExpandEnvironmentStrings("%UserName%")

Protected userName1 = Environment.UserName

Protected objSysInfo = CreateObject("ADSystemInfo")
Protected objUser = GetObject("LDAP://" & objSysInfo.UserName)

Protected userName2 As String = objUser.CN

さらに、他のいくつかのメソッドがありますが、返されるのは「Server-Name $」だけです。IIS で何かが足りないのでしょうか、それともスティックの端が完全に間違っているのでしょうか?

どんな助けでも大歓迎です!

4

1 に答える 1

1
  • CreateObject("WScript.Network").UserName

    これにより、スクリプト/アプリケーションが実行されているコンテキストのユーザーのユーザー名が返されます。

  • CreateObject("WScript.Network").ExpandEnvironmentStrings("%UserName%")

    オブジェクトにはメソッドWshNetworkがないため、これは失敗するはずです。代わりにオブジェクトExpandEnvironmentStringsが必要です:WshShell

    CreateObject("WScript.Shell").ExpandEnvironmentStrings("%USERNAME%")
    
  • Environment.UserName

    で実行されているコンテキストのユーザーのユーザー名を返すはずです。オブジェクトを介してのみコレクションにアクセスできるため、 では失敗するはずです。EnvironmentWshShell

    CreateObject("WScript.Shell").Environment("PROCESS")("USERNAME")
    
  • GetObject("LDAP://" & CreateObject("ADSystemInfo").UserName).CN

    ユーザー (アカウント) 名は、sAMAccountName属性ではなく、属性に格納されcnます。

于 2013-07-29T11:14:42.443 に答える