我正在尝试设置一些变量。我有一个全名可以使用。
我可以运行它来获取DN:
$DN= dsquery user -name $Name
然后这个:
$Samid= $DN | dsget user -samid
但输出看起来像这样
PS C:\Windows\system32> $samid
samid
bclinton
dsget succeeded
而不是
$ Samid = Bclinton
此命令失败,因为我认为$ DN有空格但变量用引号显示。
PS C:\Windows\system32> $DN
"CN=Bill Clinton,OU=Employees,OU=External,OU=XXX Accounts,DC=XXXX,DC=local"
$Samid = get-aduser -identity $DN
get-aduser : Cannot find an object with identity: '"CN=Bill Clinton,OU=Employees,OU=External,OU=XXX Accounts,DC=XXX,DC=local"' under: 'DC=XXX,DC=local'.
At line:1 char:11
+ $Samid = get-aduser -identity $DN
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: ("CN=Bill Clinto...=XXX,DC=local":ADUser) [Get- ADUser], ADIdentityNotFoundException
+ FullyQualifiedErrorId : ActiveDirectoryCmdlet:Microsoft.ActiveDirectory.Management.ADIdentityNotFoundException,Microsoft.ActiveDirectory.Management.Commands.GetADUser
当我全部输入时,它会返回正确的信息。
PS C:\Windows\system32> $Samid = get-aduser -Identity "CN=Bill Clinton,OU=Employees,OU=External,OU=XXX Accounts,DC=XXX,DC=local"
PS C:\Windows\system32> $samid
DistinguishedName : CN=Bill Clinton,OU=Employees,OU=External,OU=Accounts,DC=XXX,DC=local
Enabled : True
GivenName : Bill
Name : Bill Clinton
ObjectClass : user
ObjectGUID : f4514c3c-4496-44b0-a0b7-25b32d52cd7b
SamAccountName : bclinton
SID : S-1-5-21-1129724065-2108094634-3465950418-8044
Surname : Clinton
UserPrincipalName : bclinton@XXX.local
PS C:\Windows\system32> $samid.SamAccountName
bclinton
我已经阅读了大量的页面,但没有一个我发现谈论这个。谢谢!
答案 0 :(得分:1)
PS C:\> $samid = get-aduser -filter { Name -eq "Bill Clinton" } |
select-object -expandproperty SamAccountName
PS C:\> $samid
bclinton
答案 1 :(得分:1)
如果您已经知道名称,可以使用过滤器通过Get-AdUser
进行搜索get-aduser -filter {name -eq "Bill Clinton"} | Select DistinguishedName,SamAccountName
根据需要使用结果。
或另一个例子
(get-aduser -filter {name -eq "Matt Cameron"}).SamAccountName
mcameron