2012-10-03 41 views
4

我需要一點幫助。我幾乎沒有PowerShell的經驗,但我正在使用我身邊的Pocket Guide和我的GoogleFu。如何使用PowerShell移動AD中的用戶?

目前,我的計劃是提示輸入用戶名並存儲它,使用Get-ADUser和存儲的用戶名來獲取和存儲DistinguishedName,使用Move-ADObject將用戶從DistinguishedName移動到目標路徑。

我遇到的問題是存儲和調用這些東西。我有這個,這給了我一個用戶的信息。我如何才能隔離專有名稱並存儲它?

$name = read-host "Enter user name" 
Get-ADUser $name 

存儲DN後,Move-ADObject可以使用存儲的值嗎?我已經嘗試個人存儲值,如:

Move-ADobject 'CN=$name,OU=department,OU=company,DC=Domain,DC=net' -TargetPath 'OU=NonActive,OU=company,DC=Domain,DC=net' 

但這返回,因爲它不使用儲值「找不到目錄對象」。在這個

Get-ADUser $name| Move-ADObject -TargetPath 'OU=nonactive,OU=compny,DC=domain,Dc=net'

回答

11

試試這個作爲文字字符串。使用雙引號處理變量:

例如: write-host '$name'會給出輸出$name,但write-host "$name"會返回變量中的值。

因此Move-ADobject "CN=$name,OU=department,OU=company,DC=Domain,DC=net" -TargetPath 'OU=NonActive,OU=company,DC=Domain,DC=net'應該按預期工作。另一方面,你將通過使用管道學習更多有趣的東西。

+0

真棒!它的工作原理,你能解釋爲什麼嗎?什麼是|爲? – elock37

+3

您需要閱讀有關PowerShell管道:http://technet.microsoft.com/en-us/library/ee176927.aspx –

4

只是一個預留 -

Powershell的無法識別變量,如$name當他們用單引號作爲外殼對待,值:

0

僅限於您的個人興趣:

CB。,做管道傳遞一個對象。 你,而不是使用一個字符串,應使用對象使用以下命令:

Move-ADObject 
+1

這不提供問題的答案。一旦你有足夠的[聲譽](https://stackoverflow.com/help/whats-reputation),你將可以[對任何帖子發表評論](https://stackoverflow.com/help/privileges/comment);相反,[提供不需要提問者澄清的答案](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [來自評論](/ review/low-quality-posts/19046992) – LordWilmore

+0

對不起,我認爲這可能對用戶理解爲什麼命令不起作用很有用。無論如何謝謝澄清 –

相關問題