2016-10-11 18 views
0

私はこのスクリプトを持っている:私はOut-Fileを特別な行にしたいのですが、行えないようですか?

function Get-LastBootUpTime {    
    param (
     $ComputerName 
    ) 
    $OperatingSystem = Get-WmiObject Win32_OperatingSystem -ComputerName $ComputerName    
    [Management.ManagementDateTimeConverter]::ToDateTime($OperatingSystem.LastBootUpTime)    
} 

$Days = -1 
$ShutdownDate = (Get-Date).adddays($days) 

$ComputerList = Get-ADComputer -SearchBase 'OU=X,OU=X,DC=X,DC=X' -Filter '*' | 
       Select -EXP Name 

$ComputerList | foreach { 
    $Bootup = Get-LastBootUpTime -ComputerName $_ 

    Write-Host "$_ last booted: $Bootup" 

    if ($ShutdownDate -gt $Bootup) { 
     Write-Host "Rebooting Computer: $_" -ForegroundColor Red 
     Restart-Computer $_ -Force 
    } else { 
     Write-Host "No need to reboot: $_" -ForegroundColor Green 
    } 
} 

それはオンライン1日以上あるすべてのPCをシャットダウンします。

正常に動作しますが、シャットダウンしたPCを示す.txtとしてOut-Fileが必要です。そのため、「PCxをシャットダウンする必要がある」というメッセージか、PCxの稼働時間のどちらかです。私はOut-Fileでそれをやろうとしましたが、私が望む情報は決して読みません。何か案は?

"$_ last booted: $Bootup" | tee -Append log.txt

は、それがファイルにテキストを追加して画面に出力します:

+1

Powershellのバージョンは何ですか?「...私が欲しい情報を決して読み取らない...」とはどういう意味ですか? – rrirower

+0

あなたのコードのどこにでも 'Out-File'が表示されません。動作していないコードを表示して、結果が期待したものとどのように異なるかを説明してください。 –

+0

@rrirowerそれは.txtファイルが常に空で、私がpowershellを使用していることを意味します。 – Gunter

答えて

0

あなたはTee-Object -commandを使用することができます。

+0

ファイルはどこに保存されていますか?あなたの行を正確に書くと何も起こりません。私がteeを書くとき--Append C:\ log.txtそれはどちらも保存しません。 – Gunter

+0

今すぐお試しください、ありがとうございます – Gunter

関連する問題