Powershell输出日志文件

时间:2018-10-04 13:22:44

标签: powershell powershell-v2.0

您好,我是新脚本编写人员,我的任务是创建一个脚本,该脚本将从特定文件夹中删除文件,该文件夹将通过SCCM部署到许多计算机上。

问题是我要输出说明以下内容的日志文件:

"<ComputerName> File Terminated"
"<ComputerName> File Not terminated"

这是我到目前为止所拥有的:

$users = "C:\Users"
$logFile = "C:\TTS\Logs\GoogleTerm.log"
$source = "\AppData\Roaming\Google"
$exclude = "Default"

$input = get-ChildItem -Path $users  

foreach ($folder in $input) {
    if ($exclude -notcontains $folder.Name) {
        Remove-Item -Path ($Users + "\" + $folder.Name + $source) -recurse -force 
    } 
}

echo "Google Terminated on:"$env:computername >> $logfile

2 个答案:

答案 0 :(得分:0)

在您的if中添加了else来处理两个结果,然后使用Add-Content而不是echo

foreach ($folder in $input) {
    if ($exclude -notcontains $folder.Name) {
        Remove-Item -Path ($Users + "\" + $folder.Name + $source) -recurse -force 
        Add-Content $logfile "$env:computername File Terminated"
    } 
    else {
        Add-Content $logfile "$env:computername File Not Terminated"
    }
}

Add-Content $logfile "Google Terminated on: $env:computername"

答案 1 :(得分:0)

这是我成功的解决方案,谢谢大家的帮助!

$users =  "C:\Users"

$logFile = "C:\TTS\Logs\GoogleTerm.log"


$exclude = "Default"



$input = get-ChildItem -Path $users 



foreach ($folder in $input) {
if ($exclude -notcontains $folder.Name) {
    if (Test-Path ($Users + "\" + $folder.Name + $source)){
    Remove-Item -Path ($Users + "\" + $folder.Name + $source) -recurse -force

    Add-Content $logFile "Google Terminated on:        $env:computername      UserName:$folder  "
   }
   else{
    Add-Content $logFile "Google Already Terminated on:$env:computername      UserName:$folder  "
   }
}
   else{
        Add-Content $logFile "Not Terminated on:           $env:computername      Username:$folder"
   }
}