Powershell 需要扫描所有域计算机以查找.pst文件

Powershell 需要扫描所有域计算机以查找.pst文件,powershell,group-policy,Powershell,Group Policy,我对powershell Sctipping很陌生,就像全新的一样。我有一些使用ExchangePowerShell的经验,但这通常适用于非常特定的项目,如调整日历权限等。没有什么比健壮更重要。 目前,我正在编写一个powershell脚本,通过组策略推出,该脚本将在每个域PC上运行搜索。我一直从一位同事那里获得帮助,但他现在不在,有时我很难跟踪他。我是这个网站和它的用户可能能够帮助我。我想做的(我相信我已经接近)是为域中的每台计算机提取一个驱动器列表。一旦我将该列表拉入一个变量,然后在该变量上

我对powershell Sctipping很陌生,就像全新的一样。我有一些使用ExchangePowerShell的经验,但这通常适用于非常特定的项目,如调整日历权限等。没有什么比健壮更重要。
目前,我正在编写一个powershell脚本,通过组策略推出,该脚本将在每个域PC上运行搜索。我一直从一位同事那里获得帮助,但他现在不在,有时我很难跟踪他。我是这个网站和它的用户可能能够帮助我。我想做的(我相信我已经接近)是为域中的每台计算机提取一个驱动器列表。一旦我将该列表拉入一个变量,然后在该变量上搜索任何以.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
        }

多谢各位。我最初并不打算使用UNC路径,但无论如何都改变了它,我认为这将使以后更容易通过。我还发现了我的问题,即命名在它运行的计算机上生成的文件。我只是设置了一个变量$hostname=hostname,然后将文件设置为\$hostname.csv

谢谢。我最初并不打算使用UNC路径,但无论如何都改变了它,我认为这将使以后更容易通过。我还发现了我的问题,即命名在它运行的计算机上生成的文件。我只需设置一个变量$hostname=hostname,然后将文件设置为\$hostname.csv

,您需要将文件全名中的字符
替换为
$
,以便为文件提供正确的UNC路径名。您需要将文件全名中的字符
替换为
$
以使文件具有正确的UNC路径名。