2017-07-25 2 views
0

Ich benutze das folgende Skript, um eine Liste aller meiner Computer von meinem wsus-Server zu ziehen. Es stellt dann dann in eine ordentliche Liste und das funktioniert gut.Konnte Daten in Textdatei nicht ausgeben

Wenn ich jedoch versuche, die Daten in eine Textdatei auszugeben, erstellt sie die Textdatei, schreibt aber keine Daten. Was fehlt mir im Output-Bereich? Vollständiges Skript unten.

$wsus = 'halvedge2' 
[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration") | Out-Null 
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer() 
$wsus.GetComputerTargets() | Select FullDomainName, LastReportedStatusTime, LastSyncTime 

out-file -filepath "\\halvedge2\c$\PS1\WSUS\Last installed Update\updates.txt" 

Außerdem würde Ich mag eine If-Anweisung hinzufügen, um es an der LastSyncTime und für jede LastSyncTime über 30 Tage sieht es ihnen Computer-Ziele nur zurückgibt. Wie kann ich das erreichen?

Antwort

0

Sie haben nicht out-Datei separat:

Wenn die folgenden Ausbeuten Wert, dann Statt dessen:

$wsus.GetComputerTargets() | Select FullDomainName, LastReportedStatusTime, LastSyncTime 

tun:

$wsus.GetComputerTargets() | Select FullDomainName, LastReportedStatusTime, LastSyncTime | Out-File "D:\updates.txt" -Append -Force 

Hinweis: Erster Versuch lokal speichern. Wenn es funktioniert, versuchen Sie es remote auf dem UNC. Wenn der Remote-Vorgang fehlschlägt, erteilen Sie dem betreffenden Benutzer die Berechtigung zum Speichern.

+0

Danke das funktioniert viel besser –

+0

@DeanY: Die Annahme der Antwort wäre spürbar –

Verwandte Themen