【问题标题】:Need to scan all domain computers for .pst files需要扫描所有域计算机以查找 .pst 文件
【发布时间】:2017-05-09 19:30:44
【问题描述】:

我是 powershell sctipting 的新手,比如 Brand new。我有一些使用 Exchange PowerShell 的经验,但那总是针对非常具体的项目,例如调整日历权限等。没有什么强大的。
目前,我正在开发一个 powershell 脚本,以通过组策略推出,该策略将在每台域 PC 上运行搜索。我一直在从一位同事那里得到帮助,但他现在不在,有时我很难跟上他。我是这个网站,它的用户也许可以帮助我。我正在尝试做的(并且我相信我已经接近)是为域中的每台计算机提取驱动器列表。一旦我将该列表拉到一个变量中,O 将其导入一个变量,然后在该变量上搜索任何以 .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 路径名。

标签: powershell group-policy


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-27
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 2017-02-05
    • 2015-11-28
    • 2018-05-25
    • 2021-11-26
    相关资源
    最近更新 更多