2017-05-09 77 views
1

我是新來的PowerShell sctipting,像全新的。我有一些使用Exchange PowerShell的經驗,但總是針對非常特定的項目,例如調整日曆權限等。沒什麼可靠的。
目前我正在致力於通過組策略推出PowerShell腳本,該策略將在每臺域PC上運行搜索。我一直在從同事那裏得到幫助,但他現在無法使用,有時候我很難跟着他。我是這個網站,它的用戶可能可以幫助我。我正在嘗試做的事(我相信我已經接近了)正在爲域中的每臺計算機提供一個驅動器列表。一旦我將該列表拖到變量中,然後對該變量搜索任何以.pst結尾的文件。一旦搜索完成,如果有搜索結果,則應該使用每個文件的FUllname「路徑」創建一個文件,並使用計算機名稱命名該文件。如果搜索沒有結果,文件將是空的,但文件名仍應在計算機後命名。我相信我已經得到了一切正確的結果,除了我不知道如何根據計算機名稱命名文件。感謝您的時間和幫助。
這是到目前爲止我的代碼:需要掃描所有域計算機的.pst文件

$drives=Get-WmiObject -query "SELECT * from win32_logicaldisk where 
DriveType = '3'" | select deviceid 
    foreach ($drive in $drives){ 
     $pstfound=Get-ChildItem $drive.deviceid *.pst -recurse | select 
     fullname 
     $pst+=$pstfound 
     } 
     IF ($pst -eq $null) { 
     $pst | Out-File \\"Servername"\Searchresults\Null 
     } Else { 
     $pst | Out-File \\"Servername"\Searchresults\HasItems 
     } 
+0

您需要用'$'替換文件全名中的字符':'以便擁有一個合適的文件的UNC路徑名。 –

回答

0

謝謝。我最初並沒有計劃使用UNC路徑,但無論如何都改變了它,我認爲這會讓後來更容易。我還想出了我的問題,即命名在運行電腦後生成的文件。我只需設置一個變量$ hostname = hostname,然後將這些文件設置爲\ $ hostname.csv

相關問題