Wie ändere ich die Ordnerberechtigung für den aktuellen Benutzer mithilfe von Administratoranmeldeinformationen?

Ok, also habe ich eine Weile gesucht und der Titel erklärt ziemlich genau, was ich tun möchte. Es ist auch kein Problem, die Administratoranmeldeinformationen im Code fest zu codieren.

Anfangs habe ich in c # einen Code geschrieben, der das Problem FAST löste:

private void button2_Click(object sender, EventArgs e)
    {

        DirectoryInfo myDirectoryInfo = new DirectoryInfo(textBox1.Text);

        DirectorySecurity myDirectorySecurity = myDirectoryInfo.GetAccessControl();
        string User = System.Environment.UserDomainName + "\\" + comboBox1.SelectedItem.ToString();


        myDirectorySecurity.AddAccessRule(new FileSystemAccessRule(User, FileSystemRights.FullControl, InheritanceFlags.ContainerInherit, PropagationFlags.None, AccessControlType.Allow));

        //myDirectorySecurity.AddAccessRule(new FileSystemAccessRule(User, FileSystemRights.Write, InheritanceFlags.ContainerInherit, PropagationFlags.None, AccessControlType.Allow));

        myDirectoryInfo.SetAccessControl(myDirectorySecurity);
        MessageBox.Show("Permissions Altered Successfully" + User);

    }

Dies funktioniert einwandfrei, wenn ich einen Ordner verwende, für den ich bereits eine Berechtigung habe. Ich benötige jedoch eine Methode, mit der ich mithilfe von Administratoranmeldeinformationen einem Ordner Berechtigungen erteilen kann, die ein normaler Benutzer nicht besitzt.

Später habe ich versucht, ein paar Sachen in VBScript zu schreiben:

    strHomeFolder = "C:\test"
strUser = " DOMAIN\user"

Set WshShell = CreateObject("WScript.Shell")

WshShell.Run "%COMSPEC% /c Echo Y| cacls  "& strHomeFolder & " /e /c /g "& strUser &":F", 2, True

Aber ich konnte keine Möglichkeit finden, die Administratoranmeldeinformationen weiterzugeben. Als letztes habe ich einen anderen Code geschrieben, um dies zu erreichen:

private void button1_Click(object sender, EventArgs e)
    {
        try
        {
            //string passwordPre = "PASSWORD";
            //char[] passwordChars = passwordPre.ToCharArray();
            //SecureString password = new SecureString();
            //foreach (char c in passwordChars)
            //{
            //    password.AppendChar(c);
            //}


            ProcessStartInfo p = new ProcessStartInfo(@"D:\\test.vbs");
            //p.UseShellExecute = false;
            //p.UserName = "username";
            //p.Domain = "DOMAIN";

            //p.Password = password;
            Process.Start(p);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

Dieses Mal habe ich nur versucht, Administratoranmeldeinformationen mithilfe eines Prozesses zu übergeben, es wurde jedoch die folgende Meldung generiert: Die angegebene ausführbare Datei ist keine gültige Anwendung für diese Betriebssystemplattform.

Gibt es eine Methode, mit der ich Anmeldeinformationen weitergeben kann? (Kann in c # oder vbscript sein).

Danke im Voraus.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage