Hallo,
ich habe ein C# Program, indem ich die Option implemtiert habe, um den erzeugten Log auf einem Nas zu speichern. Dafür verwende ich den Powershell Command New-PSDrive, hier der C# Code:
string log = null;
using (var powershell = PowerShell.Create())
{
powershell.AddCommand("New-PSDrive");
powershell.AddParameter("Name", name);
powershell.AddParameter("PSProvider", "FileSystem");
powershell.AddParameter("Root", root);
if (!string.IsNullOrEmpty(user) && !string.IsNullOrEmpty(password))
{
var secure = new SecureString();
foreach (char c in password)
{
secure.AppendChar(c);
}
PSCredential credential = new PSCredential(user, secure);
powershell.AddParameter("Credential",credential);
}
Collection<PSObject> powershellobjects = powershell.Invoke();
if(powershell.HadErrors)
{
log = "Während des Verbindens mit dem Netzlaufwerk ist ein/mehrere Fehler aufgetreten.:\n";
for(int i = 0; i < powershell.Streams.Error.Count; i++)
{
log += powershell.Streams.Error[i] + "\n";
}
}
else if(powershellobjects.Any())
{
PSDriveInfo psinfo = (PSDriveInfo)powershellobjects[0].BaseObject;
string appDir = Path.Combine(psinfo.Root,"CCleanerSilent");
Destination = Path.Combine(appDir,"log.txt");
log = string.Format("Netzlaufwerk erfolgreich geladen, log wird nun nach: {0} geschrieben!", Destination);
}
else
{
log = "Ein unbekannter Fehler ist aufgetreten!";
}
return log;
Das das hier ein Powershell Forum ist, hier der Powershell Befehl (Ich habe keine Ahnung von Powershell, deswegen improvisiert):
New-PSDrive -Name "name"(Variable) -PSProvider FileSystem -Root root(Variable) -Credential credential(Variable)
Soviel zum Program, ohne Passwort funktioniert es auch.
Wenn ich jetzt probiere das gleiche mit Passwort durchzuführen, kommte konsequent der Fehler, das Passwort oder der Benutzername falsch wäre. Es ist jedoch zu 100 % richtig, ich kann mich über den Explorer ohne Probleme einloggen. Im Klartext, bevor der
Konvertierung zum Secure-String stimmt es auch, und wurde richtig eingelesen. Aus diesem Grund sehe ich das Problem auch in meiner Umsetzung in Powershell, und nicht von C# her.
Zur Nas Konfiguration: RaspberryPi mit Raspbian und Samba.
LG