Search code examples
windowspowershellpowershell-remoting

How to create a local windows user account using remote powershell?


tried creating users with powershel.This worked fine for local machine. But how to create a local user account in a remote machine using remote powershell?

The script localwindows.ps1 is

$comp = [adsi]'WinNT://machinename,computer';
$user = $comp.Create('User', 'account4');
$user.SetPassword('change,password.10');
$user.SetInfo();

I tried the same thing through C# :

            PSCredential credential = new PSCredential(userName, securePassword);
            WSManConnectionInfo connectionInfo = new WSManConnectionInfo(false, "machinename", 5985, "/wsman", shellUri, credential);
            using (Runspace runspace = RunspaceFactory.CreateRunspace(connectionInfo))
            {

                runspace.Open();
                 String file = "C:\\localwindows.ps1";
                 Pipeline pipeline = runspace.CreatePipeline();
                 pipeline.Commands.AddScript(System.IO.File.ReadAllText(file));                    
                 pipeline.Commands.Add("Out-String");

                 // execute the script 
                 Collection<PSObject> results = pipeline.Invoke();
              }  

This also works fine locally .But for remote computer its throwing exception "create :Access is denied ".


Solution

  • I was able to create a local user account in a remote computer using the following command :

    Invoke-Command -ComputerName machineName -filepath c:\script.ps1 -credential  $getcredential
    

    The script is

    $comp = [adsi]'WinNT://localhost,computer';
    $user = $comp.Create('User', 'account11');
    $user.SetPassword('change,password.10');
    $user.SetInfo();
    $user