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-Key: 7939444351

Url: https://administrator.de/contentid/7939444351

Printed on: February 29, 2024 at 07:02 o'clock

Member: SlainteMhath
Solution SlainteMhath Jul 24, 2023 at 13:56:51 (UTC)
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
Mitglied: 7907292512
Solution 7907292512 Jul 24, 2023, updated at Jul 25, 2023 at 06:31:16 (UTC)
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
Member: killtec
killtec Jul 25, 2023 at 06:21:56 (UTC)
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...
Mitglied: 7907292512
7907292512 Jul 25, 2023 updated at 06:32:32 (UTC)
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ß
Member: killtec
killtec Jul 25, 2023 at 06:32:36 (UTC)
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ß
Mitglied: 7907292512
7907292512 Jul 25, 2023 updated at 06:37:55 (UTC)
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.
Member: killtec
killtec Jul 25, 2023 at 07:05:41 (UTC)
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.
Member: killtec
killtec Jul 25, 2023 at 07:17:11 (UTC)
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.
Mitglied: 7907292512
Solution 7907292512 Jul 25, 2023 updated at 07:46:34 (UTC)
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 ­čĄö.
Member: killtec
killtec Jul 25, 2023 at 09:09:29 (UTC)
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.