joe2017
Goto Top

Powershell Script - Ordner nicht bekannt

Guten Morgen zusammen,

ich habe ein kleines Problem. Ich möchte im Logon Script (PS) Daten in die Variable $env:TEMP kopieren.
Jedoch existiert die Variable während der Anmeldung noch nicht. Diese zeigt auf das Verzeichnis $env:USERPROFILE\AppData\Local\Temp\

Das Verzeichnis mit der NUMMER wird zwar angelegt, aber die Variable zeigt noch nicht in das Verzeichnis (Bsp. 932)
Da es sich hierbei um einen Terminal Server handelt, hat der User jedes mal eine andere Nummer.

Habt Ihr eine Idee wie ich in ein Verzeichnis schreiben kann was mir aktuell nicht bekannt ist?
Ich weiß jedoch, dass es sich um einen Ordner mit einer Nummer handelt.

Ich muss quasi in das Verzeichnis $env:USERPROFILE\AppData\Local\Temp\$Nummer schreiben.
Gibt es hierfür eine einfache Möglichkeit die Nummer auszulesen?

Vielen Dank

Content-ID: 1687468530

Url: https://administrator.de/forum/powershell-script-ordner-nicht-bekannt-1687468530.html

Ausgedruckt am: 22.12.2024 um 11:12 Uhr

NordicMike
NordicMike 04.01.2022 um 09:08:27 Uhr
Goto Top
Mit den oben genannten Informationen eigentlich gar nicht. Da musst du etwas tiefer graben, also beschreiben um was es sich handelt, evtl gibt es dafür schon Workarounds. Eine könnte sein die Variable später zu setzen - nicht während des Logins, sondern wenn die Information in der Variable benötigt wird, z.B. beim Starten der gewünschten App. Eine andere könnte sein den Ordner einfach zu ignorieren und einen eigenen Ordner zu verwenden. Es kommt immer darauf an, was du erreichen willst. Die Ordner, die temporär von irgendwelchen Apps oder Diensten automatisch angelegt und wieder gelöscht werden, muss man eigentlich "nie" anfassen.
joe2017
joe2017 04.01.2022 aktualisiert um 09:15:46 Uhr
Goto Top
Der Hintergrund spielt eigentlich erstmal keine Rolle.

Am einfachsten wäre wenn ich den Ordner bestehend aus Zahlen verwenden kann. Das würde mir schon ausreichen.
Oder einfach das erste Ergebnis eines get-childitem in die Variable schreiben.
get-childitem -path $env:USERPROFILE\AppData\Local\Temp\ -Directory | select-object name | sort -desc | ft -hidetableheaders
NordicMike
NordicMike 04.01.2022 um 09:21:01 Uhr
Goto Top
das erste Ergebnis
Wenn du da nicht durcheinander kommst, wenn sich zwei User fast gleichzeitig anmelden.
joe2017
joe2017 04.01.2022 aktualisiert um 09:37:58 Uhr
Goto Top
Das Verzeichnis ($env:USERPROFILE\AppData\Local\Temp) liegt immer im eigenen User!

Ich benötige einfach eine Methode um das Verzeichnis zu verwenden welches mit einer Zahl beginnt.
Hier existiert immer nur ein Verzeichnis mit einer Zahl (1, 23, 104, 506, 768, oder andere).
149569
149569 04.01.2022 aktualisiert um 10:15:53 Uhr
Goto Top
Zitat von @joe2017:

Das Verzeichnis ($env:USERPROFILE\AppData\Local\Temp) liegt immer im eigenen User!

Ich benötige einfach eine Methode um das Verzeichnis zu verwenden welches mit einer Zahl beginnt.
Hier existiert immer nur ein Verzeichnis mit einer Zahl (1, 23, 104, 506, 768, oder andere).

Wenn's weiter nix ist

$mydir = ls "$env:USERPROFILE\AppData\Local\Temp" -Dir | ?{$_.Name -match '^\d+$'} | select -F 1  
$mydir.Fullname

Powershell Leitfaden für Anfänger

Jedoch existiert die Variable während der Anmeldung noch nicht.
Hier tut sie das bei Logon-Skripts ... Wäre nämlich sehr seltsame wenn nicht denn das Environment wird noch vor dem PS Skript geladen.