miércoles, 2 de diciembre de 2015

Listar los perfiles de usuario existentes en un equipo Windows usando Power Shell

En la siguiente entrada veremos el uso de un script para obtener la lista de los perfiles de usuario existentes en un equipo Windows.

El siguiente código lo encontré en la web https://4sysops.com/archives/remotely-query-user-profile-information-with-powershell/  a quien doy el crédito pues me fue de gran ayuda para la obtención de los resultados que en el momento de su uso necesitaba.

Usted necesita guardar el siguiente código como un archivo .ps1



[cmdletbinding()]
param (
[parameter(ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)]
[string[]]$ComputerName = $env:computername
)
foreach ($Computer in $ComputerName) {
 $Profiles = Get-WmiObject -Class Win32_UserProfile -Computer $Computer -ea 0
 foreach ($profile in $profiles) {
  try {
 $objSID = New-Object System.Security.Principal.SecurityIdentifier($profile.sid)
 $objuser = $objsid.Translate([System.Security.Principal.NTAccount])
 $objusername = $objuser.value
  } catch {
$objusername = $profile.sid
  }
  switch($profile.status){
   1 { $profileType="Temporary" }
   2 { $profileType="Roaming" }
   4 { $profileType="Mandatory" }
   8 { $profileType="Corrupted" }
   default { $profileType = "LOCAL" }
  }
  $User = $objUser.Value
  $ProfileLastUseTime = ([WMI]"").Converttodatetime($profile.lastusetime)
  $OutputObj = New-Object -TypeName PSobject
  $OutputObj | Add-Member -MemberType NoteProperty -Name ComputerName -Value $Computer.toUpper()
  $OutputObj | Add-Member -MemberType NoteProperty -Name ProfileName -Value $objusername
  $OutputObj | Add-Member -MemberType NoteProperty -Name ProfilePath -Value $profile.localpath
  $OutputObj | Add-Member -MemberType NoteProperty -Name ProfileType -Value $ProfileType
  $OutputObj | Add-Member -MemberType NoteProperty -Name IsinUse -Value $profile.loaded
  $OutputObj | Add-Member -MemberType NoteProperty -Name IsSystemAccount -Value $profile.special
  $OutputObj
 }
}


Ejemplos de su uso



Obtención de los perfiles de usuario en un equipo local

.\Get-WindowsProfiles.ps1


Obtención de los perfiles de usuario en un equipo remoto

.\Get-WindowsProfiles.ps1 -ComputerName SRVTIB1


Obtención de los perfiles de usuario en una lista de equipos definidos en un archivo .txt utilizando get-content

.\Get-WindowsProfiles.ps1 -ComputerName (get-content c:\temp\servers.txt)



El resultado seria el siguiente.









No hay comentarios:

Publicar un comentario

Comentarios