Я карабкался в поисках примеров использования -inputobject, и я не могу найти ни одного.Я никогда раньше не касался PowerShell, но когда я недавно начал эту работу, и мне сказали, что это сценарий, который мы использовали, я не мог не начать возиться с ним!Трубы завораживают, но я не могу обойти эту последнюю проблему.
У меня есть огромный список данных, который появляется при поиске пользователей в AD, и мне было интересно, смогу ли я такжепоймать SamAccountName из того же блока кода!
$User = Get-ADUser -Filter "EmployeeID -eq '$NameID' -or SamAccountName -eq '$NameID' -or DisplayName -eq '$NameID' -or UserPrincipalName -eq '$NameID'" -Properties
Enabled,LockedOut,Mail,Created,passwordlastset,Description,PasswordExpired,LastLogonDate,EmployeeID,DisplayName,"msRTCSIP-UserEnabled",
"msDS-UserPasswordExpiryTimeComputed","extensionAttribute7",telephonenumber,targetaddress,distinguishedName |
Select-Object @{Expression={$_.Name};Label='User Name';},
@{Expression={$_.UserPrincipalName};Label='Logon Name';},
@{Expression={$_.DisplayName};Label='Display Name';},
@{Expression={$_.Created};Label='Date Created';},
@{Expression={$_.SamAccountName};Label='SamAccountName';} -InputObject $Name,
Description,
Enabled,
@{Expression={$_.LockedOut};Label='Locked';},
@{Expression={$_.Mail}; Label='Email Address';},
@{Expression={$_.passwordlastset};Label='PW Last Reset';},
@{Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")};Label='Password Expiry';},
@{Expression={$_.LastLogonDate};Label='Last Logon';},
@{Expression={$_.PasswordExpired};Label='Password Expired';},
@{Expression={$_.extensionAttribute7};Label='Contract Expires On';},
@{Expression={$_.EmployeeID};Label='Employee ID';},
@{Expression={$_."msRTCSIP-UserEnabled"};Label='Skype Enabled';},
@{Expression={$_.telephonenumber};Label='Phone Number';},
@{Expression={$_.targetaddress};Label='Email Forwarded To';},
@{Expression={$_.distinguishedName};Label='Distinguished Name';} | Select-Object SamAccountName -InputObject $Name | Format-list | Out-String
Выше я использую это, чтобы получить большую часть интересной информации, чтобы красиво отобразить ее в сценарии, но в дальнейшем я должен вызвать ее снова с моимограниченные знания для простого ввода пользовательского SamAccountName в переменную $ Name (чтобы собрать их менеджеров и т. п.) Это выглядит примерно так:
$Name = (getad-user -Filter "EmployeeID -eq '$NameID' -or SamAccountName -eq '$NameID' -or DisplayName -eq '$NameID' -or UserPrincipalName -eq '$NameID'").SamAccountName
Мне просто интересно, смогу ли я сжать все это водин Get-ADUser, и какая лучшая практика это будет!
Заранее спасибо всем