Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Powershell Skript Variablen Problem Ordner Verzeichnisse Kopieren

Frage Microsoft Windows Tools

Mitglied: Lgn.core

Lgn.core (Level 1) - Jetzt verbinden

06.12.2010 um 13:57 Uhr, 8653 Aufrufe, 4 Kommentare

Guten Tag,

ich soll für meinen Ausbilder ein Skript schreiben für Windows Powershell, ich könnte es auch mit CMD lösen aber ich bräuchte das Skript für Powershell

Das Skript soll folgendes machen:

Wir haben auf unserem Server 4 verschiedene User Verzeichnisse "Users, Exchange, Profiles und Privat" darin hat jeder User sein Verzeichnis der Name des Verzeichnisses ist der Benutzername von seinem Account (z.B. KoeniS).

Jetzt sind einige Mitarbeiter ausgeschieden so haben wir ein separates Verzeichnis "ausgeschieden" erstellt in dem die Verzeichnisse der ausgeschiedenen User rein verschoben werden sollen.

Ich habe jetzt ein Skript geschrieben das sieht folgendermaßen aus:

cd Z:\
mv z:\exchange z:\ausgeschieden\exchange
mv z:\privat\ z:\ausgeschieden\privat
mv z:\Profiles z:\ausgeschieden\profiles
mv Z:\users Z:\ausgeschieden\users

write-output "Verzeichnisse wurden Kopiert"

Das Skript soll z.B. so aufgerufen werden Z:\ausgeschieden.ps1 KoeniS

Das KoeniS ist dem Benutzerverzeichnis zu zuordnen, bei einem anderen Skript unter CMD setzt er das "KoeniS" direkt in eine Variable und fügt es dem Pfad zu: mv z:\exchange\koenis

Wie funktioniert das unter Powershell?

Server Betriebssystem: Windows Server 2008


Hoffe mein Problem konnte ich verständlich äußern.

MIt freundlichen grüßen
Mitglied: micneu
06.12.2010 um 14:24 Uhr
Hallo Lgn.core,
du benötigst die variable args[0].
willst du weitere variablen nutzen args[1], args[2] usw.....

ich mache es immer so:
weise die den inhalt der variable args[0] einer von mir genutzten variable zu.
diese prüfe ich auch ob sie gesetzt ist.

01.
$ErrorActionPreference = 'SilentlyContinue' 
02.
 $QUELLE = $args[0] 
