complex
Goto Top

Abfrage function und weitergabe der Parameter

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

Content-ID: 249183

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

Ausgedruckt am: 05.11.2024 um 22:11 Uhr

colinardo
Lösung colinardo 15.09.2014 aktualisiert um 10:22:43 Uhr
Goto Top
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
#Scriptvariablen vor Verwendung definieren
$script:rechneralt = ""  
$script:rechnerneu = ""  

function Rechnerabfrage {
   $script:rechneralt = Read-Host "Name des bisheriger Rechners"  
   $script:rechnerneu = Read-Host "Name des neuen Rechners"  
}

#Funktion aufrufen
Rechnerabfrage

#Variablen ausgeben
write-host $script:rechneralt
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
function Rechnerabfrage {
    # Hashtable für mehrere Werte erzeugen
    $ht = @{}
    $ht.rechneralt = Read-Host "Name des bisheriger Rechners"  
    $ht.rechnerneu = Read-Host "Name des neuen Rechners"  
    # Hashtable aus der Funktion zurückgeben
    return $ht
}
# Funktion ausführen und Werte übergeben
$result = Rechnerabfrage

#Ausgabe der Variablen
write-host $result.rechneralt
write-host $result.rechnerneu
Grüße Uwe

p.s. Bitte nutze Code-Tags für deinen Quellcode: <code> Quellcode </code>. Merci.
complex
complex 15.09.2014 aktualisiert um 09:42:31 Uhr
Goto Top
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:

 ##Clear Screen from old Output
cls

#************************************************************Ausführung als Administrator**************************************************************
$id=[System.Security.Principal.WindowsIdentity]::GetCurrent()
$principal=New-Object System.Security.Principal.WindowsPrincipal($id)
if(!$principal.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)) {
 $powershell=[System.Diagnostics.Process]::GetCurrentProcess()
 $psi=New-Object System.Diagnostics.ProcessStartInfo $powershell.Path
 $script=$MyInvocation.MyCommand.Path
 $prm=$script
 foreach($a in $args) {
  $prm+=' '+$a  
 }
 $psi.Arguments=$prm
 $psi.Verb="runas"  
 [System.Diagnostics.Process]::Start($psi) | Out-Null
 return;
}

#************************************************************Definierte Funktionen Teil 1***************************************************************
function Rechnerabfrage
	{
   $script:rechneralt = Read-Host "Name des bisheriger Rechners"  
   $script:rechnerneu = Read-Host "Name des neuen Rechners"  
}

#Funktion aufrufen Rechnerabfrage

#Variablen ausgeben
write-host $script:rechneralt
write-host $script:rechnerneu

function Userabfrage
	{
	#Abfrage des zu kopierenden Benutzerkontos
	$script:Username = Read-Host "Benutzernamen eingeben"  
	Write-Host "Kopieren wird gestartet"  
	}
	
	#Scriptvariablen definieren
	$script:rechneralt = ""  
	$script:rechnerneu = ""  
#*******************************************************Generierte Pfade aus Abfrage "Rechner alt"***************************************************** 
	$PfadDesktopalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\Desktop\"  
	$Pfadfavoritesalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\Favorites\"  
	$Pfadlinksalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\Links\"  
	$Documentbuildingalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Document Building Blocks\"  
	$Proofalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Proof\"  
	$Signaturesalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Signatures\"  
	$Templatesalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Templates\"  
	$UProofalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\UProof\"  
	$Officealt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Office\"  
	$Systemcertificatesalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\SystemCertificates\"  
	$Outlookalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Outlook\"  
	$OfficeUIalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Local\Microsoft\Office\"  

#*******************************************************Kopiere in folgende Pfade zu "Rechner neu"***************************************************** 
	$PfadDesktopneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\Desktop\"  
	$Pfadfavoritesneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\Favorites\"  
	$Pfadlinksneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\Links\"  
	$Documentbuildingneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Document Building Blocks\"  
	$Proofneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Proof\"  
	$Signaturesneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Signatures\"  
	$Templatesneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Templates\"  
	$UProofneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\UProof\"  
	$Officeneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Office\"  
	$Systemcertificatesneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\SystemCertificates\"  
	$Outlookneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Outlook\"  
	$OfficeUIneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Local\Microsoft\Office\"  

