Powershell Skript Variablen Problem Ordner Verzeichnisse Kopieren
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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 156431
Url: https://administrator.de/contentid/156431
Ausgedruckt am: 23.11.2024 um 01:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo Lgn.core,
du benötigst die variable args.
willst du weitere variablen nutzen args[1], args[2] usw.....
ich mache es immer so:
weise die den inhalt der variable args einer von mir genutzten variable zu.
diese prüfe ich auch ob sie gesetzt ist.
gruß michael
du benötigst die variable args.
willst du weitere variablen nutzen args[1], args[2] usw.....
ich mache es immer so:
weise die den inhalt der variable args einer von mir genutzten variable zu.
diese prüfe ich auch ob sie gesetzt ist.
$ErrorActionPreference = 'SilentlyContinue'
$QUELLE = $args
if ($QUELLE) {
echo "QUELLE: `t$QUELLE"
}
else {
echo '$QUELLE nicht gesetzt'
}
gruß michael
so könnte man es lösen:
# **************************************************************
# move-ordner
#
# einmal auf der powershell ausgeführt werden
# "Set-ExecutionPolicy Unrestricted"
# **************************************************************
#
# **************************************************************
# * Erstellt M.N. - POWERSHELL / Entwicklung 06.12.2010 *
# *
# **************************************************************
#$ErrorActionPreference = 'stop'
$ErrorActionPreference = 'SilentlyContinue'
$start = Get-Date
$UNAME = $args
$QUELLE = "z:"
$ZIEL = "Z:\ausgeschieden"
$VERZEICHNIS = 'exchange,privat,profiles,users'
$VERZEICHNIS = $VERZEICHNIS.Split(',')
$PRGNAME = $myInvocation.MyCommand.Name
if ($UNAME) {
echo "UNAME: $UNAME"
foreach ($I in $VERZEICHNIS) {
mv $QUELLE\$I\$UNAME $ZIEL\$I\$UNAME
}
}
else {
echo '$UNMAE nicht gesetzt'
echo "Bitte Benutzernamen mit angeben"
echo "$PRGNAME testbenutzer"
}
$stop = Get-Date
#### laufzeit auswertung
function timepost() {
$gelaufenezeit = ($stop - $start).TotalSeconds
If ($gelaufenezeit -gt 60) {
$gelaufenezeit = ($gelaufenezeit / 60)
$MINSEK = "Min."}
Else {$MINSEK = "Sek."}
'Auftrag nach {0:0.00} {1} erledigt....' -f $gelaufenezeit, $MINSEK
}
timepost