d-viper
Goto Top

Powershellskript für workfolders

Moin Moin,

bitte verschieben sollte es hier nicht rein gehören.

Ich bin auf der Suche nach einem Powershellskript das meine vorhanden Userdaten aus den Homelaufwerken in mein workfolders Ordner verschiebt. Server 2019 Workfolders konfiguration.

Vielen Dank

Content-ID: 1093296196

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

Ausgedruckt am: 22.11.2024 um 01:11 Uhr

aqui
aqui 27.07.2021 aktualisiert um 11:14:22 Uhr
Goto Top
bitte verschieben sollte es hier nicht rein gehören.
Sinnfreier Kommentar, denn aus gutem Grund kannst nur DU als Threadowner es selber verschieben. Der "Bearbeiten" Knopf ist dein bester Freund. face-wink (FAQs lesen und verstehen hilft wirklich !)
Sinnvoller wäre bei PS in Tat die Rubrik "Batch & Shell". Aber egal...
Scirca
Scirca 27.07.2021 aktualisiert um 11:40:56 Uhr
Goto Top
FunFact er hat den selben Thread/Post auch direkt in 2 Boards aufgemacht.
https://www.computerbase.de/forum/threads/powershellskript-fuer-workfold ...
148656
148656 27.07.2021 um 11:42:21 Uhr
Goto Top
Zitat von @Scirca:

FunFact er hat den selben Thread/Post auch direkt in 2 Boards aufgemacht.
https://www.computerbase.de/forum/threads/powershellskript-fuer-workfold ...

Er verteilt den Workload face-smile
oder
Er holt, proaktiv eine Zweitmeinung ein face-big-smile
Scirca
Scirca 27.07.2021 um 11:44:40 Uhr
Goto Top
Er könnte mal proaktiv eine ordentliche Problembeschreibung abliefern, das grenzt wie oft bei der IT Hilfe mehr an Rätselraten.

Außer das er einen Windows Server 2019 hat und Homelaufwerke, wahrscheinlich von einer AD Struktur kann ich nicht entnehmen. Und mit PowerShell was machen will, das er aber keine 5 Sekunden gegooglet hat fällt mir auch auf.
erikro
erikro 27.07.2021 um 11:48:35 Uhr
Goto Top
Das ist erstmal einfach:

copy-item -path Quelle -destination Ziel
148656
148656 27.07.2021 um 11:51:25 Uhr
Goto Top
Das würde ja Voraussetzten, dass man sich mit dem Thema auseinander setzt.

Aber ich hab leider keine Ahnung, welche Kernkompetenzen einem Fachinformatiker, der als Administrator tätig ist, so angedichtet werden.
148656
148656 27.07.2021 um 11:54:17 Uhr
Goto Top
Zitat von @erikro:

Das ist erstmal einfach:

> copy-item -path Quelle -destination Ziel
> 

Da geht noch mehr an Hilfestellung face-smile

 get-help Copy-Item -Examples

NAME
    Copy-Item

