Dukel 454 Geschrieben 2. Juli 2012 Melden Teilen Geschrieben 2. Juli 2012 . .\script1.ps1 Entweder hast du einen Einzeiler ohne davor die funktionen zu laden oder kannst deine 3 Zeilen Posten. Versuche das obige und entsprechend dann das mit script2.ps1. Zitieren Link zu diesem Kommentar
mfdoom 10 Geschrieben 2. Juli 2012 Autor Melden Teilen Geschrieben 2. Juli 2012 ich habe die funktionen jetzt direkt in die Eingabeteile der ps eingegeben - jetzt funktioniert das benutzen der funktionen auch.... Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 2. Juli 2012 Melden Teilen Geschrieben 2. Juli 2012 Wieso postet du nicht einfach alles, was du in die Powershell reinhackst? Wieso versuchst du es nicht mit ". .\..."? Zitieren Link zu diesem Kommentar
mfdoom 10 Geschrieben 2. Juli 2012 Autor Melden Teilen Geschrieben 2. Juli 2012 Wieso postet du nicht einfach alles, was du in die Powershell reinhackst? Wieso versuchst du es nicht mit ". .\..."? Hallo nochmal, danke für deine Geduld: Ich poste mal alles was ich versuche: p.s.: mit .\ habe ich es probiert - ich sehe aber keine Fehlermeldung oder sonstwas. Inhalt von Createaccount.ps1: function Create-Account ([string]$1, [string]$2, [string]$3, [string]$4, [string]$5) { if(-not $5) { Write-Host "Fehler! Die Funktion muss mit fünf Parametern aufgerufen werden!" Write-Host "Die Parameter sind:" Write-Host "Benutzername`nPasswort`nVollständiger Name`nBeschreibung`nGruppenliste" Write-Host "Die Werte müssen in Anführungszeichen gesetzt werden." Write-Host "Die Gruppenliste muss mit Kommata getrennt eingegeben werden." } else { #Benutzer anlegen #Prüfen, ob der User schon existiert. $arrAccounts = (Get-WmiObject Win32_UserAccount -ComputerName $env:COMPUTERNAME | Select-Object -ExpandProperty Name) $found = $arrAccounts -contains $1 if(-not $found) { $objComp = [adsi]"WinNT://$env:ComputerName" $objUser = $objComp.Create("User", $1) $objUser.SetPassword($2) $objUser.put("FullName",$3) $objUser.put("Description", $4) $objUser.PasswordExpired = 1 $objUser.SetInfo() Write-Host "Benutzer $1 angelegt. Weise Gruppen zu." } else { Write-Host "Benutzer $1 wurde nicht angelegt, weil er schon existiert. Weise Gruppen zu." } #Gruppen zuweisen $groups = $5.split(",") foreach($group in $groups) { $groupExists = (Get-WmiObject Win32_Group -ComputerName $env:COMPUTERNAME | Where-Object {$_.Name -eq $group}) if($groupExists) { $username = "" $username = "WinNT://$env:ComputerName/$1" $objGroup_to_add = [adsi]"WinNT://$env:ComputerName/$group" $userExists = (Get-WmiObject Win32_GroupUser -ComputerName $env:COMPUTERNAME | Where-Object {($_.groupcomponent -match ".*Name=`"$group.*") -and ($_.partcomponent -match ".*Name=`"$1.*") }) if($userExists) { Write-Host "Benutzer $1 wurde nicht der Gruppe $group hinzugefügt, da er schon Mitglied ist." } else { $objGroup_to_add.add($username) $objGroup_to_add.SetInfo() Write-Host "$1 der Gruppe $group zugewiesen." } } else { Write-Host "Fehler! $1 wurde nicht $group zugewiesen, da $group nicht existiert." } } } } Zitieren Link zu diesem Kommentar
mfdoom 10 Geschrieben 2. Juli 2012 Autor Melden Teilen Geschrieben 2. Juli 2012 Inhalt von createusersfromlist.ps1: function Create-UserFromList($1) { # Test, ob die Datei existiert. Das macht der Befehl Test-Path if(Test-Path($1)) { $arrUsers = Get-Content $1 $i = 1 #Zählervariable für die Zeile foreach($user in $arrUsers) { # Aufteilen der Zeile am Semikolon. # Das Skript funktioniert nicht, # wenn das Passwort ein Semikolon enthält. :( $arrUserinfo = $user.split(";") # Nur wenn das Array genau fünf Elemente enthält, # dann wird die Zeile verarbeitet. if($arrUserinfo.length -eq 5) { Create-Account $arrUserinfo[0] $arrUserinfo[1] ` $arrUserinfo[2] $arrUserinfo[3] $arrUserinfo[4] } else { # Sonst gibt es eine Fehlermeldung Write-Host "Fehler in Zeile $i" foreach($info in $arrUserinfo) { # Und wir geben die Zeile # gleich wieder mit Semikola getrennt aus. Write-Host -NoNewline "$info;" } # Nach der Verarbeitung des Arrays # muss die Zeile noch umgebrochen werden. Write-Host "`n" } $i++ # Zeilennummer hochzählen } } else { Write-Host "Datei $1 nicht existent." } } Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 2. Juli 2012 Melden Teilen Geschrieben 2. Juli 2012 Nochmal: Punkt Leerzeichen Punkt Backslash Scriptname.ps1 Poste einmal genau das was du in der Powershell CLI reinhaust ohne die Funktionen selbst. Zitieren Link zu diesem Kommentar
mfdoom 10 Geschrieben 2. Juli 2012 Autor Melden Teilen Geschrieben 2. Juli 2012 Das ist das was ich an der ps eingebe: Create-UserFromList .\meineliste.csv Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 2. Juli 2012 Melden Teilen Geschrieben 2. Juli 2012 Und davor? Wie lädst du die externen Powershell Scripte??? Zitieren Link zu diesem Kommentar
mfdoom 10 Geschrieben 2. Juli 2012 Autor Melden Teilen Geschrieben 2. Juli 2012 Die externen Powershellskripte lade ich: . .\script1.csv [Enter] . .\script2.csv [Enter] Dann kann ich auch die Funktion Create-UserFromList benutzen. Leider bekomme ich dann die Rückmeldung dass ich keine Berechtigungen habe mit "Zugriff verweigert". Zitieren Link zu diesem Kommentar
mfdoom 10 Geschrieben 2. Juli 2012 Autor Melden Teilen Geschrieben 2. Juli 2012 Kann das etwas mit ExecutionPolicy zu tun haben? Die steht bei mir auf remotesigned. Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 2. Juli 2012 Melden Teilen Geschrieben 2. Juli 2012 Poste bitte die komplette Fehlermeldung. Zitieren Link zu diesem Kommentar
mfdoom 10 Geschrieben 2. Juli 2012 Autor Melden Teilen Geschrieben 2. Juli 2012 Get-Content : Der Zugriff auf den Pfad "C:\Users\nichtsoschlau.domain\Desktop" wurde verweigert. In C:\Users\nichtsoschlau.domain\Desktop\createusersfromlist.ps1:14 Zeichen:21 + $arrUsers = Get-Content $1 + ~~~~~~~~~~~~~~ + CategoryInfo : PermissionDenied: (C:\Users\nichtsoschlau.domain\Desktop:String) [Get-Content], UnauthorizedAccessExce ption + FullyQualifiedErrorId : GetContentReaderUnauthorizedAccessError,Microsoft.PowerShell.Commands.GetContentCommand Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 2. Juli 2012 Melden Teilen Geschrieben 2. Juli 2012 Keine Rechte auf die csv Datei. Zitieren Link zu diesem Kommentar
mfdoom 10 Geschrieben 3. Juli 2012 Autor Melden Teilen Geschrieben 3. Juli 2012 Dank Dir, die Rechte passen nun auf die Datei und die Benutzer werden angelegt. Jetzt werde ich noch herausfinden wie ich lokale und keine Domänenbenutzer einrichte. Das sollte nicht allzu schwierig sein. Dankeschön. Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 3. Juli 2012 Melden Teilen Geschrieben 3. Juli 2012 Wieso sollte man Lokale nutzer anlegen wollen? Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.