PowerShell – Cycle through Usernames or User SIDs

email me

This is the code to cycle through the Usernames or User SIDs on a computer. Very useful if you’re wanting to execute a code block or perform a function on each user account.

Return User SIDs in loop

foreach ($sid in Get-WmiObject win32_useraccount | Select-Object -Property sid ) {
# add your code here - do stuff
Write-Host $sid.sid
}

Return Usernames in loop

foreach ($user in Get-WmiObject win32_useraccount | Select-Object -Property name ) {
# add your code here - do stuff
Write-Host $user.name
}

 


Notes

Return Computer Name\Username

[System.Security.Principal.WindowsIdentity]::GetCurrent().Name

or

(Get-WMIObject -class Win32_ComputerSystem | select username).username

Return Account SIDs

Get-WmiObject win32_useraccount | Select name,sid | Select-Object -Property sid | ft -HideTableHeaders

Return User Accounts

Get-WmiObject win32_useraccount | Select name,sid | Select-Object -Property name | ft -HideTableHeaders

 

Run GPUpdate on Servers

$List = ‘server1′,’server2′,’server3′,’server4’ ; foreach ($server in $List) {psexec \\$server gpupdate}

FOR /F “tokens=*” %%A IN (C:\scripts\servers.txt) DO WMIC /Node:%%A Process call create “cmd.exe /c gpupdate”

 

tags: MrNetTek