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 Abfrage function und weitergabe der Parameter

Mitglied: complex

complex (Level 1) - Jetzt verbinden

15.09.2014, aktualisiert 10:22 Uhr, 885 Aufrufe, 6 Kommentare, 2 Danke

Hallo zusammen,

bin leider noch blutiger anfänger im Bereich Powershell.
Zu meinem Problem:
Ich möchte ein Script schreiben, dass uns in der Firma das kopieren von benutzerkonten vereinfacht (z.B. Mitarbeiter erhält neues Laptop).
Da teilweise aber auch mehrere Benutzerkonten auf einem Rechner genutzt werden, soll später die Abfrage kommen, ob ein weiteres Benutzerkonto kopiert werden soll, oder nicht. Deswegen die arbeit mit "function".

#Definierte Funktionen
function Rechnerabfrage
{
#Abfrage des Hostnames des alten Rechners
$rechneralt = Read-Host "Name des bisheriger Rechners"

#Abfrage des Zielhosts (Neuer Rechner)
$rechnerneu = Read-Host "Name des neuen Rechners"
}
function Userabfrage
{

#Abfrage des zu kopierenden Benutzerkontos
$Username = Read-Host "Zu kopierendes Benutzerkonto eingeben"
}


#Generierte Pfade aus Abfrage "Rechner alt"
$PfadDesktopalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\Desktop\"
$Pfadfavoritesalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\Favorites\"
$Pfadlinksalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\Links\"
.......... usw.....

Leider setzt er die Variablen aus den Abfragen nicht unten in die Netzwerkpfade.
Was mache ich falsch?

als Ausgabe kommt dann:
\\\C$\Users\\Desktop\
usw...

Danke für eure Hilfe.

Grüße,
Complex
Mitglied: colinardo
LÖSUNG 15.09.2014, aktualisiert um 10:22 Uhr
Moin,
Leider setzt er die Variablen aus den Abfragen nicht unten in die Netzwerkpfade.
Was mache ich falsch?
1. weil du die Variablen erst in den Funktionen verwendest, und dort sind sie dann nur lokal in der Funktion definiert und außerhalb dieser nicht mehr.
Lese du dazu unbedingt dieses Kapitel zu Variable-Scopes durch: http://technet.microsoft.com/de-de/library/hh847849.aspx

2. Du rufst deine Funktionen ja garnicht auf ?! Zumindest sehe ich das hier in deinem Ausschnitt nicht.

Also entweder definiere vorher außerhalb der Functions Scriptvariablen in dieser Art
$script:rechneralt
und setze den Inhalt der Scriptvariablen in der Function:
$script:rechneralt = Read-Host ............
Beispiel mit Scriptvariablen
01.
#Scriptvariablen vor Verwendung definieren 
02.
$script:rechneralt = "" 
03.
$script:rechnerneu = "" 
04.
 
