Ein anderer Ansatz ist der Aufruf PowerShell
Befehle von Ihrem Batch
Skript. Hier ist ein Beispiel, das das Anmeldekonto eines Dienstes konfiguriert:
$password = Read-Host "Enter password" -AsSecureString;
$decodedpassword = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($password));
& "sc.exe" config THE_SERVICE_NAME obj= THE_ACCOUNT password= $decodedPassword;
wobei THE_SERVICE_NAME der Name des zu konfigurierenden Dienstes und THE_ACCOUNT das Anmeldekonto ist.
Dann können wir es über ein solches Batch-Skript verwenden:
call powershell -Command "$password = Read-Host "Enter password" -AsSecureString; $decodedpassword = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($password)); & "sc.exe" config THE_SERVICE_NAME obj= THE_ACCOUNT password= $decodedPassword;"
der einfach PowerShell.exe aufruft und die drei Befehle übergibt.
Der Vorteil dieses Ansatzes besteht darin, dass die meisten Windows-Installationen heute Folgendes enthalten PowerShell
Es wird also kein zusätzliches Programm oder Skript benötigt. Der Nachteil ist, dass Sie entweder das Passwort innerhalb der PowerShell
Aufruf (wie in meinem Beispiel) oder speichern Sie ihn in einer Umgebungsvariablen und verwenden Sie ihn dann in Ihrem Batch-Skript. Ich bevorzuge die erste Variante, weil sie sicherer und einfacher ist.
0 Stimmen
Können Sie ein wenig mehr Kontext zur Verfügung stellen; ist dies für Mapping/Zugriff auf eine Freigabe, Anmeldung bei einem Remotecomputer oder etwas anderes?
0 Stimmen
Grundsätzlich sollten Benutzer ihre Anmeldedaten angeben, um sich gegenüber einem Subversion-Repository zu authentifizieren. Inzwischen haben wir einen Workaround implementiert, der auf einigen Konventionen basiert, aber es wäre großartig, eine Lösung zu implementieren, ohne solche Beschränkungen aufstellen zu müssen, die die Sicherheitsstärke deutlich verringern.
0 Stimmen
Eine sehr wichtige Frage. Wir brauchen Skripte zum Starten von Anwendungen, solche Skripte müssen archiviert werden, aber Passwörter dürfen nicht in Skripten gespeichert werden, nicht in Skripten archiviert werden und bei der Eingabe nicht auf dem Bildschirm erscheinen