ÜBERSICHT
    Copies an item from one location to another.


    ------ Example 1: Copy a file to the specified directory ------

    Copy-Item "C:\Wabash\Logfiles\mar1604.log.txt" -Destination "C:\Presentation"  


    - Example 2: Copy directory contents to an existing directory -

    Copy-Item -Path "C:\Logfiles\*" -Destination "C:\Drawings" -Recurse  

    > [!NOTE] > If you need to include the `Logfiles` directory in the copy, remove the `\ ` from the Path *. > For
    example: > > `Copy-Item -Path "C:\Logfiles" -Destination "C:\Drawings" -Recurse`  
    -- Example 3: Copy directory and contents to a new directory --

    Copy-Item -Path "C:\Logfiles" -Destination "C:\Drawings\Logs" -Recurse  

    > [!NOTE] > If the Path includes `*`, all the directory's file contents, including the subdirectory > trees, are  
    copied to the new destination directory. For example: > > `Copy-Item -Path "C:\Logfiles*" -Destination  
    "C:\Drawings\Logs" -Recurse`  
    Example 4: Copy a file to the specified directory and rename the file

    Copy-Item "\\Server01\Share\Get-Widget.ps1" -Destination "\\Server12\ScriptArchive\Get-Widget.ps1.txt"  


    --------- Example 5: Copy a file to a remote computer ---------

    $Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"  
    Copy-Item "D:\Folder001\test.log" -Destination "C:\Folder001_Copy\" -ToSession $Session  


    -------- Example 6: Copy a folder to a remote computer --------

    $Session = New-PSSession -ComputerName "Server02" -Credential "Contoso\User01"  
    Copy-Item "D:\Folder002\" -Destination "C:\Folder002_Copy\" -ToSession $Session  


    Example 7: Recursively copy the entire contents of a folder to a remote computer

    $Session = New-PSSession -ComputerName "Server04" -Credential "Contoso\User01"  
    Copy-Item "D:\Folder003\" -Destination "C:\Folder003_Copy\" -ToSession $Session -Recurse  


    Example 8: Copy a file to a remote computer and then rename the file

    $Session = New-PSSession -ComputerName "Server04" -Credential "Contoso\User01"  
    Copy-Item "D:\Folder004\scriptingexample.ps1" -Destination "C:\Folder004_Copy\scriptingexample_copy.ps1"  
    -ToSession $Session


    ----- Example 9: Copy a remote file to the local computer -----

    $Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"  
    Copy-Item "C:\MyRemoteData\test.log" -Destination "D:\MyLocalData\" -FromSession $Session  


    Example 10: Copy the entire contents of a remote folder to the local computer

    $Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"  
    Copy-Item "C:\MyRemoteData\scripts" -Destination "D:\MyLocalData\" -FromSession $Session  


    Example 11: Recursively copy the entire contents of a remote folder to the local computer

    $Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"  
    Copy-Item "C:\MyRemoteData\scripts" -Destination "D:\MyLocalData\scripts" -FromSession $Session -Recurse  


    Example 12: Recursively copy files from a folder tree into the current folder

    PS C:\temp\test> (Get-ChildItem C:\temp\tree -Recurse).FullName
    C:\temp\tree\subfolder
    C:\temp\tree\file1.txt
    C:\temp\tree\file2.txt
    C:\temp\tree\file3.txt
    C:\temp\tree\subfolder\file3.txt
    C:\temp\tree\subfolder\file4.txt
    C:\temp\tree\subfolder\file5.txt

    PS C:\temp\test> Get-Content C:\temp\tree\file3.txt
    This is file3.txt in the root folder

    PS C:\temp\test> Get-Content C:\temp\tree\subfolder\file3.txt
    This is file3.txt in the subfolder

    PS C:\temp\test> Copy-Item -Path C:\temp\tree -Filter *.txt -Recurse -Container:$false
    PS C:\temp\test> (Get-ChildItem . -Recurse).FullName
    C:\temp\test\subfolder
    C:\temp\test\file1.txt
    C:\temp\test\file2.txt
    C:\temp\test\file3.txt
    C:\temp\test\file4.txt
    C:\temp\test\file5.txt

    PS C:\temp\test> Get-Content .\file3.txt
    This is file3.txt in the subfolder

    The `Copy-Item` cmdlet has the Container parameter set to `$false`. This causes the contents of the source folder
    to be copied but does not preserve the folder structure. Notice that files with the same name are overwritten in
    the destination folder.
D-Viper
D-Viper 27.07.2021 aktualisiert um 12:29:32 Uhr
Goto Top
wow ihr trolle seid ja mega lustig... blöde Kommentare und Sprüche reißen und das den ganzen tag lang.

Bitte etwas auf den eigen Stil achten!
Sowas kommt hier nicht gut an 
brammer
(Moderator)
D-Viper
D-Viper 27.07.2021 um 12:13:33 Uhr
Goto Top
früher ging es hier mal professionell zu, dachte ich zumindest. Es geht in dem post um die workfolders auf einem server 2019
D-Viper
D-Viper 27.07.2021 aktualisiert um 12:30:36 Uhr
Goto Top
des weiteren geht es nicht um einen einfachen copy job sondern ums verschieben, wie oben schon geschrieben. Außerdem mit der Frage ob jemand damit Erfahrung hat in Verbindung mit Workfolders, ich brauche ein Skript.

Bitte etwas auf den eigen Stil achten!
Sowas kommt hier nicht gut an 

Wenn du ein Script brauchst stell deinen Entwurf vor und beschreibe deine Probleme!

brammer
(Moderator)
148656
148656 27.07.2021 um 12:24:10 Uhr
Goto Top
Frühen hatten wir auch kein Penizillin, keine Arbeitslosen und Rentenversicherung.
Es gab sogar Zeiten, da kam Wasser aus dem Brunnen und nicht aus der Wand.
148656
148656 27.07.2021 aktualisiert um 13:25:39 Uhr
Goto Top
Zitat von @D-Viper:

des weiteren geht es nicht um einen einfachen copy job sondern ums verschieben, wie oben schon geschrieben. Außerdem mit der Frage ob jemand damit Erfahrung hat in Verbindung mit Workfolders, ich brauche ein Skript.

dann versuch mal.
> get-help move-item

NAME
    Move-Item

ÜBERSICHT
    Moves an item from one location to another.