05.
function Rechnerabfrage { 
06.
   $script:rechneralt = Read-Host "Name des bisheriger Rechners" 
07.
   $script:rechnerneu = Read-Host "Name des neuen Rechners" 
08.
09.
 
10.
#Funktion aufrufen 
11.
Rechnerabfrage 
12.
 
13.
#Variablen ausgeben 
14.
write-host $script:rechneralt 
15.
write-host $script:rechnerneu
oder du verwendest die Function dafür wofür sie eigentlich gedacht ist, zur Rückgabe von Werten. Dafür gibt es in Funktionen das Statement return $variable

Beispiel mit Rückgabe von Werten aus der Funktion als Hashtable
01.
function Rechnerabfrage { 
02.
    # Hashtable für mehrere Werte erzeugen 
03.
    $ht = @{} 
04.
    $ht.rechneralt = Read-Host "Name des bisheriger Rechners" 
05.
    $ht.rechnerneu = Read-Host "Name des neuen Rechners" 
06.
    # Hashtable aus der Funktion zurückgeben 
07.
    return $ht 
08.
09.
# Funktion ausführen und Werte übergeben 
10.
$result = Rechnerabfrage 
11.
 
12.
#Ausgabe der Variablen 
13.
write-host $result.rechneralt 
14.
write-host $result.rechnerneu
Grüße Uwe

p.s. Bitte nutze Code-Tags für deinen Quellcode: <code> Quellcode </code>. Merci.
Bitte warten ..
Mitglied: complex
15.09.2014, aktualisiert um 09:42 Uhr
ich bin überfordert :D

wie gesagt: mein 2. Tag in Powershell. Aber Vielen dank fürs Weiterhelfen.
Habe es ohne erfolg probiert.

Hier nochmal das Grundkonzept:

01.
 ##Clear Screen from old Output 
02.
cls 
03.
 
04.
#************************************************************Ausführung als Administrator************************************************************** 
05.
$id=[System.Security.Principal.WindowsIdentity]::GetCurrent() 
06.
$principal=New-Object System.Security.Principal.WindowsPrincipal($id) 
07.
if(!$principal.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)) { 
08.
 $powershell=[System.Diagnostics.Process]::GetCurrentProcess() 
09.
 $psi=New-Object System.Diagnostics.ProcessStartInfo $powershell.Path 
10.
 $script=$MyInvocation.MyCommand.Path 
11.
 $prm=$script 
12.
 foreach($a in $args) { 
13.
  $prm+=' '+$a 
14.
15.
 $psi.Arguments=$prm 
16.
 $psi.Verb="runas" 
17.
 [System.Diagnostics.Process]::Start($psi) | Out-Null 
18.
 return; 
19.
20.
 
21.
#************************************************************Definierte Funktionen Teil 1*************************************************************** 
22.
function Rechnerabfrage 
23.
24.
   $script:rechneralt = Read-Host "Name des bisheriger Rechners" 
25.
   $script:rechnerneu = Read-Host "Name des neuen Rechners" 
26.
27.
 
28.
#Funktion aufrufen Rechnerabfrage 
29.
 
30.
#Variablen ausgeben 
31.
write-host $script:rechneralt 
32.
write-host $script:rechnerneu 
33.
 
34.
function Userabfrage 
35.
36.
	#Abfrage des zu kopierenden Benutzerkontos 
37.
	$script:Username = Read-Host "Benutzernamen eingeben" 
38.
	Write-Host "Kopieren wird gestartet" 
39.
40.
	 
41.
	#Scriptvariablen definieren 
42.
	$script:rechneralt = "" 
43.
	$script:rechnerneu = "" 
44.
#*******************************************************Generierte Pfade aus Abfrage "Rechner alt"***************************************************** 
45.
	$PfadDesktopalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\Desktop\" 
46.
	$Pfadfavoritesalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\Favorites\" 
47.
	$Pfadlinksalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\Links\" 
48.
	$Documentbuildingalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Document Building Blocks\" 
49.
	$Proofalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Proof\" 
50.
	$Signaturesalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Signatures\" 
51.
	$Templatesalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Templates\" 
52.
	$UProofalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\UProof\" 
53.
	$Officealt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Office\" 
54.
	$Systemcertificatesalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\SystemCertificates\" 
55.
	$Outlookalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Outlook\" 
56.
	$OfficeUIalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Local\Microsoft\Office\" 
57.
 
58.
#*******************************************************Kopiere in folgende Pfade zu "Rechner neu"***************************************************** 
59.
	$PfadDesktopneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\Desktop\" 
60.
	$Pfadfavoritesneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\Favorites\" 
61.
	$Pfadlinksneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\Links\" 
62.
	$Documentbuildingneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Document Building Blocks\" 
63.
	$Proofneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Proof\" 
64.
	$Signaturesneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Signatures\" 
65.
	$Templatesneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Templates\" 
66.
	$UProofneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\UProof\" 
67.
	$Officeneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Office\" 
68.
	$Systemcertificatesneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\SystemCertificates\" 
69.
	$Outlookneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Outlook\" 
70.
	$OfficeUIneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Local\Microsoft\Office\" 
71.
 
72.
#************************************************************Definierte Funktionen Teil 2************************************************************** 
73.
function Kopieren 
74.
75.
	Copy-Item $PfadDesktopalt $Pfaddesktopneu -Recurse 
76.
	Copy-Item $Pfadfavoritesalt $Pfadfavoritesneu -Recurse 
77.
	Copy-Item $Pfadlinksalt $Pfadlinksneu -Recurse 
78.
	Copy-Item $Documentbuildingalt $Documentbuildingneu -Recurse 
79.
	Copy-Item $Proofalt $Proofneu -Recurse 
80.
	Copy-Item $Signaturesalt $Signaturesneu -Recurse 
81.
	Copy-Item $Templatesalt $Templatesneu -Recurse 
82.
	Copy-Item $UProofalt $UProofneu -Recurse 
83.
	Copy-Item $Officealt $Officeneu -Recurse 
84.
	Copy-Item $Systemcertificatesalt $Systemcertificatesneu -Recurse 
85.
	Copy-Item $Outlookalt $Outlookneu -Recurse 
86.
	Copy-Item $OfficeUIalt $OfficeUIneu -Recurse 
87.
88.
function weiter 
89.
90.
 $wPowerShell=new-object -comobject wscript.shell 
91.
 
92.
 $Wartezeit = 0 # Benutzer muss selbst die Schaltfläche betätigen 
93.
 $Schaltfläche = 4 # Schaltfläche Ja und Nein 
94.
 
95.
 $Antwort=$wPowershell.popup("Kopiervorgang abgeschlossen. Soll ein weiteres Benutzerkonto kopiert werden?",$Wartezeit,"Weiterer Kopiervorgang",$Schaltfläche)  
96.
 
97.
#*********************************************************************Abfrage starten**************************************************************** 
98.
 if ($Antwort-eq 6) # Fall "Ja" oder "Yes" gedrückt wurde... 
99.
100.
 Userabfrage 
101.
 Kopieren 
102.
 weiter 
103.
104.
105.
 Rechnerabfrage 
106.
 Userabfrage 
107.
 Kopieren 
108.
 weiter 
109.
 
__________________________________________________________________________________________________________

später soll noch eine Prüffunktion rein, ob wirklich alles abgearbeitet wurde.
Nur wie gesagt, es hakt an den Pfaden. Ich habe es mal mit $script:rechneralt etc probiert. Leider ohne erfolg ;(
Bitte warten ..
Mitglied: colinardo
15.09.2014, aktualisiert um 09:40 Uhr
Habe dir oben dazu Beispiele nachgereicht
Bitte warten ..
Mitglied: complex
15.09.2014 um 10:13 Uhr
Habe die Abfragen soweit hinbekommen, allerdings startet er die "kopieren"-function nicht, sondern fragt mich direkt wieder, wie der alte Rechner heisst.

01.
 ##Clear Screen from old Output 
02.
cls 
03.
 
04.
#************************************************************Ausführung als Administrator************************************************************** 
05.
$id=[System.Security.Principal.WindowsIdentity]::GetCurrent() 
06.
$principal=New-Object System.Security.Principal.WindowsPrincipal($id) 
07.
if(!$principal.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)) { 
08.
 $powershell=[System.Diagnostics.Process]::GetCurrentProcess() 
09.
 $psi=New-Object System.Diagnostics.ProcessStartInfo $powershell.Path 
10.
 $script=$MyInvocation.MyCommand.Path 
11.
 $prm=$script 
12.
 foreach($a in $args) { 
13.
  $prm+=' '+$a 
14.
15.
 $psi.Arguments=$prm 
16.
 $psi.Verb="runas" 
17.
 [System.Diagnostics.Process]::Start($psi) | Out-Null 
18.
 return; 
19.
20.
 
21.
#************************************************************Definierte Funktionen Teil 1*************************************************************** 
22.
function Rechnerabfrage { 
23.
    # Hashtable für mehrere Werte erzeugen 
24.
    $ht = @{} 
25.
    $ht.rechneralt = Read-Host "Name des bisheriger Rechners" 
26.
    $ht.rechnerneu = Read-Host "Name des neuen Rechners" 
27.
    # Hashtable aus der Funktion zurückgeben 
28.
    return $ht 
29.
30.
# Funktion ausführen und Werte übergeben 
31.
$result = Rechnerabfrage 
32.
 
33.
 
34.
function Username { 
35.
    # Hashtable für mehrere Werte erzeugen 
36.
    $ht = @{} 
37.
    $ht.Username = Read-Host "Zu kopierendes Benutzerkonto" 
38.
    # Hashtable aus der Funktion zurückgeben 
39.
    return $ht 
40.
41.
# Funktion ausführen und Werte übergeben 
42.
$result = Username 
43.
 
44.
 
45.
Write-Host "Kopieren wird gestartet" 
46.
	 
47.
#************************************************************Definierte Funktionen Teil 2************************************************************** 
48.
function Kopieren 
49.
50.
	Copy-Item $PfadDesktopalt $Pfaddesktopneu -Recurse 
51.
	Copy-Item $Pfadfavoritesalt $Pfadfavoritesneu -Recurse 
52.
	Copy-Item $Pfadlinksalt $Pfadlinksneu -Recurse 
53.
	Copy-Item $Documentbuildingalt $Documentbuildingneu -Recurse 
54.
	Copy-Item $Proofalt $Proofneu -Recurse 
55.
	Copy-Item $Signaturesalt $Signaturesneu -Recurse 
56.
	Copy-Item $Templatesalt $Templatesneu -Recurse 
57.
	Copy-Item $UProofalt $UProofneu -Recurse 
58.
	Copy-Item $Officealt $Officeneu -Recurse 
59.
	Copy-Item $Systemcertificatesalt $Systemcertificatesneu -Recurse 
60.
	Copy-Item $Outlookalt $Outlookneu -Recurse 
61.
	Copy-Item $OfficeUIalt $OfficeUIneu -Recurse 
62.
63.
function weiter 
64.
65.
 $wPowerShell=new-object -comobject wscript.shell 
66.
 
67.
 $Wartezeit = 0 # Benutzer muss selbst die Schaltfläche betätigen 
68.
 $Schaltfläche = 4 # Schaltfläche Ja und Nein 
69.
 
70.
 $Antwort=$wPowershell.popup("Kopiervorgang abgeschlossen. Soll ein weiteres Benutzerkonto kopiert werden?",$Wartezeit,"Weiterer Kopiervorgang",$Schaltfläche)  
71.
 
72.
#*********************************************************************Abfrage starten**************************************************************** 
73.
 if ($Antwort-eq 6) # Fall "Ja" oder "Yes" gedrückt wurde... 
74.
75.
 Username	 
76.
 Kopieren		 
77.
 weiter 
78.
79.
80.
 
81.
#*******************************************************Generierte Pfade aus Abfrage "Rechner alt"***************************************************** 
82.
	$PfadDesktopalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\Desktop\" 
83.
	$Pfadfavoritesalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\Favorites\" 
84.
	$Pfadlinksalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\Links\" 
85.
	$Documentbuildingalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Document Building Blocks\" 
86.
	$Proofalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Proof\" 
87.
	$Signaturesalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Signatures\" 
88.
	$Templatesalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Templates\" 
89.
	$UProofalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\UProof\" 
90.
	$Officealt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Office\" 
91.
	$Systemcertificatesalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\SystemCertificates\" 
92.
	$Outlookalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Outlook\" 
93.
	$OfficeUIalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Local\Microsoft\Office\" 
94.
 
95.
#*******************************************************Kopiere in folgende Pfade zu "Rechner neu"***************************************************** 
96.
	$PfadDesktopneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\Desktop\" 
97.
	$Pfadfavoritesneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\Favorites\" 
98.
	$Pfadlinksneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\Links\" 
99.
	$Documentbuildingneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Document Building Blocks\" 
100.
	$Proofneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Proof\" 
101.
	$Signaturesneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Signatures\" 
102.
	$Templatesneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Templates\" 
103.
	$UProofneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\UProof\" 
104.
	$Officeneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Office\" 
105.
	$Systemcertificatesneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\SystemCertificates\" 
106.
	$Outlookneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Outlook\" 
107.
	$OfficeUIneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Local\Microsoft\Office\" 
108.
 
109.
 
110.
 Rechnerabfrage 
111.
 Username 
112.
 kopieren 
113.
 weiter
Bitte warten ..
Mitglied: colinardo
LÖSUNG 15.09.2014, aktualisiert um 10:40 Uhr
Also von deinem Function gebummsel, krieg ich Gänsehaut

Ich würde es in dieser Art zusammenfassen, Fehlerabfragen der jeweiligen Befehle fehlen hier aber natürlich noch, dafür habe ich jetzt gerade keine Zeit.
01.
 ##Clear Screen from old Output 
02.
cls 
03.
$wPowerShell=new-object -comobject wscript.shell 
04.
 
05.
$script:rechneralt = "" 
06.
$script:rechnerneu = "" 
07.
 
08.
#************************************************************Ausführung als Administrator************************************************************** 
09.
$id=[System.Security.Principal.WindowsIdentity]::GetCurrent() 
10.
$principal=New-Object System.Security.Principal.WindowsPrincipal($id) 
11.
if(!$principal.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)) { 
12.
 $powershell=[System.Diagnostics.Process]::GetCurrentProcess() 
13.
 $psi=New-Object System.Diagnostics.ProcessStartInfo $powershell.Path 
14.
 $script=$MyInvocation.MyCommand.Path 
15.
 $prm=$script 
16.
 foreach($a in $args) { 
17.
  $prm+=' '+$a 
18.
19.
 $psi.Arguments=$prm 
20.
 $psi.Verb="runas" 
21.
 [System.Diagnostics.Process]::Start($psi) | Out-Null 
22.
 return; 
23.
24.
 
25.
#************************************************************Definierte Funktionen Teil 1*************************************************************** 
26.
function CopyProfile ([bool]$newPC = $true) { 
27.
    if ($newPC){ 
28.
        $rechneralt = Read-Host "Name des bisheriger Rechners" 
29.
        $rechnerneu = Read-Host "Name des neuen Rechners" 
30.
        $script:rechneralt = $rechneralt 
31.
        $script:rechnerneu = $rechnerneu 
32.
    }else{ 
33.
        $rechneralt = $script:rechneralt 
34.
        $rechnerneu = $script:rechnerneu 
35.
36.
 
37.
    $Username = Read-Host "Zu kopierendes Benutzerkonto" 
38.
 
39.
    #*******************************************************Generierte Pfade aus Abfrage "Rechner alt"***************************************************** 
40.
	$PfadDesktopalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\Desktop\" 
41.
	$Pfadfavoritesalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\Favorites\" 
42.
	$Pfadlinksalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\Links\" 
43.
	$Documentbuildingalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Document Building Blocks\" 
44.
	$Proofalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Proof\" 
45.
	$Signaturesalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Signatures\" 
46.
	$Templatesalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Templates\" 
47.
	$UProofalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\UProof\" 
48.
	$Officealt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Office\" 
49.
	$Systemcertificatesalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\SystemCertificates\" 
50.
	$Outlookalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Outlook\" 
51.
	$OfficeUIalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Local\Microsoft\Office\" 
52.
 
53.
    #*******************************************************Kopiere in folgende Pfade zu "Rechner neu"***************************************************** 
54.
	$PfadDesktopneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\Desktop\" 
55.
	$Pfadfavoritesneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\Favorites\" 
56.
	$Pfadlinksneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\Links\" 
57.
	$Documentbuildingneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Document Building Blocks\" 
58.
	$Proofneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Proof\" 
59.
	$Signaturesneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Signatures\" 
60.
	$Templatesneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Templates\" 
61.
	$UProofneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\UProof\" 
62.
	$Officeneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Office\" 
63.
	$Systemcertificatesneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\SystemCertificates\" 
64.
	$Outlookneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Outlook\" 
65.
	$OfficeUIneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Local\Microsoft\Office\" 
66.
 
67.
    # copy -------- 
68.
    Copy-Item $PfadDesktopalt $Pfaddesktopneu -Recurse 
69.
	Copy-Item $Pfadfavoritesalt $Pfadfavoritesneu -Recurse 
70.
	Copy-Item $Pfadlinksalt $Pfadlinksneu -Recurse 
71.
	Copy-Item $Documentbuildingalt $Documentbuildingneu -Recurse 
72.
	Copy-Item $Proofalt $Proofneu -Recurse 
73.
	Copy-Item $Signaturesalt $Signaturesneu -Recurse 
74.
	Copy-Item $Templatesalt $Templatesneu -Recurse 
75.
	Copy-Item $UProofalt $UProofneu -Recurse 
76.
	Copy-Item $Officealt $Officeneu -Recurse 
77.
	Copy-Item $Systemcertificatesalt $Systemcertificatesneu -Recurse 
78.
	Copy-Item $Outlookalt $Outlookneu -Recurse 
79.
	Copy-Item $OfficeUIalt $OfficeUIneu -Recurse 
80.
81.
 
82.
CopyProfile 
83.
 
84.
While ($true){ 
85.
    $Wartezeit = 0 # Benutzer muss selbst die Schaltfläche betätigen 
86.
    $Schaltfläche = 4 # Schaltfläche Ja und Nein 
87.
    $Antwort=$wPowershell.popup("Kopiervorgang abgeschlossen. Soll ein weiteres Benutzerkonto kopiert werden?",$Wartezeit,"Weiterer Kopiervorgang",$Schaltfläche)  
88.
    if ($Antwort-eq 6) { # Fall "Ja" oder "Yes" gedrückt wurde... 
89.
        CopyProfile -newPC $false 
90.
    }else{ 
91.
        exit 
92.
93.
}
Bitte warten ..
Mitglied: complex
15.09.2014 um 10:40 Uhr
Wow - dankeschön
funktioniert einwandfrei!

Muss das jetzt mal auseinandernehmen und lernen
Bitte warten ..
Ähnliche Inhalte
VB for Applications
Abfrage über function bei vbs
gelöst Frage von RobertKaVB for Applications4 Kommentare

Hallo zusammen, habe ein vb Script, welches je nach Aufruf verschiedene Mails verschickt. Es funktioniert also schon. Und das ...

Visual Studio

C-Sharp Klasse als Parameter an Function übergeben

gelöst Frage von mayho33Visual Studio

Hallo @ All Ich beiße mir schon wieder die Zähne aus und hoffe aufs Neue auf eure Unterstützung mit ...

Lizenzierung

FlexLm Server Parameter abfragen

Frage von runner-ralfLizenzierung3 Kommentare

Hallo alle zusammen, ich weiß nicht ob ich hier richtig bin. Ich habe eine Frage zum FlexLM Tool. Ich ...

Batch & Shell

Weitergabe von Variablen in for-Schleifen

Frage von MFJustBatch & Shell1 Kommentar

Hallo, Ich versuche HTML Dateien in PDFs umzuwandeln (dies funktioniert) und diese dabei nach Teilen dieser HTML Datei umzubenennen ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgborn vor 11 StundenErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Windows 10

Windows 10 on ARM: von Microsoft entfernte Info - Klartext, was nicht geht

Information von kgborn vor 13 StundenWindows 10

Windows 10 on ARM ist ja eine neue Variante, die Microsoft im Verbund mit Geräteherstellern am Markt etablieren will. ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgborn vor 13 StundenMicrosoft7 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 2 TagenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Heiß diskutierte Inhalte
Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1026 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Firewall
RB2011 Firewall Rule eine bestimmte Mac oder IP Adresse nicht zu blockieren
Frage von lightmanFirewall15 Kommentare

Hallo liebes Forum mit ihren Spezialisten. Ich habe meine Firewall so konfiguriert das kein Endgerät ohne meine Speziellen Erlaubnis ...

Humor (lol)
Was könnte man mit einem Server machen? Idee gesucht
Frage von 2SeitenHumor (lol)15 Kommentare

Hey Zusammen Ich habe einen alten HP G2 Rackserver zu Hause rumliegen. 28GB Ram, 1xAMD Prozi mit etwa 2GHz. ...

Webbrowser
Welcher Browser ist der Beste?
Frage von justtinWebbrowser13 Kommentare

Hallo Leute Ich habe eine interessante Frage. Mich wurde mal interessieren welcher Browser ist eure meinung nach der beste? ...