从 reg 查询修剪输入



Windows XP 机器:

reg query "\COMPUTER_NAMEHKLMSOFTWAREMicrosoftWindowsNTCurrentVersionWinLogon" /v DefaultUserName

输出:DefaultUserName REG_SZ ajstepanik

.

视窗 7 机器

reg query "\COMPUTER_NAMEHKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionAuthenticationLogonUI" /v LastLoggedOnUser

输出:LastLoggedOnUser REG_SZ GHS_NTDOMAINajstepanik

.

.

想知道是否有可能将其修剪下来,以便我只剩下GHS_NTDOMAINajstepanik......甚至更好,如果我能得到在这个例子中是ajstepanik的用户名

提取名称并存储它的原因是我可以使用它并将其插入其他命令。

.

.

编辑以获取其他帮助 (win7):

$reg1  = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $tag1)
$key1  = $reg1.OpenSubKey('MicrosoftWindowsCurrentVersionAuthenticationLogonUI')
$user1 = $key1.GetValue('LastLoggedOnUser') -replace '^.*?\'
echo $user1

返回错误:

You cannot call a method on a null-valued expression.
At C:UsersajstepanikDesktoptest.ps1:30 char:1
+ $user1 = $key1.GetValue('LastLoggedOnUser') -replace '^.*?\'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

我会完全放弃reg.exe并像这样阅读远程注册表:

$rhost = 'COMPUTER_NAME'
$reg  = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $rhost)
$key  = $reg.OpenSubKey('SOFTWAREMicrosoftWindows NTCurrentVersionWinLogon')
$user = $key.GetValue('DefaultUserName') -replace '^.*?\'

这是一种更清洁的方法,因为GetValue已经产生了实际价值。在使用它之前,您不必从其他字符串中解析它。

看起来很简单:

(reg query "\%tag%HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionAuthenticationLogonUI" /v LastLoggedOnUser).split('')[1]

它给了你一个字符串。只需在反斜杠处拆分即可。并采取第二个元素。

可以使用Microsoft .NET Framework 类型远程查询注册表,并获取对象结果。查看 PowerShell 的远程注册表模块:http://archive.msdn.microsoft.com/PSRemoteRegistry

话虽如此,您可以解析上面命令的输出,如下所示:

$Output = reg query "\%tag%HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionAuthenticationLogonUI" /v LastLoggedOnUser
$Output -join '' -match 'w+\w+$';
$matches[0];

如果你想更进一步,你可以通过正则表达式"命名组"解析域和用户名,如下所示:

$output -join '' -match '(?<domain>w+)\(?<username>w+)$';
$matches.username;
$matches.domain;

最新更新