2013-03-22 8 views
8

Ich muss ein Powershell-Skript schreiben, das ich auf jedem Rechner ausführen kann, um eine Verbindung zu einem Server herzustellen. Verschlüsselt die sichere Zeichenfolge die Maschine oder den Benutzer, d. H., Ein sicheres Kennwort funktioniert auf jedem Computer in der Domäne oder kann es nur auf dem Computer entschlüsselt werden, auf dem es erstellt wurde. Wenn es das Letztere ist dort weg, um das Passwort zu verschlüsseln, so kann ich das Skript auf jedem Rechner ausführenPowershell Sicheres Passwort für die Arbeit an jedem Rechner

Antwort

9

Um auf anderen Computern zu arbeiten, müssen Sie einen Schlüssel für die Cmdlets ConvertTo-SecureString und ConvertFrom-SecureString erstellen.

PS C:\> $Key = (3,4,2,3,56,34,254,222,1,1,2,23,42,54,33,233,1,34,2,7,6,5,35,43) 
PS C:\>$StandardString = ConvertFrom-SecureString $SecureString -Key $Key 

http://www.leeholmes.com/blog/2006/06/01/securestrings-in-powershell/

verwenden standardmäßig die Secure cmlets Data Protection API von Windows, wenn sie Ihre Secure zu und von einem Klartext Darstellung konvertieren. Der Verschlüsselungsschlüssel basiert auf Ihren Windows Anmeldedaten , sodass nur Sie die verschlüsselten Daten entschlüsseln können. Wenn die exportierten Daten auf einem anderen System oder einem separaten Benutzerkonto funktionieren sollen, können Sie die Parametersätze verwenden, mit denen Sie einen expliziten Schlüssel angeben können.

+0

Wie sicher ist es, den Schlüssel im Skript zu haben? – user1221996

+3

Es ist nicht. Das wäre so, als würde man das Klartext-Passwort dort eingeben. –

0

Das ist eine gute Frage. Here's a link to how to save your credential. Ich habe dies eingerichtet und ich werde versuchen, meine Berechtigungszeichenfolge auf einem anderen Computer, der mit einem anderen Konto angemeldet ist, auszuprobieren. Ich werde dich mein Ergebnis wissen lassen.

aktualisieren

Ich würde sagen, dass es noch nicht für mich arbeiten. Ich ging auf die Maschine der anderen Person, die als sie eingeloggt war. Ich habe meine Anmeldeinformationen in einem Skript Get-MyCred genannt einrichten:

$username = 'Domain\MyName' 
$password = cat '\\server\share\securestring.txt' | convertto-securestring 
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $password 

return $cred 

Wenn ich die Linie laufen, wo es mein Passwort bekomme ich einen Fehler auf der anderen Personen Maschine.

ConvertTo-SecureString : Key not valid for use in specified state. 
At line:1 char:56 
+ Get-Content O:\BCKUP\MyScripts\Cred\securestring.txt | ConvertTo-SecureString 
+              ~~~~~~~~~~~~~~~~~~~~~~ 
+ CategoryInfo   : InvalidArgument: (:) [ConvertTo-SecureString], CryptographicException 
+ FullyQualifiedErrorId : ImportSecureString_InvalidArgument_CryptographicError,Microsoft.PowerShell.Commands.ConvertToSecureStringCommand 

ich auch den Fehler, wenn ich in einer anderen Computer mit meinen Zugangsdaten einloggen.

+0

das wäre toll, wenn Sie mich lassen können wissen, ich möchte nur ein benutzerdefiniertes Skript, das ich auf bestimmte Maschinen laufen kann die ou zu ändern und würden Eingabe-pssession -computername dc1 verwendet -credentials Benutzer get -adcomputer% Computername% | Move-ADObject -TargetPath 'ou = test, dc = test, dc = com' – user1221996

+0

Sie könnten das Passwort im Klartext speichern? Machen Sie es zu einer versteckten Datei? –

+0

interessant es muss weg sein, um dies zu tun, ich möchte wirklich nicht riskieren, meine Admins Passwort in einem Klartext. Vielen Dank für einen Blick durch – user1221996

Verwandte Themen