gpt4 book ai didi

c# - 查找终端服务用户的文档文件夹

转载 作者:太空宇宙 更新时间:2023-11-03 16:36:48 25 4
gpt4 key购买 nike

我正在尝试允许用户通过包含浏览器插件的 IIS aspx 页面将本地扫描仪与终端服务器一起使用。该插件可以扫描文件并将数据传递到将文件上传到服务器的 aspx 页面。

我正在使用 HttpContext.Current.User.Identity.Name 获取包含远程用户名称的字符串。如何在终端服务器上找到用户的文档文件夹?

最佳答案

进步不小。下面是使用 Powershell 查找已知用户名路径的方法:

$user = Get-WmiObject Win32_UserAccount | Where-Object { $_.Name -eq 'known_username' }
cd 'HKLM:\software\Microsoft\Windows NT\CurrentVersion\ProfileList'
$key = Get-Item $user.SID
$saveLocation = $key.GetValue("ProfileImagePath")

这是 C# 版本:

string loginName = HttpContext.Current.User.Identity.Name;
Regex r = new Regex(@"\w+[\\]");
string userName = r.Replace(loginName, "");
throw new System.ArgumentException("Debug: '" + HttpContext.Current.User.Identity.IsAuthenticated.ToString() +"'", "userName");
SelectQuery sQuery = new SelectQuery("Win32_UserAccount", "name='" + userName + "'");
ManagementObjectSearcher mSearcher = new ManagementObjectSearcher(sQuery);
string sid = "";
foreach (ManagementObject mObject in mSearcher.Get())
{
sid = mObject["SID"].ToString();
break; //mSearcher.Get() is not indexable. Behold the hackyness!
}
string saveLocation = Microsoft.Win32.Registry.GetValue(
"HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion\\ProfileList\\" + sid,
"ProfileImagePath", null).ToString();

C# 不是我的母语;可能有一些不那么直截了当的方法来实现这一点。但它确实有效。

关于c# - 查找终端服务用户的文档文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8853701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com