#************************************************************Definierte Funktionen Teil 2**************************************************************
function Kopieren
{
	Copy-Item $PfadDesktopalt $Pfaddesktopneu -Recurse
	Copy-Item $Pfadfavoritesalt $Pfadfavoritesneu -Recurse
	Copy-Item $Pfadlinksalt $Pfadlinksneu -Recurse
	Copy-Item $Documentbuildingalt $Documentbuildingneu -Recurse
	Copy-Item $Proofalt $Proofneu -Recurse
	Copy-Item $Signaturesalt $Signaturesneu -Recurse
	Copy-Item $Templatesalt $Templatesneu -Recurse
	Copy-Item $UProofalt $UProofneu -Recurse
	Copy-Item $Officealt $Officeneu -Recurse
	Copy-Item $Systemcertificatesalt $Systemcertificatesneu -Recurse
	Copy-Item $Outlookalt $Outlookneu -Recurse
	Copy-Item $OfficeUIalt $OfficeUIneu -Recurse
}
function weiter
{
 $wPowerShell=new-object -comobject wscript.shell

 $Wartezeit = 0 # Benutzer muss selbst die Schaltfläche betätigen
 $Schaltfläche = 4 # Schaltfläche Ja und Nein

 $Antwort=$wPowershell.popup("Kopiervorgang abgeschlossen. Soll ein weiteres Benutzerkonto kopiert werden?",$Wartezeit,"Weiterer Kopiervorgang",$Schaltfläche)   

#*********************************************************************Abfrage starten****************************************************************
 if ($Antwort-eq 6) # Fall "Ja" oder "Yes" gedrückt wurde... 
 {
 Userabfrage
 Kopieren
 weiter
 }
 }
 Rechnerabfrage
 Userabfrage
 Kopieren
 weiter
 
__________________________________________________________________________________________________________

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 ;(
colinardo
colinardo 15.09.2014 aktualisiert um 09:40:52 Uhr
Goto Top
Habe dir oben dazu Beispiele nachgereicht face-smile
complex
complex 15.09.2014 um 10:13:12 Uhr
Goto Top
Habe die Abfragen soweit hinbekommen, allerdings startet er die "kopieren"-function nicht, sondern fragt mich direkt wieder, wie der alte Rechner heisst.

 ##Clear Screen from old Output
cls

#************************************************************Ausführung als Administrator**************************************************************
$id=[System.Security.Principal.WindowsIdentity]::GetCurrent()
$principal=New-Object System.Security.Principal.WindowsPrincipal($id)
if(!$principal.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)) {
 $powershell=[System.Diagnostics.Process]::GetCurrentProcess()
 $psi=New-Object System.Diagnostics.ProcessStartInfo $powershell.Path
 $script=$MyInvocation.MyCommand.Path
 $prm=$script
 foreach($a in $args) {
  $prm+=' '+$a  
 }
 $psi.Arguments=$prm
 $psi.Verb="runas"  
 [System.Diagnostics.Process]::Start($psi) | Out-Null
 return;
}

#************************************************************Definierte Funktionen Teil 1***************************************************************
function Rechnerabfrage {
    # Hashtable für mehrere Werte erzeugen
    $ht = @{}
    $ht.rechneralt = Read-Host "Name des bisheriger Rechners"  
    $ht.rechnerneu = Read-Host "Name des neuen Rechners"  
    # Hashtable aus der Funktion zurückgeben
    return $ht
}
# Funktion ausführen und Werte übergeben
$result = Rechnerabfrage


function Username {
    # Hashtable für mehrere Werte erzeugen
    $ht = @{}
    $ht.Username = Read-Host "Zu kopierendes Benutzerkonto"  
    # Hashtable aus der Funktion zurückgeben
    return $ht
}
# Funktion ausführen und Werte übergeben
$result = Username


