Zum Inhalt wechseln


Foto

funktionen per ps nutzen


  • Bitte melde dich an um zu Antworten
37 Antworten in diesem Thema

#1 mfdoom

mfdoom

    Senior Member

  • 378 Beiträge

 

Geschrieben 02. Juli 2012 - 12:44

Guten Tag liebes Board,

ich habe mir aus dem I-Net 2 ps-Skripte heruntergeladen mit denen ich versuche lokale Benutzer auf remoten Server innerhalb meiner Domäne zu erzeugen. Ich weiß allerdings nicht genau wie ich die Skripte mit der ps aufrufen kann um sie für meine Zwecke zu nutzen. Wie kann ich denn die selbsterstellten Funktionen in den Skripten auf der ps aufrufen? Wenn ich die Skripte ausführe, passiert nichts. Irgendwie muss ich die Funktionen ja dann in der ps aufrufen können, nur leider ist mir nicht klar wie...

Danke für die Hilfe.

Angehängte Dateien


Simon-Timothy

#2 PowerShellAdmin

PowerShellAdmin

    Board Veteran

  • 1.136 Beiträge

 

Geschrieben 02. Juli 2012 - 12:58

also du hast einen PowerShell Skript oder mehre.
Angenommen du hast einen Skript, dann müssen die Funktionen oberhalb des Funktionsaufrufs in folgender Topologie stehen:

[Skript Header]
[Funktion1..]
[Funktion4...]
[Aufruf der Funktion]

Der Aufruf der Funktion unterscheidet sich, je nach dem ob du Werte übergibst - z.B. Login, Passwort usw.

function newuser($login, $userpassword)
{
...
}

Hier der Aufruf:
newuser (Mueller, Supersicher)

Grüße Admin

Zusätzlich kannst du im Skript die Variablen definieren - z.B. ob diese nur in der Funktion, diesem Skript oder insgesamt verfügbar sind.

#3 mfdoom

mfdoom

    Senior Member

  • 378 Beiträge

 

Geschrieben 02. Juli 2012 - 12:59

ich habe herausgefunden dass ich die erzeugten funktionen einfach innerhalb der powershell mit ihrem namen aufrufen kann. ich meine jetzt sollte ich auch hinbekommen die benutzer zu erzeugen.

:rolleyes:
Simon-Timothy

#4 mfdoom

mfdoom

    Senior Member

  • 378 Beiträge

 

Geschrieben 02. Juli 2012 - 13:05

Hmm, ich bekomme von der ps die Meldung dass es meine Funktion namens "Create-UserFromList" nicht gibt, obwohl ich sehe das wie im Skript exakt mit diesem Namen erzeugt wird.

Create-UserFromList : Die Benennung "Create-UserFromList" wurde nicht als Name eines Cmdlet, einer Funktion, einer
Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt
ist (sofern enthalten), und wiederholen Sie den Vorgang.


Was mache ich falsch?
Simon-Timothy

#5 Dukel

Dukel

    Board Veteran

  • 9.313 Beiträge

 

Geschrieben 02. Juli 2012 - 13:07

Was sagt "get-command Create-UserFromList" ?

Stop making stupid people famous.


#6 PowerShellAdmin

PowerShellAdmin

    Board Veteran

  • 1.136 Beiträge

 

Geschrieben 02. Juli 2012 - 13:08

Hast du meinen Post gelesen ?
Im Skript muss erst die Funktion stehen, danach kannst du diese aufrufen.

#7 mfdoom

mfdoom

    Senior Member

  • 378 Beiträge

 

Geschrieben 02. Juli 2012 - 13:15

also du hast einen PowerShell Skript oder mehre.
Angenommen du hast einen Skript, dann müssen die Funktionen oberhalb des Funktionsaufrufs in folgender Topologie stehen:

[Skript Header]
[Funktion1..]
[Funktion4...]
[Aufruf der Funktion]

Der Aufruf der Funktion unterscheidet sich, je nach dem ob du Werte übergibst - z.B. Login, Passwort usw.

function newuser($login, $userpassword)
{
...
}

Hier der Aufruf:
newuser (Mueller, Supersicher)

Grüße Admin

Zusätzlich kannst du im Skript die Variablen definieren - z.B. ob diese nur in der Funktion, diesem Skript oder insgesamt verfügbar sind.


