0
我想從這樣的C#代碼打開PowerShell。但是,我想設置一個憑證到PowerShell的時候出現。打開內存憑證powershell
Process myProcess = new Process();
try
{
myProcess.StartInfo.UseShellExecute = true;
myProcess.StartInfo.FileName = @"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe";
myProcess.StartInfo.CreateNoWindow = false;
myProcess.Start();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
之後基本上PowerShell是運行我想要做一個輸入-PSSession可連接到遠程計算機,但我不想提示輸入用戶名和密碼在那裏。
我知道這可以做到。
PS C:\> $C = Get-Credential
PS C:\> Enter-PsSession -ComputerName "Server01" -Credential $C
我不想問用戶的憑據,而是我想在調用PowerShell時將其設置在變量中。我怎樣才能做到這一點?
目前的做法是雙重的,
自卸通過C#密碼
string cmd = "\"" + mypwd+ "\"" + @" | ConvertTo-SecureString -AsPlainText -Force | convertfrom-securestring | out-file output";
PowerShellInstance.AddScript(cmd);
Collection<PSObject> PSOutput = PowerShellInstance.Invoke();
在PowerShell中
$pwd = Get-Content .\output | ConvertTo-SecureString
$localcred = New-Object -typename System.Management.Automation.PSCredential -argumentlist "myusername",$pwd
Enter-PSSession -ComputerName 192.168.2.51 -Credential $localcred
讀它有一個整齊的方法嗎?
機管局據我所知,您可以使用PowerShell中ICredential對象(我做這一切對於SharePoint的時間)一個PSCredential對象。使用NetworkCredential對象也應該有效。但是,硬編碼憑據是不好的做法。 – bluuf