Powershell 如何确保远程计算机重新启动并发出命令?

Powershell 如何确保远程计算机重新启动并发出命令?,powershell,object,methods,output,Powershell,Object,Methods,Output,我有一个PS脚本,它使用调用命令和重新启动计算机。我想有一个结果,并保存到文件。我认为这些cmdlet是类似于Get Childitem的对象,在可能的情况下选择.Name等成员并保存。那么它们是什么呢?a方法?如果是,那么从哪些对象?最后,我将如何知道主机(例如,192.168.1.1正在重新启动,并且通过调用命令发送命令 foreach ($line in $FTPServer) { Start-Transcript -Path $results

我有一个PS脚本,它使用
调用命令
重新启动计算机
。我想有一个结果,并保存到文件。我认为这些cmdlet是类似于
Get Childitem
的对象,在可能的情况下选择
.Name
等成员并保存。那么它们是什么呢?a方法?如果是,那么从哪些对象?最后,我将如何知道主机(例如,
192.168.1.1
正在重新启动,并且通过
调用命令发送命令

foreach ($line in $FTPServer)
    {
        Start-Transcript -Path $results           
        Write-Host -Object "ftp url: $line"
        If (Test-Connection $line -Count 1)
        {
            Set-FTPConnection -Credentials $FTPCredential -Server $line -Session MySession -UsePassive -ErrorAction SilentlyContinue
            $Session = Get-FTPConnection -Session MySession
            if($session.UsePassive -eq "True"){$connect="OK"}
            else{$connect="!!!-FAIL-!!!"}

            foreach ($item in (Get-ChildItem .\Upload))
                {
                    Write-Host -Object "Uploading $item..."
                    $Send= Add-FTPItem -Session $Session -Path $FTPPlace -LocalPath .\Upload\$item -Overwrite -ErrorAction SilentlyContinue
                    $send >> .\RawData\sent.txt
                    if($Send.Name -eq $item.Name){$Rec="OK"}
                    else{$Rec="!!!-FAIL-!!!"}
                    $failTable += @{"FTPServer"=$line;"File"=$item;"Connected"=$connect;"Uploaded"=$Rec}
                    $FailTable.foreach{[PSCustomObject]$_} | Select-Object "FTPServer", "File","Connected", "Uploaded" | Out-file .\stats.txt

                }
            Enable-PSRemoting -Force
            Set-Item wsman:\localhost\client\trustedhosts -Value * -Force
            Restart-Service WinRm
            Test-WSMan $line
            Invoke-Command -ComputerName $line -scriptblock {cmd.exe /c "ewfmgr d: -commit"} -credential $FTPCredential

        Start-Transcript -Path $restarts
        Restart-Computer -ComputerName $line -Force -ThrottleLimit 50 -Credential $FTPCredential|Out-File restart.txt -Width 100
        Stop-Transcript

        } Else {"$line">> .\DownServers.txt}
        Stop-Transcript
    }
我想用
重新启动计算机
调用命令
做同样的事情,就像我用
获取FTPConnection
添加FTPItem

现在我的
\stats.txt
看起来是这样的

FTPServer   File                    Connected Uploaded
---------   ----                    --------- --------
192.168.1.1 ConfigurationKrKers.xml OK        OK      
192.168.1.1 test.txt                OK        OK    
我希望有这样的内容:

FTPServer   File                    Connected Uploaded  RunCMD Restarted
---------   ----                    --------- --------  ------ ---------
192.168.1.1 ConfigurationKrKers.xml OK        OK        OK     OK 
192.168.1.1 test.txt                OK        OK        OK     OK

请显示您的代码(准确地说是a)和所需输出的示例。当我们得到的只是这样一个模糊的描述时,我们无法帮助您。听起来您可以从附加的代码和所需的输出中获益。您可以在远程脚本中将数据放入Windows日志,使用后从远程计算机获取事件日志。当然,您可以延迟读取远程日志。写以登录远程脚本请显示您的代码(准确地说是a)和所需输出的示例。当我们得到的只是这样一个模糊的描述时,我们无法帮助您。听起来您可以从附加的代码和所需的输出中获益。您可以在远程脚本中将数据放入Windows日志,使用后从远程计算机获取事件日志。当然,您可以延迟读取远程日志。写入以登录远程脚本