SYNTAX
    Move-Item [[-Destination] <System.String>] [-Credential <System.Management.Automation.PSCredential>] [-Exclude
    <System.String[]>] [-Filter <System.String>] [-Force] [-Include <System.String[]>] -LiteralPath <System.String>
    [-PassThru] [-UseTransaction] [-Confirm] [-WhatIf] [<CommonParameters>]

    Move-Item [-Path] <System.String> [[-Destination] <System.String>] [-Credential
    <System.Management.Automation.PSCredential>] [-Exclude <System.String[]>] [-Filter <System.String>] [-Force]
    [-Include <System.String[]>] [-PassThru] [-UseTransaction] [-Confirm] [-WhatIf] [<CommonParameters>]


BESCHREIBUNG
    The `Move-Item` cmdlet moves an item, including its properties, contents, and child items, from one location to
    another location. The locations must be supported by the same provider. For example, it can move a file or
    subdirectory from one directory to another or move a registry subkey from one key to another. When you move an
    item, it is added to the new location and deleted from its original location.


VERWANDTE LINKS
    Online Version: https://docs.microsoft.com/powershell/module/microsoft.powershell.management/move-item?view=powersh
    ell-5.1&WT.mc_id=ps-gethelp
    Clear-Item
    Copy-Item
    Get-Item
    Invoke-Item
    New-Item
    Remove-Item
    Rename-Item
    Set-Item
    about_Providers

HINWEISE
    Zum Aufrufen der Beispiele geben Sie Folgendes ein: "get-help Move-Item -examples".  
    Weitere Informationen erhalten Sie mit folgendem Befehl: "get-help Move-Item -detailed".  
    Technische Informationen erhalten Sie mit folgendem Befehl: "get-help Move-Item -full".  
    Geben Sie zum Abrufen der Onlinehilfe Folgendes ein: "get-help Move-Item -online"  
Wichtig sind die Hinweise am Ende
aqui
aqui 27.07.2021 aktualisiert um 14:03:14 Uhr
Goto Top
wow ihr trolle seid ja mega lustig...
Du Troll bist ja gleich als Erster angefangen mit dem unsinnigen "Verschiebe Befehl" !!
Wie war das noch mit dem Wald in den man reinruft...?? Aber egal...
Tezzla
Tezzla 27.07.2021 aktualisiert um 14:01:17 Uhr
Goto Top
Zitat von @D-Viper:

früher ging es hier mal professionell zu, dachte ich zumindest. Es geht in dem post um die workfolders auf einem server 2019

Vielleicht fängst du erst einmal an deine Frage auch entsprechend "professionell" zu formulieren und den Antwortenden möglichst alle wesentlichen Informationen oder bereits angestellte Überlegungen deinerseits mitzuteilen. Das wäre professionell.

Um an die Hilfe der Kollegen anzuknüpfen: Prinzipiell reicht hier ein Durchitereieren deiner Ordner (Get-ChildItem -Directory) mit einem anschließenden ForEach-Copy-Job, wahlweise auch mit Robocopy /MIR /.....

Also: Was hast du schon gemacht? Wodrüber stolperst du? Was sind deine grundsätzlichen Bedenken? Was hast du getestet? Was hat dabei nicht funktioniert?
erikro
erikro 27.07.2021 um 14:25:51 Uhr
Goto Top
Moin,

Zitat von @Tezzla:

Um an die Hilfe der Kollegen anzuknüpfen: Prinzipiell reicht hier ein Durchitereieren deiner Ordner (Get-ChildItem -Directory) mit einem anschließenden ForEach-Copy-Job, wahlweise auch mit Robocopy /MIR /.....

Braucht es noch nicht einmal:

Example 2: Copy directory contents to an existing directory
This example copies the contents of the C:\Logfiles directory into the existing C:\Drawings directory. The Logfiles directory isn't copied.

If the Logfiles directory contains files in subdirectories, those subdirectories are copied with their file trees intact. By default, the Container parameter is set to True, which preserves the directory structure.
Copy-Item -Path "C:\Logfiles\*" -Destination "C:\Drawings" -Recurse  

(aus: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell. ..)

Liebe Grüße

Erik
Drohnald
Drohnald 27.07.2021 um 15:31:26 Uhr
Goto Top
Verschieben = Kopieren und Löschen, jedenfalls wenn es unterschiedliche Server sind.
Falls wir von der gleichen (virtuellen) Platte sprechen, verstehe ich sein "Verschieben" durchaus, das geht ja superschnell.

Wenn die Workfolders schon konfiguriert sind, ist das Verschieben aber auch nichts anderes, als jede andere Datei von einem Freigabeordner in den nächsten zu bringen. Dabei gibt es eigentlich nicht viel zu beachten.


