2016-05-27 1 views
0

Ich habe ein kleines .ps1-Skript geschrieben, das einfache Befehle automatisiert, um Probleme mit dem Standarddrucker auf dem Computer eines Endbenutzers zu beheben. Wie kann ich Anmeldeinformationen in diesem Skript übergeben, sodass es immer mit erhöhten Rechten ausgeführt wird?Wie kann ich die Weitergabe von Administratoranmeldeinformationen in einem PowerShell-Skript vollständig automatisieren?

Dies würde in vielen verschiedenen Domänen verwendet werden, aber der Benutzername/das Kennwort für den Administrator sind auf allen Computern konsistent. Ich sah eine ähnliche Frage here, aber die Methoden entweder das Speichern des Passworts als .xml und dann das Abrufen (was würde das Passwort für den Nicht-Administrator sichtbar machen), oder die Methode würde einfach nicht für mich arbeiten; vielleicht war es meine Hinrichtung? Normalerweise wäre es mir nicht behagen, Administratorrechte in einfachen Text zu schreiben, aber das Skript wird nicht wirklich auf dem Computer des Endbenutzers gespeichert, sondern nur im Hintergrund über RMM ausgeführt. Jede Hilfe wird geschätzt.

Antwort

0

fand ich den folgenden Artikel sehr hilfreich, wie Anmeldeinformationen sichern und Anmeldeinformationen auf einer Textdatei gespeichert verwenden:

http://www.adminarsenal.com/admin-arsenal-blog/secure-password-with-powershell-encrypting-credentials-part-1/

im Grunde würden Sie wie folgt vor:

<password> | ConverTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString | Out-File <filename>.txt 

werden Sie Dann haben Sie eine sichere Zeichenkette, die Ihr Passwort zur Verwendung in Ihrem Skript speichert. Sie können auch den folgenden Befehl verwenden, um die gleiche Aktion durchzuführen, ohne jemals ein Klartext-Passwort zu verwenden:

(Get-Credentail).Password | ConvertFrom-SecureString | Out-File <filename>.txt 

Sie können dann den folgenden Code in Ihrem Skript hinzufügen, um das Passwort gespeichert zu verwenden, ich würde empfehlen, es eine gemeinsame Position, die nur der Administrator Zugriff auf die Workstation hat, und verwenden sie das erwähnte Skript auszuführen:

$credentials = Get-Content <filename>.txt | ConvertTo-SecureString 

der letzte Schritt ein Objekt schafft die credintials zu verwenden:

$adminCredentails = New-Object -TypeName System.Management.Automation.PSCredentail -ArgumentList <username>, (Get-Content <filename>.txt | ConvertTo-SecureString) 

Ich überlasse es Ihrer Fantasie, wie Sie dann die Anmeldeinformationen in Ihrem Skript verwenden können.

+0

Dies ist die hilfreichste Lösung, die ich bisher gesehen habe, vor allem, da ich nicht mit Domain-Namen herumspielen muss. Nichts, was ich gesehen habe, zeigt, wie das neue Anmeldedatenobjekt verwendet wird, um die Eingabeaufforderung für Anmeldedaten automatisch zu füllen. Ich bin neu in der Automatisierung, also wenn Sie oder jemand anderer mir in die richtige Richtung zeigen könnte, würde es geschätzt werden. –

+0

Ich versuche, Befehle mit -Credential $ MyCredential auszuführen, nachdem ich dem Artikel gefolgt bin, aber er gibt die Syntax zurück, anstatt den Befehl auszuführen? –

+0

können Sie ein Beispiel für den Befehl, den Sie ausführen, veröffentlichen? – Aramane

Verwandte Themen