Der Computername wird in der Batchdatei nicht angezeigt

983
ghost3h

Ich habe ein PDQ-Installationsprogramm, das 2 DLL-Dateien registriert und die Ergebnisse in einer Netzwerkfreigabe protokolliert. Wenn ich den PDQ auf einem Computer ausführe, wird der Name des Computers zwar in Ordnung angezeigt. Wenn ich jedoch das Installationsprogramm auf mehreren Computern ausführte, wird nur der Vorname und nicht der Rest angezeigt.

Die Batchdatei sieht wie folgt aus:

echo% computername% >> "\\\ serverhare \ software \ Admin \ IT_Support_Utilities \ PDQ-Bereitstellung \ Protokolle \ agent_logs.log" C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ regasm.exe / codebase / tlb "Agent.dll" >> "\\\ servershare \ software \ Admin \ IT_Support_Utilities \ PDQ-Bereitstellung \ Logs \ agent_logs.log" C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ regasm.exe / codebase / tlb "MySql.Data.dll" >> "\\\ servershare \ software \ Admin \ IT_Support_Utilities \ PDQ-Bereitstellung \ Protokolle \ agent_logs. Log" 

Die Ausgabe ist unten für einen Lauf auf 2 Maschinen; WRCREC274ist der Name der ersten Maschine. Die horizontale Linie wird getrennt, wo die nächste Batchdatei beginnt

WRCREC274   Microsoft (R) .NET Framework-Assembly-Registrierungsprogramm 4.0.30319.1 Copyright (C) Microsoft Corporation 1998-2004. Alle Rechte vorbehalten.  Typen erfolgreich registriert Baugruppe wurde in 'C: \ WINDOWS \ system32 \ Agent.tlb' exportiert, und die Typbibliothek wurde erfolgreich registriert  Microsoft (R) .NET Framework-Assembly-Registrierungsprogramm 4.0.30319.1 Copyright (C) Microsoft Corporation 1998-2004. Alle Rechte vorbehalten.  Assembly wurde in 'C: \ WINDOWS \ system32 \ MySql.Data.tlb' exportiert, und die Typbibliothek wurde erfolgreich registriert ---------- 
Microsoft (R) .NET Framework-Assembly-Registrierungsprogramm 4.0.30319.1 Copyright (C) Microsoft Corporation 1998-2004. Alle Rechte vorbehalten. Typen erfolgreich registriert  Baugruppe wurde in 'C: \ WINDOWS \ system32 \ Agent.tlb' exportiert, und die Typbibliothek wurde erfolgreich registriert  Microsoft (R) .NET Framework-Assembly-Registrierungsprogramm 4.0.30319.1 Copyright (C) Microsoft Corporation 1998-2004. Alle Rechte vorbehalten.  Assembly wurde in 'C: \ WINDOWS \ system32 \ MySql.Data.tlb' exportiert, und die Typbibliothek wurde erfolgreich registriert ---------- 

Kann jemand raten, warum der %computername%nur auf dem ersten Computer erscheint, auf dem er läuft, und nicht auf den Rest?

0
Melden sich mehrere Computer in derselben Protokolldatei an? Vielleicht wird der Name protokolliert, aber zwischen den Protokollen eines anderen Computers? Werner Henze vor 11 Jahren 0
Diese Batchdatei wird mit PDQ an mehrere Computer übertragen, sodass sich jeder Computer in derselben Datei protokolliert. Ich hätte in separate Dateien protokollieren können, z. B. ein Protokoll pro Computer. Dies verhindert jedoch, dass eine Protokolldatei nach Fehlern durchsucht wird. ghost3h vor 11 Jahren 0
Was ist, wenn die Protokollierung von einem Computer aus die Datei sperrt, sodass ein anderer Computer seine Nachricht nicht protokollieren kann? Vielleicht passiert das hier. Werner Henze vor 11 Jahren 0
Wenn dies der Fall ist, würde es nur den% computername% auslassen und den Rest protokollieren. Ich stecke fest :( ghost3h vor 11 Jahren 0
Es ist nicht sehr tragfähig, aber möglich. Wenn die Umleitung der Ausgabe die Protokolldatei überhaupt nicht sperrt, kann es passieren, dass ein Logger das Protokoll eines anderen Loggers überschreibt. Sie können Ihr Protokoll auf "name =% computername%" erweitern, um zu sehen, ob nur die Variable leer ist oder ob das Echo verloren geht. Werner Henze vor 11 Jahren 0
Es ist fast unmöglich, die drei Zeilen, die Sie gepostet haben, zu erahnen. Da dies, wie Sie sagen, auf mehreren Computern bereitgestellt wird, muss es sich in einer Art Schleife befinden. Bitte zeigen Sie die gesamte Schleife. Magoo vor 11 Jahren 0
Danke für die Hilfe Jungs, ich habe es jetzt funktioniert. Ich muss einfach die Batchdatei die Informationen lokal auf jeder Maschine speichern, anstatt sie direkt auf dem Server zu protokollieren. Ich kann dann den Befehl TYPE verwenden, um die Informationen an meine Serverfreigabe anzufügen. ghost3h vor 11 Jahren 0

1 Antwort auf die Frage

0
ghost3h

Danke für die Hilfe Jungs, ich habe es jetzt funktioniert. Ich muss einfach die Batchdatei die Informationen lokal auf jeder Maschine speichern, anstatt sie direkt auf dem Server zu protokollieren. Ich kann dann den Befehl TYPE verwenden, um die Informationen an meine Serverfreigabe anzufügen.

C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe /codebase /tlb "Agent.dll" >> c:\agent_logs.log   Type c:\agent_logs.log >> "\\servershare\software\Admin\IT_Support_Utilities\PDQ Deployment\agent_logs.log"