创建用户并建立权限的代码

发布于 2024-09-25 17:12:28 字数 221 浏览 2 评论 0原文

我有一个 C# Windows 服务应用程序,它生成一个写入 C:\Program Files\Company\Product\log.txt 的日志文件。我正在使用 Visual Studio 2010 提供的安装程序,并且需要安装程序:
1. 创建名为ProductUser
的用户 2. 设置C:\Program Files\Company\Product\ 的权限以允许ProductUser 写入该目录。

I have a C# windows service application that generates a log file that writes to C:\Program Files\Company\Product\log.txt. I am using the installer provided by Visual Studio 2010 and need to have the installer:
1. Create a user named ProductUser
2. Set permission for C:\Program Files\Company\Product\ to allow ProductUser to write to the directory.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

人生戏 2024-10-02 17:12:28

不是最好的解决方案......但只是一个想法:运行命令怎么样
网络用户密码用户名/ADD
如果你能做到这一点,我可以找到我在服务器上使用的旧 vbs,以向用户授予文件夹权限。

好的,我用谷歌搜索了一下,发现了这个:

public void CreateUserAccount(string login , string password , string fullName, bool isAdmin)
{
    try
    {
        DirectoryEntry dirEntry = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer");
        DirectoryEntries entries = dirEntry.Children;
        DirectoryEntry newUser  = entries.Add (login, "user");
        newUser.Properties["FullName"].Add(fullName);
        newUser.Invoke("SetPassword", password);
        newUser.CommitChanges();

        // Remove the if condition along with the else to create user account in "user" group.
        DirectoryEntry grp;
        if (isAdmin)
        {
            grp = dirEntry.Children.Find("Administrators", "group");
            if (grp != null) {grp.Invoke("Add", new object[] {newUser.Path.ToString()});}
        }
        else
        {
            grp = dirEntry.Children.Find("Guests", "group");
            if (grp != null) {grp.Invoke("Add", new object[] {newUser.Path.ToString()});}
        }

    }
    catch (Exception ex)
    {
            MessageBox.Show(ex.ToString());
    }
}

这不是我的:这里是链接。
让我知道它是否适合您

Not the best solution... but only an idea: what about running the command
net user password username /ADD?
If you can do that, I can find an old vbs I used on a server to grant permissions to user on a folder.

OK, I googled a little bit and found this:

public void CreateUserAccount(string login , string password , string fullName, bool isAdmin)
{
    try
    {
        DirectoryEntry dirEntry = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer");
        DirectoryEntries entries = dirEntry.Children;
        DirectoryEntry newUser  = entries.Add (login, "user");
        newUser.Properties["FullName"].Add(fullName);
        newUser.Invoke("SetPassword", password);
        newUser.CommitChanges();

        // Remove the if condition along with the else to create user account in "user" group.
        DirectoryEntry grp;
        if (isAdmin)
        {
            grp = dirEntry.Children.Find("Administrators", "group");
            if (grp != null) {grp.Invoke("Add", new object[] {newUser.Path.ToString()});}
        }
        else
        {
            grp = dirEntry.Children.Find("Guests", "group");
            if (grp != null) {grp.Invoke("Add", new object[] {newUser.Path.ToString()});}
        }

    }
    catch (Exception ex)
    {
            MessageBox.Show(ex.ToString());
    }
}

It's not mine: here is the link.
Let me know if it works for you

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文