# Get user detailsGet-ADUser-Identityusername-Properties*# Search users by nameGet-ADUser-Filter{Name-like"*Smith*"}|Select-ObjectName,SamAccountName,Enabled# Unlock a user accountUnlock-ADAccount-Identityusername# Reset password and force change at next logonSet-ADAccountPassword-Identityusername-Reset-NewPassword(Read-Host-AsSecureString)Set-ADUser-Identityusername-ChangePasswordAtLogon$true# Get group membersGet-ADGroupMember-Identity"Group Name"|Select-ObjectName,SamAccountName# Add user to groupAdd-ADGroupMember-Identity"Group Name"-Membersusername# Get computers not logged in for 90+ days$cutoff=(Get-Date).AddDays(-90)Get-ADComputer-Filter{LastLogonDate-lt$cutoff}-PropertiesLastLogonDate|Select-ObjectName,LastLogonDate|Sort-ObjectLastLogonDate
# Connect to Exchange OnlineConnect-ExchangeOnline-UserPrincipalNameadmin@domain.com# Connect to Microsoft GraphConnect-MgGraph-Scopes"User.Read.All","Group.ReadWrite.All"# Connect to Azure AD (Entra ID)Connect-MgGraph-TenantId"tenant-id"-Scopes"Directory.ReadWrite.All"# Get all licensed usersGet-MgUser-Filter"assignedLicenses/`$count ne 0"-ConsistencyLeveleventual-CountVariablelicCount-All|Select-ObjectDisplayName,UserPrincipalName,AccountEnabled
# Get folder sizesGet-ChildItem-PathC:\Logs-Directory|ForEach-Object{$size=(Get-ChildItem$_.FullName-Recurse-File|Measure-ObjectLength-Sum).Sum[PSCustomObject]@{Folder=$_.Name;SizeMB=[math]::Round($size/1MB,2)}}|Sort-ObjectSizeMB-Descending# Find files modified in last 24 hoursGet-ChildItem-PathC:\Logs-Recurse-File|Where-Object{$_.LastWriteTime-gt(Get-Date).AddHours(-24)}# Bulk rename filesGet-ChildItem-Path.-Filter"*.txt"|Rename-Item-NewName{$_.Name-replace"old","new"}
# Test port connectivityTest-NetConnection-ComputerNameserver.domain.com-Port443# Get network adaptersGet-NetAdapter|Where-Object{$_.Status-eq"Up"}# Get IP addressesGet-NetIPAddress-AddressFamilyIPv4|Where-Object{$_.PrefixOrigin-ne"WellKnown"}# Resolve DNSResolve-DnsNamegoogle.com-TypeA
# Get installed softwareGet-Package|Select-ObjectName,Version|Sort-ObjectName# Check pending reboots$reboot=$falseif(Test-Path"HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending"){$reboot=$true}if(Test-Path"HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations"){$reboot=$true}Write-Output"Reboot pending: $reboot"# Get last boot time(Get-Date)-(gcimWin32_OperatingSystem).LastBootUpTime# Check disk healthGet-PhysicalDisk|Select-ObjectFriendlyName,HealthStatus,OperationalStatus,Size
# Export AD users to CSVGet-ADUser-Filter*-PropertiesDisplayName,EmailAddress,Department|Select-ObjectName,DisplayName,EmailAddress,Department|Export-Csv-Path.\users.csv-NoTypeInformation# Find large files > 500MBGet-ChildItem-PathC:\-Recurse-File-ErrorActionSilentlyContinue|Where-Object{$_.Length-gt500MB}|Select-ObjectFullName,@{N="SizeMB";E={[math]::Round($_.Length/1MB,2)}}|Sort-ObjectSizeMB-Descending# Get uptime of remote machines$servers="server1","server2","server3"$servers|ForEach-Object{$os=Get-CimInstance-ComputerName$_-ClassNameWin32_OperatingSystem[PSCustomObject]@{Server=$_;Uptime=(Get-Date)-$os.LastBootUpTime}}