简单的Powershell脚本,用于查找文件和电子邮件(如果找到)

时间:2014-10-07 20:11:11

标签: powershell powershell-v2.0 powershell-v3.0

我正在尝试编写从Windows 2008 R2服务器运行的简单脚本。该脚本的目的是让它按计划运行。如果找到该文件,它会通过电子邮件向我发送路径。如果找不到该文件,则不执行任何操作。

如果我从我的工作站使用下面的脚本(Windows 7 64位SP1,运行Powershell 4.0),它可以正常工作。但是,如果我从我的服务器(相同版本的Powershell)运行相同的脚本,只需将i:更改为s:它就不会运行。如果我输入UNC路径\ san \ fileshare而不是驱动器号,它将运行但是,如果它找不到该文件,它仍然会通过电子邮件发送空白报告文件。我已经尝试了几个这个脚本的迭代,我得出了同样的结论。

请帮助不多......

$ChkFile = "i:\*.*"

$FileExists = Test-Path $ChkFile -Include "TestFile.TXT"

If ($FileExists -eq $True)
{

    $a = "TestFile.TXT"

    Get-ChildItem -Path i:\*.* -Filter $a -Recurse -ErrorAction SilentlyContinue | Out-File c:\utils\TestFile.TXT_I_Drive.txt

    $today = Get-Date -Format D

    Send-MailMessage -From "me <myemail@ExchangeServer.com>" -To "me <myemail@ExchangeServer.com>" -SmtpServer ExchangeServer.domain.com -Body "Please see attached report TestFile_I_Drive.txt"  -Subject "Hidden file found $today" -Attachments c:\utils\TestFile_I_Drive.txt

}
Else 
{
   Exit
}

1 个答案:

答案 0 :(得分:0)

你有没有理由不对文件本身做一个测试路径,而不是作为一个包含?尝试将代码更改为如下所示,让我知道你的工作方式:

$CheckFile = \\UNC\Testfile.txt;
If(Test-path $CheckFile){..