killtec
Goto Top

Austauschen einer Datei per Netzwerk

Hallo Zusammen,
ich habe folgendes Problem:
Ich muss eine Zertifikatsdatei im Benutzerprofilpfad austauschen. Soweit klingt das nicht spannend. Das Problem an der Nummer ist, dass sich Ordnernamen ändern.
Es handelt sich hier um OpenVPN Verbindungsprofile. Ein Beispielpfad ist:
C:\Users\username\AppData\Roaming\Endian\ConnectAppv6\profiles\Firma.profile

Wobei sich hier der Bereich "Endian" und "ConnectAppv6" schon mal ädern können. Sowohl die genauere Bezeichnung bei Firma.profile.
Dieser Könnte auch Firma Standort.profile heißen.
Was bei allen Profilen aber Identisch ist, ist der Firmenname.

Kann man das ohne großen Aufwand erledigen? Ich muss die Datei ja nur einmal austauschen, danach braucht das auf dem Client nicht mehr laufen.

Ich dachte ursprünglich erst an eine GPO, aber da muss ja der Pfad mit angegeben werden.

Gegeben ist also ein Windows AD - Netzwerk

Gruß

Content-ID: 7939444351

Url: https://administrator.de/forum/austauschen-einer-datei-per-netzwerk-7939444351.html

Ausgedruckt am: 24.12.2024 um 18:12 Uhr

SlainteMhath
Lösung SlainteMhath 24.07.2023 um 15:56:51 Uhr
Goto Top
Moin,

per Powershell... quick'n'dirty
gci -path  ${ENV:Appdata} -recurse *.profile | %{
  copy-item -Path "\\server\pfad\profile" -destination $_  
}
Und ohne Gewähr ;)

lg,
Slainte
7907292512
Lösung 7907292512 24.07.2023, aktualisiert am 25.07.2023 um 08:31:16 Uhr
Goto Top
Moin.
Was bei allen Profilen aber Identisch ist, ist der Firmenname.
$firma = "FirmaX"  
$newprofile = '\\Server\share\firma.template.profile'  
Get-ChildItem $env:AppData -File -Filter "*$firma*.profile" -Recurse -EA SilentlyContinue | %{Copy-item $newprofile -Destination $_.Fullname -Force}  
Gruß Siddius
killtec
killtec 25.07.2023 um 08:21:56 Uhr
Goto Top
Hi,
so das hat schon mal geklappt. Wenn jetzt noch meine Geplante Aufgabe laufen würde wäre das super... face-sad
Sehe das Powershell Fenster kurz, aber es tauscht die Datei nicht aus. Scriptaufruf per Hand klappt...
7907292512
7907292512 25.07.2023 aktualisiert um 08:32:32 Uhr
Goto Top
Das Task Principal muss natürlich Zugriffs-Rechte auf das Netzlaufwerk haben, denn alles läuft in diesem Kontext. Auch das AppData-Verzeichnis ist das Task-Principals.

Sehe das Powershell Fenster kurz,
Zum Debuggen ist wie immer Start-Transcript dein Freund und schon bist du schlauer...

Gruß
killtec
killtec 25.07.2023 um 08:32:36 Uhr
Goto Top
Zitat von @7907292512:

Das Task Principal muss natürlich Zugriffs-Rechte auf das Netzlaufwerk haben, denn alles läuft in diesem Kontext. Auch das AppData-Verzeichnis ist das Task-Principals.
Da ich das hier direkt aus dem Sysvol raus ziehe sollten die Rechte vorhanden sein, gehe ich doch stark davon aus.

Zum Debuggen ist wie immer Start-Transcript dein Freund und schon bist du schlauer...
den baue ich noch mal ein ins Script, das ist eine gute Idee face-smile

Gruß
7907292512
7907292512 25.07.2023 aktualisiert um 08:37:55 Uhr
Goto Top
Da ich das hier direkt aus dem Sysvol raus ziehe sollten die Rechte vorhanden sein, gehe ich doch stark davon aus.
Nicht zwingend, wenn das falsche Principal angegeben wurde bspw. nicht.
Für das obige Vorhaben muss der Task natürlich unter dem angemeldeten User laufen, oder einer AD-Gruppe deren Mitglied er ist.
Des weiteren klappt ein Austausch auch nur wenn das File nicht in Benutzung ist.
Wenn doch muss der entsprechende Dienst/Anwendung vorher (per Skript) beendet werden.
killtec
killtec 25.07.2023 um 09:05:41 Uhr
Goto Top
Also Authentifizierte Benutzer dürfen lesen. Authentifiziert sind sie ja dann, sobald sie angemeldet sind.
Die Datei ist auch nur in Benutzung, wenn die Software aktiv ist bzw. das Profil gerade aktiv ist.
An meinem Test-PC kann ich das sicher ausschließen.
killtec
killtec 25.07.2023 um 09:17:11 Uhr
Goto Top
Kleine Rückmeldung: Es sieht so aus, als ob er zwar die Powershell öffnet, aber das Script nicht ausführt, da das Transcript nicht geschrieben wird.
7907292512
Lösung 7907292512 25.07.2023 aktualisiert um 09:46:34 Uhr
Goto Top
Bedenke das Start-Transcript in einen Pfad schreiben muss auf den auch das TaskPrincipal Schreibrechte hat!
Prüfe auch die ExecutionPolicy.

Ansonsten hast du das Skript nicht korrekt im Task-Planer hinterlegt.

Als ausführende EXE muss
PowerShell.exe
hinterlegt sein, dann unter Argumente
-EP Bypass -File "c:\pfad\zum\script.ps1"

Zu 100% typische PowerShell Anfängerfehler ...wie immer beim Taskplaner. Das man das jedes mal neu diskutieren muss ist echt müßig 🤔.
killtec
killtec 25.07.2023 um 11:09:29 Uhr
Goto Top
Zitat von @7907292512:

Bedenke das Start-Transcript in einen Pfad schreiben muss auf den auch das TaskPrincipal Schreibrechte hat!
Prüfe auch die ExecutionPolicy.

Ansonsten hast du das Skript nicht korrekt im Task-Planer hinterlegt.

Als ausführende EXE muss
PowerShell.exe
hinterlegt sein, dann unter Argumente
-EP Bypass -File "c:\pfad\zum\script.ps1"

Zu 100% typische PowerShell Anfängerfehler ...wie immer beim Taskplaner. Das man das jedes mal neu diskutieren muss ist echt müßig 🤔.

Hatte den Parameter -File nicht gesetzt. Habe ihn kurz vor deinem Post gefunden face-sad - Mache noch nicht so viel mit Powershell im Taskplaner... Daher ist der UNtergegangen.
Jetzt läuft es face-smile

Danke.