2014-02-24 106 views
2

我非常(完全閱讀)PowerShell的新手,我正在研究一個項目,以清點我們網絡上某些計算機上安裝的軟件。我挖出了一個腳本來處理軟件庫存部分,但它依靠帶有計算機名稱的文本文件進行掃描。我正在尋找一種方法來查詢AD爲特定OU的計算機名稱。理想情況下,腳本會提示用戶輸入要導出到的OU和文本文件的路徑。然後,它會搜索AD進行匹配,如果找到,則導出到指定的路徑。因此,例如,要導出OU =工作站,OU =紐約,DC = Fabrikam,DC = com中的所有計算機,用戶應該收到提示並輸入「New York」,並且所有計算機名稱都將導出到指定路徑。 任何幫助,將不勝感激Powershell腳本查詢計算機名稱中的指定OU並導出

+2

你有什麼試過? Stack Overflow的目的不是讓人們發佈請求爲他們完成的事情,而是在遇到特定問題時獲得幫助。 – alroc

+0

詢問代碼的問題必須證明對所解決問題的最小理解。包括嘗試解決方案,爲什麼他們沒有工作,以及預期的結果。另請參閱:[堆棧溢出問題清單](http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist) – JPBlanc

+0

對不起。我正在搜索並找到幾個項目,這些項目位於Stack Overflow的不同問題所需的附近。至於我所嘗試的。我正在使用以下內容,但它只是搜索特定的OU,並未提供用戶輸入。 Get-ADComputer -LDAPFilter「(name = * laptop *)」-SearchBase「OU =工作站,OU =紐約,DC = Fabrikam,DC = com」 – YEMyslf

回答

2

要做到這一點簡單地說,使用Active Directory模塊在PowerShell中

你可以用類似下面的腳本檢索計算機名稱:。

$City = Read-Host 'City' 
$ou = "OU=Workstations,OU=$City,DC=Fabrikam,DC=com" 

$Computers = Get-ADComputer -Filter '*' -SearchBase $ou 

$Computers | Foreach { $_.DNSHostName } | Out-File -Filepath "output.txt" 
+0

感謝您的信息。我會試一試並回報。 – YEMyslf

+0

感謝您的回覆。這對我有用。只是一個note..when我所列出的代碼運行時,我沒有提示輸入一個位置來保存輸出,並沒有找到輸出文件。如果我輸入完整路徑,它確實可以工作。我瞭解Out-File cmdlet,但是-Filepath部分應該做什麼? – YEMyslf

+0

太棒了! Read-Host會提示是否在腳本(.ps1)文件中運行,但手動設置OU也可以。 Out-File中的'-Filepath'是要輸出文本的路徑和文件名。即「output.txt」將名稱放入當前目錄內名爲output.txt的文件中。你也可以這樣說:「C:\ folder \ output.txt」,如果你想讓文件去別的地方。 – HAL9256

1

這會更快一些,減少內存缺點uming。

相關問題