none
invoke-command mit credentails Parameter für lokale Ausführung RRS feed

  • Frage

  • Hallo,

    Ich brauche während dem OSD auf dem Client alle verfügbaren Domain Controller.

    Mache ich mit  $DC= (nltest /dclist:xxx.local)  und dann DC namen extrahieren.
    Leider brauche ich dafür mehr rechte wärend der Installation.

    Also mit dem Invoke-command..allerdings macht der Lokal Probleme:
    http://connect.microsoft.com/PowerShell/feedback/details/676872/invoke-command-parameter-bug-parameter-set-cannot-be-resolved

    $passwd = convertto-securestring -AsPlainText -String "xxxxx" -Force
    $Cred=New-Object system.Management.Automation.PSCredential("xxxxxx\SA_xxx", $passwd)
    Enable-PSRemoting -Force
    invoke-command -Computer localhost -Scriptblock {$DC= (nltest /dclist:xxxxxx.local)} -Credential $cred

    Leider gibt es hier auch einen Fehler. Scheinbar Rechte Problem.
    Wie kann ich den aktuellen User die Rechte geben?
    Irgendwie mit  Set-PSSessionConfiguration -Name Microsoft.PowerShell   ......

    Hat jemand eine Idee zur Lösung? Oder naderen Ansatz?

    Frank

    Donnerstag, 15. Mai 2014 09:47

Antworten

Alle Antworten

  • Du richtes mit Enable-PSRemoting -Force das Remoting ein, das dürfen nur Administratoren!
    Deshalb vermute ich das der Prozess mit Administrativen Rechten läuft!?

    Per default dürfen nur Administratoren PowerShell remoting nutzen.

    Der Domänen Account den du für Invoke-Command benutzt muss also Administrator auf dem Localhost sein oder du Trägst ihn (kurzfristig) in die Gruppe der lokalen Adminiostratoren ein.

    Die Rechte sich Remote zu verbinden sind an der session configuration dem endpoint festgemacht.
    An dem Endpoint wird mit der Security Descriptor Definition Language (SDDL) festgelegt wer sich verbinden darf und wer nicht.

    Schau dir den das Cmdlet Set-PSSessionConfiguration an!

    Per default verbindet sich PowerShell immer mit dem Endpoint: Microsoft.PowerShell

    Die Rechte kannst du auch mit einer Grafischen Benutzeroberfläche setzen:

    Set-PSSessionConfiguration -Name Microsoft.PowerShell -showSecurityDescriptorUI


    PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
    auf der deutschsprachigen PowerShell Community

    Mein 21 Teiliger PowerShell Video Grundlehrgang
    Deutsche PowerShell Videos auf Youtube
    Folge mir auf:
    Twitter | Facebook | Google+

    Donnerstag, 15. Mai 2014 10:36
  • Hallo Peter,

    danke für deine Antwort.

    Das mit PSRemoting -Force habe ich erstmal nur lokal getestet.....

    Während der Installation ist SYSTEM aktiv.

    Das mit -showSecurityDescriptorUI ist klar. Hier wäre hilfe gut....Beispiel

    Wie erhalte ich die aktuellen User SDDL ?

    Frank

    Donnerstag, 15. Mai 2014 11:23
  • Ich würds so machen.

    Alles mit Adminrechten ausführen!

    Nimm dir einen Testrechner Führe den befehl aus und Erlaube den user das Remoting:

    Set-PSSessionConfiguration -Name Microsoft.PowerShell -showSecurityDescriptorUI

    Danach liest du mit dem folgenden Befehl dir SDDL wieder aus ;-)

    Get-PSSessionConfiguration -Name microsoft.powershell | Select SecurityDescriptorSddl

    Nun kannst du die SDDL Kopieren und mit dem folgenden Befehl in deinem Script Setzen (SDDL Beispieldaten!)
    Set-PSSessionConfiguration -SecurityDescriptorSddl 'O:NSG:BAD:P(A;;GA;;;BA)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)'


    PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
    auf der deutschsprachigen PowerShell Community

    Mein 21 Teiliger PowerShell Video Grundlehrgang
    Deutsche PowerShell Videos auf Youtube
    Folge mir auf:
    Twitter | Facebook | Google+

    Donnerstag, 15. Mai 2014 12:54