Write-Host "Kopieren wird gestartet"  
	
#************************************************************Definierte Funktionen Teil 2**************************************************************
function Kopieren
{
	Copy-Item $PfadDesktopalt $Pfaddesktopneu -Recurse
	Copy-Item $Pfadfavoritesalt $Pfadfavoritesneu -Recurse
	Copy-Item $Pfadlinksalt $Pfadlinksneu -Recurse
	Copy-Item $Documentbuildingalt $Documentbuildingneu -Recurse
	Copy-Item $Proofalt $Proofneu -Recurse
	Copy-Item $Signaturesalt $Signaturesneu -Recurse
	Copy-Item $Templatesalt $Templatesneu -Recurse
	Copy-Item $UProofalt $UProofneu -Recurse
	Copy-Item $Officealt $Officeneu -Recurse
	Copy-Item $Systemcertificatesalt $Systemcertificatesneu -Recurse
	Copy-Item $Outlookalt $Outlookneu -Recurse
	Copy-Item $OfficeUIalt $OfficeUIneu -Recurse
}
function weiter
{
 $wPowerShell=new-object -comobject wscript.shell

 $Wartezeit = 0 # Benutzer muss selbst die Schaltfläche betätigen
 $Schaltfläche = 4 # Schaltfläche Ja und Nein

 $Antwort=$wPowershell.popup("Kopiervorgang abgeschlossen. Soll ein weiteres Benutzerkonto kopiert werden?",$Wartezeit,"Weiterer Kopiervorgang",$Schaltfläche)   

#*********************************************************************Abfrage starten****************************************************************
 if ($Antwort-eq 6) # Fall "Ja" oder "Yes" gedrückt wurde... 
 {
 Username	
 Kopieren		
 weiter
 }
 }

#*******************************************************Generierte Pfade aus Abfrage "Rechner alt"***************************************************** 
	$PfadDesktopalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\Desktop\"  
	$Pfadfavoritesalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\Favorites\"  
	$Pfadlinksalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\Links\"  
	$Documentbuildingalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Document Building Blocks\"  
	$Proofalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Proof\"  
	$Signaturesalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Signatures\"  
	$Templatesalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Templates\"  
	$UProofalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\UProof\"  
	$Officealt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Office\"  
	$Systemcertificatesalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\SystemCertificates\"  
	$Outlookalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Outlook\"  
	$OfficeUIalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Local\Microsoft\Office\"  

#*******************************************************Kopiere in folgende Pfade zu "Rechner neu"***************************************************** 
	$PfadDesktopneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\Desktop\"  
	$Pfadfavoritesneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\Favorites\"  
	$Pfadlinksneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\Links\"  
	$Documentbuildingneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Document Building Blocks\"  
	$Proofneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Proof\"  
	$Signaturesneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Signatures\"  
	$Templatesneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Templates\"  
	$UProofneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\UProof\"  
	$Officeneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Office\"  
	$Systemcertificatesneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\SystemCertificates\"  
	$Outlookneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Outlook\"  
	$OfficeUIneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Local\Microsoft\Office\"  


 Rechnerabfrage
 Username
 kopieren
 weiter
colinardo
Lösung colinardo 15.09.2014 aktualisiert um 10:40:02 Uhr
Goto Top
Also von deinem Function gebummsel, krieg ich Gänsehaut face-wink

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.
 ##Clear Screen from old Output
cls
$wPowerShell=new-object -comobject wscript.shell

$script:rechneralt = ""  
$script:rechnerneu = ""  

#************************************************************Ausführung als Administrator**************************************************************
$id=[System.Security.Principal.WindowsIdentity]::GetCurrent()
$principal=New-Object System.Security.Principal.WindowsPrincipal($id)
if(!$principal.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)) {
 $powershell=[System.Diagnostics.Process]::GetCurrentProcess()
 $psi=New-Object System.Diagnostics.ProcessStartInfo $powershell.Path
 $script=$MyInvocation.MyCommand.Path
 $prm=$script
 foreach($a in $args) {
  $prm+=' '+$a  
 }
 $psi.Arguments=$prm
 $psi.Verb="runas"  
 [System.Diagnostics.Process]::Start($psi) | Out-Null
 return;
}