03.
 if ($QUELLE) { 
04.
        echo "QUELLE: `t$QUELLE" 
05.
06.
else {  
07.
        echo '$QUELLE nicht gesetzt'                 
08.
        }
gruß michael
Bitte warten ..
Mitglied: Lgn.core
06.12.2010 um 14:28 Uhr
Schon mal danke für deine Antwort.

Das bedeutet mit deinem Skript kann ich die Datei z:\ausgeschieden.ps1 KoeniS somit würde dann die Variable "KoeniS" bekommen und müsste dies dann an die Verzeichnis Pfade setzen?

cd Z:\
mv z:\exchange\$args[0] z:\ausgeschieden\exchange
mv z:\privat\$args[0] z:\ausgeschieden\privat
mv z:\Profiles\$args[0] z:\ausgeschieden\profiles
mv Z:\users\$args[0] Z:\ausgeschieden\users

write-output "Verzeichnisse wurden Kopiert"

So müsste es glaub sein.

Ich teste das im Moment mit dem Skript:

cd G:\
mv g:\$args[0] g:\test2

und rufe es unter:

Unbenannt3.ps1 test1

auf unbenannt3 ist die Datei und test1 der zu übergebende wert an die Variable.
Bitte warten ..
Mitglied: micneu
06.12.2010 um 19:46 Uhr
so könnte man es lösen:

01.
#   ************************************************************** 
02.
#   move-ordner    
03.
#    
04.
#    einmal auf der powershell ausgeführt werden 
05.
#     "Set-ExecutionPolicy Unrestricted" 
06.
#   ************************************************************** 
07.
#     
08.
#   ************************************************************** 
09.
#   * Erstellt M.N. - POWERSHELL / Entwicklung   06.12.2010      * 
10.
#   *  
11.
#   ************************************************************** 
12.
#$ErrorActionPreference = 'stop' 
13.
$ErrorActionPreference = 'SilentlyContinue'         
14.
    $start = Get-Date         
15.
    $UNAME = $args[0] 
16.
    $QUELLE = "z:" 
17.
    $ZIEL = "Z:\ausgeschieden" 
18.
    $VERZEICHNIS = 'exchange,privat,profiles,users' 
19.
    $VERZEICHNIS = $VERZEICHNIS.Split(',')     
20.
    $PRGNAME = $myInvocation.MyCommand.Name 
21.
      if ($UNAME) { 
22.
        echo "UNAME: $UNAME" 
23.
        foreach ($I in $VERZEICHNIS) {         
24.
            mv $QUELLE\$I\$UNAME  $ZIEL\$I\$UNAME 
25.
26.
27.
      else {  
28.
        echo '$UNMAE nicht gesetzt' 
29.
        echo "Bitte Benutzernamen mit angeben" 
30.
        echo "$PRGNAME testbenutzer"                 
31.
32.
         
33.
$stop = Get-Date      
34.
 
35.
#### laufzeit auswertung 
36.
function timepost() { 
37.
    $gelaufenezeit = ($stop - $start).TotalSeconds 
38.
    If ($gelaufenezeit -gt 60) { 
39.
        $gelaufenezeit = ($gelaufenezeit / 60) 
40.
        $MINSEK = "Min."} 
41.
    Else {$MINSEK = "Sek."} 
42.
    'Auftrag nach {0:0.00} {1} erledigt....' -f $gelaufenezeit, $MINSEK  
43.
44.
timepost
Bitte warten ..
Mitglied: Lgn.core
07.12.2010 um 09:46 Uhr
Das ist echt ein super Skript, es Funktioneirt
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell Übergabe von Variablen zwischen verschiedenen Skripten
gelöst Frage von derhoeppiBatch & Shell7 Kommentare

Hallo, folgende Thematik habe ich gerade. Ich habe ein Skript. In diesem habe ich eine Variable, die ich global ...

Batch & Shell
Skript soll Dateien in "Monats" Ordner kopieren
gelöst Frage von agnostikerBatch & Shell11 Kommentare

Ziel: Alle Dateien die innerhalb des letzten Monats erstellt wurden in einen Ordner kopieren der den Namen des aktuellen ...

Batch & Shell
Problem mit UNC-Pfad ? powershell-skript
Frage von today12Batch & Shell2 Kommentare

Hallo liebe Community, ich hab ein kleines Verständnis Problem mit UNC-Pfade. ich möchte mein Skript auf ein Netzlaufwerk legen, ...

Batch & Shell
Kopieren einer Datei in mehrere Ordner mit PowerShell
gelöst Frage von FRANHEBatch & Shell7 Kommentare

Hallo zusammen, ich habe folgendes Problem. Ich würde gerne eine Datei *.xml aus dem Ordner C:\Testing\xml in den Ordner ...

Neue Wissensbeiträge
MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 12 StundenMikroTik RouterOS4 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 13 StundenSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Administrator.de Feedback

Entwicklertagebuch: Die Startseite wurde überarbeitet

Information von admtech vor 15 StundenAdministrator.de Feedback9 Kommentare

Hallo Administrator User, mit dem Release 5.7 haben wir unsere Startseite überarbeitet und die Beiträge und Fragen voneinander getrennt. ...

Vmware

VMware Desktopprodukte sind verwundbar

Information von Penny.Cilin vor 20 StundenVmware

Die VMware-Anwendungen zum Umgang mit virtuellen Maschinen Fusion, Horizon Client und Workstation sowie die Plattform NSX sind verwundbar. Davon ...

Heiß diskutierte Inhalte
Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail
Frage von ahstaxVisual Studio24 Kommentare

Hallo, ich möchte gerne ein vb.net-Tool schreiben, das am Ende eine Outlook-E-Mail erzeugt. Grundsätzlich ist mir klar, wie das ...

Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server16 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows Netzwerk
Netzwerk Neustrukturierung
Frage von IT-DreamerWindows Netzwerk16 Kommentare

Hallo verehrte Community und Admins, bei uns im Haus steht eine Neustrukturierung an. Dafür benötige ich von euch ein ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...