
.csv
AD 사용자 속성을 특정 AD 그룹의 구성원인 파일 로 내보내는 데 문제가 있습니다 .
이것은 내 코드입니다
$ExportPath= "C:\Users\group_list.csv"
$groupname = "group1"
$users = Get-ADGroupMember -Identity $groupname | ? {$_.objectclass -eq "user"}
foreach ($activeusers in $users) { Get-ADUser -Identity $activeusers | ? {$_.enabled -ne $true} | select Name, SamAccountName, UserPrincipalName, enabled, DistinguishedName | Format-Table} Export-Csv $ExportPath }
답변1
$Users
원하는 속성을 선택하는 파이프라인에 변수를 지정한 다음 이를 파일로 파이프라인하면 됩니다 .csv
.
$ExportPath = "C:\Users\group_list.csv"
$GroupName = "group1"
$Users = Get-ADGroupMember -Identity $GroupName | ? {$_.objectclass -eq "user"}
$Users | ? {$_.enabled -ne $true} | select Name, SamAccountName, UserPrincipalName, enabled, DistinguishedName | Export-Csv $ExportPath
답변2
게시한 내용에 구문 문제가 있습니다.
$ExportPath = 'C:\Users\group_list.csv'
$groupname = 'group1'
$users = Get-ADGroupMember -Identity $groupname |
Where-Object {$_.objectclass -eq 'user'}
foreach ($activeusers in $users)
{
Get-ADUser -Identity $activeusers |
Where-Object {
$_.enabled -ne $true} |
Select-Object Name,
SamAccountName,
UserPrincipalName,
enabled,
DistinguishedName |
Format-Table
} Export-Csv $ExportPath
게시된 코드를 빠르게 리팩터링합니다.
$ExportPath = 'C:\Users\group_list.csv'
$groupname = 'group1'
$users = Get-ADGroupMember -Identity $groupname |
Where-Object {$_.objectclass -eq 'user'}
foreach ($activeuser -in $users)
{
Get-ADUser -Identity $activeuser |
Where-Object {
$PSItem.enabled -ne $true} |
Select-Object Name,
SamAccountName,
UserPrincipalName,
enabled,
DistinguishedName |
Export-Csv $ExportPath -NoTypeInformation -Append
}
'Zoran Jankov'가 제공한 것은 더 직접적이고 적은 코드이지만 '-NoTypeInformation'을 추가해야 합니다. 그렇지 않으면 출력에 원하지 않는 추가 텍스트가 생길 것입니다.
참고로...
MS에서 제공하는 도구를 사용하여 기본 코드를 작성하고 있는 그대로 사용하거나 필요에 따라 조정할 수 있습니다.
- Active Directory 관리 센터: 시작하기
- Active Directory 관리 센터
- windows 'Active Directory 관리 센터'
- windows 'Active Directory 관리 센터' 'PowerShell 기록 뷰어'
- Active Directory 관리 센터 소개
- AD 관리 센터를 사용하여 PowerShell 명령 만들기
- 단계별: Windows Server 2012 R2에서 PowerShell 기록 뷰어 활용
- Active Directory 관리 센터(PowerShell 기록 뷰어)로 PowerShell 학습
PowerShell 스크립트에 사용되는 별칭은 사용하면 안 되지만, 그 목적인 대화형/일회용 코드에는 적합합니다. 개발 활동에 이를 사용하는 경우 릴리스하거나 공유하기 전에 모두 확장해야 합니다. 이유는 다음과 같습니다.
- VSCode에서 이 코드를 열면 확장할 때까지 모든 별칭을 오류로 만듭니다.
- 이에 대해 PSScriptAnalyzer를 실행하면 해당 항목도 오류로 표시됩니다.
PowerShell 스크립트에서 별칭을 사용하는 모범 사례
- https://devblogs.microsoft.com/scripting/best-practice-for-using-aliases-in-powershell-scripts
- https://devblogs.microsoft.com/scripting/using-powershell-aliases-best-practices
애초에 별칭에 대해 걱정하는 이유는 무엇입니까?
어쨌든 별칭을 사용하면 무엇이 중요합니까? 코드를 입력하기 쉽게 만든다면 스크립트에서 이를 사용하면 어떤 해가 됩니까? 스크립트와 관련하여 작업에는 두 가지가 있습니다.첫 번째는 별칭이 존재한다고 보장할 수 없다는 점입니다. Windows PowerShell에서 생성된 별칭이라도 마찬가지입니다.