Windows

用作變數的 Powershell 系統資料庫值

  • September 1, 2012

我正在研究如何從系統資料庫返回一個值。我只想要這個命令的 AGENTGUID 值。

$reg=reg query "\\$computer\HKLM\SOFTWARE\Wow6432Node\Network Associates\ePolicy Orchestrator\Agent" /v Agentguid

$reg將其作為一行返回。我只需要{F789B761-81BE-4357-830B-368B5B3CF5E5} HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Network Associates\ePolicy Orchestrator\Agent Aentguid REG_SZ {F789B761-81BE-4357-830B-368B5B3CF5E5}

我會忘記使用 REG.EXE 並使用本機 PowerShell 命令(在這種情況下,您需要一點 .NET 魔法):

function getAgentGUID() {

   param( [String] $computername = "" );

   [String]                      $Local:strServerName     = $computername;
   [Microsoft.Win32.RegistryKey] $Local:objHKLMRootRegKey = $null;
   [Microsoft.Win32.RegistryKey] $Local:objMyKey          = $null;
   [String]                      $Local:strAgentGUID      = "";

   try {
       $objHKLMRootRegKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey( [Microsoft.Win32.RegistryHive]::LocalMachine, $strServerName )

       try {
           $objMyKey = $objHKLMRootRegKey.OpenSubKey( "SOFTWARE\Wow6432Node\Network Associates\ePolicy Orchestrator\Agent" );
           $strAgentGUID = $objMyKey.GetValue( "Agentguid" );
           } #try
       catch { 
           Write-Error -Message "ERROR : Failed to get AgentGUID value.";
           } #catch

       } #try
   catch {
       Write-Error -Message "ERROR : Failed to connect to remote registry.";
       } #catch

return $strAgentGUID;
}


#
# Get the McAfee agent GUID for remote machine called fred.
#

[String] $Local:strAgentGUID = getAgentGUID -computer "fred";

Write-Host -foregroundColor "red" -backgroundColor "white" -Object ( "GUID is : [" + $strAgentGUID + "]" );

exit;

引用自:https://serverfault.com/questions/423521