#************************************************************Definierte Funktionen Teil 1***************************************************************
function CopyProfile ([bool]$newPC = $true) {
    if ($newPC){
        $rechneralt = Read-Host "Name des bisheriger Rechners"  
        $rechnerneu = Read-Host "Name des neuen Rechners"  
        $script:rechneralt = $rechneralt
        $script:rechnerneu = $rechnerneu
    }else{
        $rechneralt = $script:rechneralt
        $rechnerneu = $script:rechnerneu
    }

    $Username = Read-Host "Zu kopierendes Benutzerkonto"  

    #*******************************************************Generierte Pfade aus Abfrage "Rechner alt"***************************************************** 
	$PfadDesktopalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\Desktop\"  
	$Pfadfavoritesalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\Favorites\"  
	$Pfadlinksalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\Links\"  
	$Documentbuildingalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Document Building Blocks\"  
	$Proofalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Proof\"  
	$Signaturesalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Signatures\"  
	$Templatesalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Templates\"  
	$UProofalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\UProof\"  
	$Officealt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Office\"  
	$Systemcertificatesalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\SystemCertificates\"  
	$Outlookalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Outlook\"  
	$OfficeUIalt = "\\"+$rechneralt+"\C$\Users\"+$Username+"\AppData\Local\Microsoft\Office\"  

    #*******************************************************Kopiere in folgende Pfade zu "Rechner neu"***************************************************** 
	$PfadDesktopneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\Desktop\"  
	$Pfadfavoritesneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\Favorites\"  
	$Pfadlinksneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\Links\"  
	$Documentbuildingneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Document Building Blocks\"  
	$Proofneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Proof\"  
	$Signaturesneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Signatures\"  
	$Templatesneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Templates\"  
	$UProofneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\UProof\"  
	$Officeneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Office\"  
	$Systemcertificatesneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\SystemCertificates\"  
	$Outlookneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Roaming\Microsoft\Outlook\"  
	$OfficeUIneu = "\\"+$rechnerneu+"\C$\Users\"+$Username+"\AppData\Local\Microsoft\Office\"  

    # copy --------
    Copy-Item $PfadDesktopalt $Pfaddesktopneu -Recurse
	Copy-Item $Pfadfavoritesalt $Pfadfavoritesneu -Recurse
	Copy-Item $Pfadlinksalt $Pfadlinksneu -Recurse
	Copy-Item $Documentbuildingalt $Documentbuildingneu -Recurse
	Copy-Item $Proofalt $Proofneu -Recurse
	Copy-Item $Signaturesalt $Signaturesneu -Recurse
	Copy-Item $Templatesalt $Templatesneu -Recurse
	Copy-Item $UProofalt $UProofneu -Recurse
	Copy-Item $Officealt $Officeneu -Recurse
	Copy-Item $Systemcertificatesalt $Systemcertificatesneu -Recurse
	Copy-Item $Outlookalt $Outlookneu -Recurse
	Copy-Item $OfficeUIalt $OfficeUIneu -Recurse
}

CopyProfile

While ($true){
    $Wartezeit = 0 # Benutzer muss selbst die Schaltfläche betätigen
    $Schaltfläche = 4 # Schaltfläche Ja und Nein
    $Antwort=$wPowershell.popup("Kopiervorgang abgeschlossen. Soll ein weiteres Benutzerkonto kopiert werden?",$Wartezeit,"Weiterer Kopiervorgang",$Schaltfläche)   
    if ($Antwort-eq 6) { # Fall "Ja" oder "Yes" gedrückt wurde... 
        CopyProfile -newPC $false
    }else{
        exit
    }
}
complex
complex 15.09.2014 um 10:40:53 Uhr
Goto Top
Wow - dankeschön face-smile
funktioniert einwandfrei!

Muss das jetzt mal auseinandernehmen und lernen face-smile