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