Ключ удаленного реестра - PullRequest
0 голосов
/ 31 мая 2019

Глядя на другие статьи и даже на этот вопрос StackOverflow , я все еще не могу заставить это работать. Устройство доступно в сети, но все равно выдает ошибку ввода-вывода.

Код, который я использую:

var environmentKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, "gm-1015").OpenSubKey("Environment");
TextBox1.Text = environmentKey.ToString();

Когда я пытаюсь запустить его, я получаю:

System.IO.IOException: 'Сетевой путь не найден.

Который с веб-сайта Microsoft указывает на то, что аппарат недоступен.

Я что-то упустил?

1 Ответ

0 голосов
/ 18 июля 2019

Пришел к выводу, что служба удаленного реестра не была включена или включена для удаленного компьютера. Вместо того, чтобы включить его, который открыл бы другую дверь в компьютер для любых злоумышленников, я использую следующий код:

PowerShell ps = PowerShell.Create()
    .AddCommand("Invoke-Command")
    .AddParameter("ComputerName", SearcherClass.CurrentComputer)
    .AddParameter("Scriptblock", ScriptBlock.Create("Get-Tpm | Select-Object -ExpandProperty TPMPresent"));

Это запускает новый экземпляр PowerShell и запускает Invoke-Command, чтобы в итоге выполнить команду Get-Tpm, которая в конечном итоге возвращает свойство TPMPresent

Это фактический блок кода, который я использовал для оценки и возврата пригодного для использования результата в мою форму:

public static string GetTPM()
{
    string output = "N/A";
    try
    {
        PowerShell ps = PowerShell.Create()
            .AddCommand("Invoke-Command")
            .AddParameter("ComputerName", SearcherClass.CurrentComputer)
            .AddParameter("Scriptblock", ScriptBlock.Create("Get-Tpm | Select-Object -ExpandProperty TPMPresent"));

        foreach(PSObject i in ps.Invoke())
        {
            output = i.BaseObject.ToString();
        }
        if (output == "True")
        {
            output = "Present";
        }
        else
        {
            output = "None";
        }
        return output;
    }
    catch
    {
        return "Failed";
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...