Function 基本Powershell日志记录

Function 基本Powershell日志记录,function,powershell,logging,windows-scripting,Function,Powershell,Logging,Windows Scripting,我在Powershell中编写了一个自动化脚本,多次运行少量函数 我开始在Powershell周围转了转,但我还是做了很多愚蠢的事情。。。我不得不怀疑我是否忽略了显而易见的事实 每次函数运行时,它都依赖于传递给它的几个变量以及一些用户输入。。。没有什么棘手的,重新启动远程服务,同步时间服务等。。我想在运行过程中记录结果,但似乎我将向日志中添加更多的代码,而不是我正在使用的实际代码。这是正常的,还是我遗漏了什么 我已经研究了Try/Catch/Finally块,但它们看起来相当笨拙,而且我似乎用这

我在Powershell中编写了一个自动化脚本,多次运行少量函数

我开始在Powershell周围转了转,但我还是做了很多愚蠢的事情。。。我不得不怀疑我是否忽略了显而易见的事实

每次函数运行时,它都依赖于传递给它的几个变量以及一些用户输入。。。没有什么棘手的,重新启动远程服务,同步时间服务等。。我想在运行过程中记录结果,但似乎我将向日志中添加更多的代码,而不是我正在使用的实际代码。这是正常的,还是我遗漏了什么

我已经研究了Try/Catch/Finally块,但它们看起来相当笨拙,而且我似乎用这种方法将函数嵌套得相当深。。。下面是我正在使用的函数的简化示例:

    Function MyFunc($Param1, $Param2){
Do{
  $Var = Get-Something | Select Name, MachineName, Status 
 $NotherVar = Read-Host -Prompt "Do you want to Stop or Start or check the $Var (1 to Start, 2 to stop, 3 to check, 4 to continue)?" 
    If ($SetState -eq 1) 
     {
      Do Stuff
    }
    ElseIf ($Var -eq 2) 
       {
      Do Stuff
    }
    ElseIf ($Var -eq 3)
       {
      Do Stuff
    }
  }
    Until ($Var -eq 4)
Do other stuff
} 
是否可以在没有国会法案的情况下简单地添加内容$logpath$FunctionResult?

创建一个“run and log”函数,并使用“do stuff”作为脚本块参数调用该函数

例如:

function Invoke-RunScriptblockAndLogResult([scriptblock]$sb)
{
    $result = Invoke-Command -ScriptBlock $sb

    # log result
    Write-Host "RESULT: $result"
}

Invoke-RunScriptblockAndLogResult {2+2; 3*3}

$myScript = {
    4+4
    5*5
}

Invoke-RunScriptblockAndLogResult $myScript
输出:

RESULT: 4 9
RESULT: 8 25

当然,上面的写主机将是您的
添加内容
或其他任何东西…

哇。。。被否决。这有点苛刻。我发错论坛了吗?是我说的吗?口臭?我不明白…我想我想知道是否有类似-Tee,2>或类似的东西可以将函数的成功/失败记录到日志文件中…除了我下面的答案之外,Start Transcript也可以满足您的所有要求。我很遗憾我拥有-ne 15的声誉,无法给您应得的+1。。。当我到达那里时,我将最终返回+1。乍一看,这似乎正是博士所要求的。先生,你是天才。我感谢你的时间和努力。愿原力与你同在。现在我要做的就是弄清楚你做了什么。我有点明白,也许。。。脚本不是我的自然栖息地,但我正在匆忙学习。再次感谢你!耶。。。Rep-eq 15这是你承诺的+1。欢迎来到stack overflow@MarcEverlove。我一直在潜伏。。。我试着在我问之前搜索。。。当我找到某个接近的东西时,我会扭动它直到我流下血泪,然后我会再寻找一些。。。然后问。