【发布时间】:2020-11-12 09:25:51
【问题描述】:
在我的 Windows 10 机器上,我使用 Win32::LookupAccountSID() 按帐户获取 SID。在 cmd.exe 我运行:
whoami /user
我从输出中获取 SID 并在下面的 $sid 变量上使用它,但打印的帐户是空的,知道脚本有什么问题吗?
use strict;
use warnings;
use Win32;
my $account;
my $domain;
my $sidtype;
my $sid = 'S-1-5-21-1994326832-1066739575-5522801-113721';
Win32::LookupAccountSID(undef,$sid,$account,$domain,$sidtype);
print $account;
【问题讨论】:
-
我认为你输入到函数中的 SID 应该是不同的。如果我使用
Win32::LookupAccountName()来获取 SID,它看起来完全不同。在我的机器上,我得到 SID=` ÿijiîªπ╧≥Hπ┐Θ Φo ¡√╪o Ç≈% ΦÖ Φo x7 σ╗╒o P≈! ΦÖ ΦÖ Φo ╪>! └9# Φ=" °% ╪>! τz┘o └9# ΦÖ Φo αÿ ╖≡o √a B■╠oh╛y└u Φ=" └9# 9 \\╫≥o Xd4 áÜ4 Φo r═ o Φo @n ╕²a αA ` -
如果我使用上述 SID(而不是从
whoami返回的 SID 作为LookupAccountSID()的输入,它可以正常工作 -
您知道是否可以将 S-1-15-21 格式(whomai 格式)转换为您提到的格式吗?
-
你没有look,是吗?
-
我看,但如果它单独使用 Win32 完成它会很棒,因为它是核心的一部分。