2016-12-15 99 views
1

我有以下代碼:輸出網絡共享位置到控制檯用寫主機

$exclude = 'Remote Admin', 'Remote IPC', 'Default share' 
$shared = Get-WmiObject Win32_Share | 
     Where-Object { $exclude -notcontains $_.Description } | 
     Select-Object -Expand Path 

$FilesToSearch = Get-ChildItem $shared -Filter '*_HELP_instructions*' -Recurse -ErrorAction SilentlyContinue 

If($FilesToSearch -ne $null) 

{ 
Write-Host "System Infected!" 
exit 2015 
} 

else 

{ 
Write-Host "System Clear!" 
exit 0 
} 

本質上是通過一個本地服務器的任何文件上的所有共享掃描與_HELP_instructions的文件名。

如果找到與此名稱匹配的文件,則會輸出「System Infected!」到控制檯並用特定的代碼退出腳本。

我想要做的是實際詳細的共享位置感染和輸出到控制檯。輸出看起來像「網絡共享E:\數據\客戶端被感染!」。

請問這可以實現嗎?

非常感謝

+0

'$ FilesToSearch'如果不爲空應該包含文件。您可以輸出該變量,該變量應該是受感染文件路徑的數組。 – Nkosi

+0

嗨Nkosi - 所以代碼行將是: { 寫主機「網絡共享」$ FilesToSearch「被感染!」 退出2015 } 會這樣嗎? –

回答

1

$ FilesToSearch是一個包含您找到的文件的數組。 所以要達到你想要的:

If($FilesToSearch -ne $null) 
{ 
    foreach ($file in $FilesToSearch){ 
     Write-Host "System Infected! Directory:" $file.DirectoryName 
    } 
    exit 2015 
} 
+0

非常感謝,爲此工作。這兩個解決方案給了我後我的結果,雖然這個解決方案只是詳細的股份,而不是個別的文件,所以是一個稍微更好的解決方案,我的需求 –

+0

不客氣 – Boendal