2016-12-13 20 views
0

從我的服務器到遠程計算機,一個班輪工作正常。我想把我的一個班輪,並將其轉換爲ForEach循環。我想循環訪問環境中的所有計算機。Powershell通過計算機列表和計數文件在網絡共享文件夾中循環

一個內膽:

Write-output (Get-ChildItem '\\mycomputer\C$\Program Files\OSC\LogGen\LOGS').Count 

的ForEach嘗試(不工作)通過計算機列表foreach循環,並在列表中的每個計算機返回計數結果。

$computerlist = gc "D:\computerlist.txt" 

ForEach ($host in $computerlist) { 
Write-Output (Get-ChildItem "\\$host\C$\Program Files\LOGS").Count 
} 
+1

*不工作*是一個絕對沒用的問題描述。它以什麼方式*不工作*?你得到錯誤的結果?你有錯誤嗎?如果是這樣,你得到的**確切**錯誤信息是什麼?你一個人知道什麼*不工作*的意思,如果你想在這裏有人幫助你,你需要分享這些信息。我們無法閱讀您的想法或從這裏看到您的屏幕。 –

回答

4

嘗試在看向PS驅動器,他們是真正的整潔,我現在到處使用它們。

New-PSDrive -Name U -PSProvider FileSystem -Root "\\$PC\C$" 

這將創建一個名爲U:,你可以就像一個網絡驅動器進行交互的新驅動器。主要區別在於此驅動器僅存在於腳本的範圍內。在循環中創建驅動器時,重要的是關閉驅動器以釋放下一次迭代的字母。

ForEach ($PC in $computerlist) { 
    New-PSDrive -Name U -PSProvider FileSystem -Root "\\$PC\C$" 
    Write-Output (Get-ChildItem "U:\Program Files\LOGS").Count 
    Remove-PSDrive U -force 
} 
+1

不得不將$ host更改爲$ var我得到一個錯誤,Host是一個受限制的變量。 – bdavisson

相關問題