我正在尝试编写从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
}
答案 0 :(得分:0)
你有没有理由不对文件本身做一个测试路径,而不是作为一个包含?尝试将代码更改为如下所示,让我知道你的工作方式:
$CheckFile = \\UNC\Testfile.txt;
If(Test-path $CheckFile){..