2013-11-25 155 views
2

嘗試使用powershel創建用戶。對於本地計算機,此工作正常。但是,如何使用遠程PowerShell在遠程計算機上創建本地用戶帳戶?如何使用遠程PowerShell創建本地Windows用戶帳戶?

腳本localwindows.ps1是

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

我通過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(); 
       } 

這也適用於本地罰款。但對於遠程計算機及其引發異常「創建:訪問是否認「。

+0

你可以在這種情況下添加PowerShell腳本 – Chelseawillrecover

+0

我已經使用powershell腳本編輯了內容。 –

+0

http://gallery.technet.microsoft.com/scriptcenter/Add-new-local-administrator-3a962c5e – JohnLBevan

回答

2

我能夠在創建一個本地用戶帳戶使用以下命令遠程計算機:

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

劇本是

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

使用ADSI WinNT provider

$username = "foo" 
$password = "bar" 
$computer = "hostname" 

$prov = [adsi]"WinNT://$computer" 
$user = $prov.Create("User", $username) 
$user.SetPassword($password) 
$user.SetInfo() 
+0

我用上面的方法連接到localhost.But而試圖在遠程機器上創建它時拋出異常: '使用「0」參數調用「setinfo」的異常:「訪問被拒絕。 「 在行:1字符:12 + $ HD.setinfo <<<<() + CategoryInfo:NotSpecified:(:) [],MethodInvocationException + FullyQualifiedErrorId:CatchFromBaseAdapterMethodInvokeTI」 –

+0

確保您的帳戶被授權遠程訪問該主機,遠程管理已啓用('winrm qc'),並且遠程主機上的Windows防火牆允許訪問。 –

+0

如何傳遞在遠程主機中具有權限的帳戶的憑證? –

0

PowerShell腳本調用命令在遠程計算機上執行任何PowerShell腳本。你不只是說你如何使用PowerShell來創建用戶,但作爲一個例子,你寫:

Invoke-Command -ComputerName MyRemoteServer -filepath c:\Scripts\DaScript.ps1 

invoke-command -computername myserver {[ADSI]$server="WinNT://localhost";$HD=$server.Create("User","HD");$HD.SetPassword("H3lpD3>K");$HD.SetInfo()} 

您還可以通過遠程使用-FilePath參數,執行當地的PowerShell腳本

要啓用遠程命令,您必須在遠程計算機上啓用winrm。您可以通過運行

winrm quickconfig 

在遠程計算機上執行此操作。

+0

我嘗試了以下方式[ADSI] $ server =「WinNT:// localhost」 $ HelpDesk = $ server.Cr eate( 「用戶」, 「幫助臺」) $ HelpDesk.SetPassword( 「H3lpD3> K」) $ HelpDesk.SetInfo() –

+0

我試圖以下列方式: [ADSI] $服務器=「WINNT: // localhost」的 $服務檯= $ server.Create( 「用戶」, 「幫助臺」) $ HelpDesk.SetPassword( 「H3lpD3> K」) $ HelpDesk.SetInfo() 但同時給予以下我得到錯誤: [ADSI] $ server =「WinNT:// $ servername」 $ HD = $ server.Create(「User」,「HD」) $ HD.Se tPassword(「H3lpD3> K」) $ HD.SetInfo() –

+0

我收到錯誤:'異常調用「setinfo」與「0」參數:「訪問被拒絕。 「 在行:1個字符:12 + $ HD.setinfo <<<<() + CategoryInfo:NotSpecified:(:) [],MethodInvocationException + FullyQualifiedErrorId:CatchFromBaseAdapterMethodInvokeTI」 這裏servername是名稱遠程計算機連接到 –

0

如果你有PowerShell腳本在服務器上本地創建一個本地用戶帳戶,然後只需簡單地使用PSExec與管理帳戶在遠程機器上運行它

+0

我嘗試使用以下命令在遠程計算機上執行sript - C :\ localwindows.ps1 PSexec.exe \\%comp%-c -f -u域名\用戶名%ScriptPath% 但是我仍然收到錯誤 異常調用帶有「0」參數的「SetInfo」: 「Access is denied。 」 At C:\ localwindows.ps1:4 char:14 + $ user.SetInfo <<<<(); + CategoryInfo:NotSpecified:(:) [],MethodInvocationException + FullyQualifiedErrorId:CatchFromBaseAdapterMethodInvokeTI –

+0

好的我會在開始工作時看看這個。同時,請嘗試檢查遠程計算機上的Windows日誌,看看是否有任何記錄。同時確認使用的域帳戶是否是目標機器上的域管理員組和本地管理員組的成員 – Chelseawillrecover

+0

我使用的帳戶是域中的用戶(本地管理員角色)。我試圖用Computer \ Adminisrator在遠程機器上創建帳戶,但也拋出excepton:「訪問被拒絕。」 –

0

調用命令的工作,但你也可以ü se Enter-PSSession - 計算機在遠程機器上本地提交命令。 下面會提示用戶輸入用戶名和他們沒有密碼添加到本地管理員組:

$user = read-host 'What is the name of the local user you would like to add?' 
net user /add $user 
net localgroup Administrators /add $user 
0

我不知道,如果這個問題仍然是相關的,但我已經嘗試過這一點,並發現了什麼需要修復。當您創建目錄輸入對象時,請使用以下代碼

$objOu = New-Object System.DirectoryServices.DirectoryEntry("WinNT://$computer", $admin, $adminPass, "Secure") 

其餘部分是相同的。

相關問題