Hmm, ich versuche das zu verstehen kann aber nicht ganz folgen:

Innerhalb des skripts stehen die funktionen die ich benutzen möchte. Ich habe mal testweise direkt auf der ps eine funktion erzeugt und die dann im anschluss benutzt, das funktioniert auch. wenn ich aber die skripte ausführe dann kann ich im anschluss nicht die funktionen die darin deklariert sind benutzen. oder muss ich das skript angeben und dann gleichzeitig sagen was ich machen möchte? das eine skript benutzt zudem eine funktion die in dem anderen skript deklariert ist.
Simon-Timothy

#8 mfdoom

mfdoom

    Senior Member

  • 378 Beiträge

 

Geschrieben 02. Juli 2012 - 13:17

Was sagt "get-command Create-UserFromList" ?


Es kommt genau die gleiche Fehlermeldung, scheinbar kennt die ps-session nicht die funktion die ich nutzen will.:confused:
Simon-Timothy

#9 Dukel

Dukel

    Board Veteran

  • 9.313 Beiträge

 

Geschrieben 02. Juli 2012 - 13:17

Wenn du ein Script aufrufst und die enthaltenen Funktionien nutzen willst musst du das Script mit ". " davor aufrufen (dot sourced).

Stop making stupid people famous.


#10 mfdoom

mfdoom

    Senior Member

  • 378 Beiträge

 

Geschrieben 02. Juli 2012 - 13:19

Hast du meinen Post gelesen ?
Im Skript muss erst die Funktion stehen, danach kannst du diese aufrufen.


In beiden Skripten ist lediglich die Funktion deklariert - mehr nicht. Ich dachte jetzt dass ich der ps die beiden skripte ausführen lasse und danach die funktionen die darin enthalten sind nutzen kann, z.B. die Funktion "Create-UserFromList".
Simon-Timothy

#11 mfdoom

mfdoom

    Senior Member

  • 378 Beiträge

 

Geschrieben 02. Juli 2012 - 13:20

Wenn du ein Script aufrufst und die enthaltenen Funktionien nutzen willst musst du das Script mit ". " davor aufrufen (dot sourced).


genau das habe ich auch gelsen und das skript entsprechend dot sourced ausgeführt, trotzdem passiert nichts. vielleicht weil in dem skript nichts weiter als die funktion steht?
Simon-Timothy

#12 Dukel

Dukel

    Board Veteran

  • 9.313 Beiträge

 

Geschrieben 02. Juli 2012 - 13:22

Poste mal hier dein eigenes Script.

Stop making stupid people famous.


#13 mfdoom

mfdoom

    Senior Member

  • 378 Beiträge

 

Geschrieben 02. Juli 2012 - 13:26

Poste mal hier dein eigenes Script.


Die angehängten Dateien warten auf die Freigabe eines Admins. Kann ich die Skripte einfach hier reinposten?
Simon-Timothy

#14 Dukel

Dukel

    Board Veteran

  • 9.313 Beiträge

 

Geschrieben 02. Juli 2012 - 13:33

Poste das doch einfach als Text. Sollte ja nicht so viel sein. (die Funktionen selbst interessieren nicht).

Stop making stupid people famous.


#15 mfdoom

mfdoom

    Senior Member

  • 378 Beiträge

 

Geschrieben 02. Juli 2012 - 13:50

Poste das doch einfach als Text. Sollte ja nicht so viel sein. (die Funktionen selbst interessieren nicht).


Ich habe kein skript nur ein einzeiler indem ich versuche die funktionen (die in 2 skripten enthalten sind) zu nutzen, z.B. so:

Create-UserFromList c:\dateimitusern.csv

:confused:

Wenn ich beide Skripte mit .\script1.ps1 und .\script2.ps1 vorhergehend aufrufe dann erhalte ich keine (fehler)meldung von der ps und möchte dann die durch die skripte deklarierte funktion Create-UserFromList mit Angabe der csv-Datei starten. Oder geht das so gar nicht?

Ich habe testweise eine funktion direkt auf der ps erstellt und nicht ein skript aufgerufen was eine funktion erzeugt und das funktioniert auch einwandfrei.
Simon-Timothy