2014-10-09 52 views
0

我想重命名域的計算機的1000年。問題是,我擁有的管理帳戶有權更改域名,但無權訪問本地計算機進行更改。在工作站上具有本地管理員權限的唯一帳戶是工作站的主要用戶。我已經在一個測試域中測試了它,它完美地工作,但是在生產中,由於缺乏權限,下面的代碼失敗了。Powershell重命名沒有已知本地管理員的計算機

有沒有一種方法來運行腳本並獲取每臺機器的主要用戶,然後將其放置到下面的-LocalCredential參數的變量中以便使用?

csv文件只有兩個逗號分隔的字段。舊計算機名稱和新計算機名稱。

$list = Import-csv C:\temp\named.csv -Header oldcomputer, newcomputer 
$domain = "domain.com" 
$user = "administrator" 

#Don't edit below this point 
$password = Read-Host -Prompt "Enter password for $user" -AsSecureString 
$username = "$domain\$user" 
$credential = New-Object System.Management.Automation.PSCredential($username, $password) 

foreach ($machine in $list) 
{ Rename-Computer -ComputerName $machine.oldcomputer -NewName $machine.newcomputer -DomainCredential -LocalCredential machinename\someuserhere $credential -force -restart } 
+0

「每臺機器的主要用戶」是什麼意思?通常在一個域中,「Domain Admins」組是每臺機器上本地管理員組的成員。您還可以使用組策略在計算機上配置/強制執行A​​dministrators組成員身份。 – 2014-10-09 22:04:57

回答

0
  • 關於從目標計算機獲得creds。我不知道一種可能的方式。我認爲這將需要黑客入侵。

  • 怎麼樣的解決方案類似以下內容:

    1. 含三列的數據庫; oldname(varchar),newname(varchar),renamed(boolean)
    2. 然後讓ps腳本以用戶登錄的方式運行,直到所有計算機重命名爲止
    3. 登錄腳本應該在用戶上下文中運行 - >表示腳本現在可以在管理員用戶權限下使用Rename-Computer。
    4. 有腳本弄清楚計算機的名稱,當用戶在做一個登錄
    5. 檢查派生的名稱對DB ......如果找到的名稱尚未更改,使用重命名,電腦cmdlet的
    6. 更新元組在數據庫中,由布爾做了什麼用戶設置爲1 /真
    7. 消息,並且需要重新啓動.....
    8. 完成任務

我希望這可以幫助....

相關問題