Ich sehe hier folgendes Problem: Dein Post oben liest sich übersetzt "Ich hätte gerne gratis Dienstleistung für ein PS-Skript".
Es gibt aber keine gratis Dienstleistung.
Entweder man hat ein konkretes Problem, dann kann man das detailliert und professionell beschreiben, dann gibt es hier auch professionelle Hilfe.
Oder man sagt: "Ich will eine fertige Lösung für folgende Aufgabe", dann finden sich hier bestimmt genügend Kollegen die für 120€ netto die Stunde diese Lösung liefern.
D-Viper
D-Viper 27.07.2021 um 15:53:50 Uhr
Goto Top
Moin Moin, ja genau es ist die selbe Partition und nicht genügend platz für copy paste delete. Deshalb verschieben.
D-Viper
D-Viper 27.07.2021 um 16:07:50 Uhr
Goto Top
demanch wäre es:

Move-Item -Path D:\Home\%USERNAME% -Destination D:\Workfolders\%USERNAME%

?
D-Viper
D-Viper 27.07.2021 um 16:12:10 Uhr
Goto Top
das problem ist das die namen der userfolder anders sind.
Momentan: D:\Home\Vorname.Nachname
in Workfolders: D:\Workfolders\vorname.nachname@domain-hh

also wenn man ein win 10 client per hand konfiguriert dann legt windows das so an
erikro
erikro 27.07.2021 um 16:34:46 Uhr
Goto Top
Zitat von @Drohnald:
Oder man sagt: "Ich will eine fertige Lösung für folgende Aufgabe", dann finden sich hier bestimmt genügend Kollegen die für 120€ netto die Stunde diese Lösung liefern.

Neeee, 150! 30 sind Schmerzensgeld für's Nasenwürmerziehen. face-wink
148656
148656 27.07.2021 um 16:39:09 Uhr
Goto Top
Zitat von @erikro:

Zitat von @Drohnald:
Oder man sagt: "Ich will eine fertige Lösung für folgende Aufgabe", dann finden sich hier bestimmt genügend Kollegen die für 120€ netto die Stunde diese Lösung liefern.

Neeee, 150! 30 sind Schmerzensgeld für's Nasenwürmerziehen. face-wink

Immer diese Preisdumper face-wink
Wovon willst du deine Schulungen, Karibikurlaub und Alimente bezahlen 😉
erikro
erikro 27.07.2021 um 16:41:55 Uhr
Goto Top
Zitat von @D-Viper:

das problem ist das die namen der userfolder anders sind.
Momentan: D:\Home\Vorname.Nachname
in Workfolders: D:\Workfolders\vorname.nachname@domain-hh

also wenn man ein win 10 client per hand konfiguriert dann legt windows das so an

Aha, Du hast also gleich zwei Probleme:

1. Du hast nicht genug Platz auf der Platte. Daher scheidet direktes Kopieren wie von mir vorgeschlagen aus. Ob Du das nun mit copy-item oder move-item machst, ist egal, da auch move-item das Original geschickterweise erst dann löscht, wenn das Kopieren erfolgreich war. Also musst Du häppchenweise kopieren. Siehe
get-childitem
foreach($var in $arr) {}
move-item

Viel Spaß beim Programmieren und liebe Grüße

Erik
nEmEsIs
Lösung nEmEsIs 28.07.2021 aktualisiert um 18:20:14 Uhr
Goto Top
Hi

Das hier kannst du beim erstellen der Workfolders festlegen, ob das mit oder ohne Domain ist: vorname.nachname@domain-hh

237b608d-603d-45c7-ac1a-16f146911146

zu deinem Problem:
Ich vermute mal du hast auf deinen Clients die Ordnerumleitung aktiviert.
Was ist hier in der Ordnerumleitung definiert? Zu altem Ort zurück oder an dem Ort belassen?
Stell es notfalls auf an den Ort belassen um.

Dann erstelle eine neue GPO, welche dir die Workfolders konfiguriert. Hier stellst du die Ordnerumleitung von UNC auf C:\Users\%Username%\Work Folders um.

Die Workfolders Policy nutzt den oben genannten Pfad im Standard. Hier musst du ggf noch anpassungen wie erzwingen etc anpassen.

Somit kopiert der Client beim nächsten anmelden die Daten von unc Pfad zum lokalen Pfad und die Work folders kopieren die Daten dann hoch in die Work Folder Freigabe. Saubere Berechtigungen inklusive.

Sollten offline files in Verwendung sein hier die GPO entsprechend anpassen, das diese deaktiviert werden.

Mit freundlichen Grüßen Nemesis