PowerShell を使用して、Office フィールドからの情報でアカウントの有効期限が切れているユーザーに関する AD 情報を取得する方法を教えてください。
この名前のように、オフィス、期限切れ
そして、サーバーにログインしているユーザーアカウントから送信する方法。
ところで:QADuserはオプションではありません。
PowerShell を使用して、Office フィールドからの情報でアカウントの有効期限が切れているユーザーに関する AD 情報を取得する方法を教えてください。
この名前のように、オフィス、期限切れ
そして、サーバーにログインしているユーザーアカウントから送信する方法。
ところで:QADuserはオプションではありません。
これを試して:
foreach ($user in (gwmi -namespace "root/directory/ldap" -class "ds_user"))
{
write " `
$user.DS_name, `
$user.DS_physicalDeliveryOfficeName,
(w32tm /ntte $user.DS_accountExpires) `
" `
| Out-File ".\userlist.txt" -Append -Encoding ASCII;
}
ADSIを使用するだけで、このようにすることができます(スナップインなしでPowerShell 1で動作します)
Clear-Host
$dn = New-Object System.DirectoryServices.DirectoryEntry ("LDAP://WM2008R2ENT:389/dc=dom,dc=fr","jpb@dom.fr","PWD")
$dsLookFor = new-object System.DirectoryServices.DirectorySearcher($dn)
$dsLookFor.Filter = "(sAMAccountName=jblanc)";
$dsLookFor.SearchScope = "subtree";
$n = $dsLookFor.PropertiesToLoad.Add("cn");
$n = $dsLookFor.PropertiesToLoad.Add("distinguishedame");
$n = $dsLookFor.PropertiesToLoad.Add("samaccountname");
$n = $dsLookFor.PropertiesToLoad.Add("name");
$n = $dsLookFor.PropertiesToLoad.Add("accountexpires");
$n = $dsLookFor.PropertiesToLoad.Add("department");
$lstUsr = $dsLookFor.findall()
foreach ($usrTmp in $lstUsr)
{
Write-Host $usrTmp.Properties["samaccountname"]
Write-Host $usrTmp.Properties["name"]
#Write-Host $usrTmp.Properties["accountexpires"].value
Write-Host $([datetime]::FromFileTime($($usrTmp.Properties["accountexpires"])))
Write-Host $usrTmp.Properties["department"]
}
Import-Module ActiveDirectory
Search-ADAccount -AccountExpiring -TimeSpan "365" -UsersOnly | Get-ADUser -Prop
Description,samAccountName,AccountExpirationDate | Select-Object
Name,samAccountName,Description,AccountExpirationDate | Sort-Object AccountExpirationDate |
Format-Table -property * -AutoSize | Out-file "FilePath\name.txt" -Width 500