“Building a Security Culture, Not Just Security Tools”
Turning CISSP and ISO 27001 principles into everyday IT practice through structured templates and clear processes.
IT Manager & Systems Administrator
I build IT departments that run on clear process. 15+ years across Iran, the UAE, the USA and Canada, from leading a team of 10 to running Microsoft 365 for Canadian businesses, and I show my work in a public hands-on lab.
m365-admin-lab is a complete Microsoft 365 environment I am building from zero for Northwind Glass, a fictional manufacturer. Every module is scripted, documented and committed to a public repository. Pick a module to see what it covers and which skills it proves.
The base every other module depends on: a verified domain, correct organisation settings and visibility into service health.
Connect-MgGraph -Scopes "Domain.ReadWrite.All" New-MgDomain -Id $domain Get-MgOrganization | Select DisplayName, VerifiedDomains
Fifty users across Production, Sales and Finance, created by script, with groups that maintain themselves and admin rights kept to a minimum.
New-MgGroup -DisplayName "Production" ` -GroupTypes "DynamicMembership" ` -MembershipRule '(user.department -eq "Production")' ` -MembershipRuleProcessingState "On" ` -SecurityEnabled -MailEnabled:$false -MailNickname "production" New-MgDirectoryAdministrativeUnit -DisplayName "Toronto"
Most small and mid-sized companies still run Active Directory on-premises. This module connects it to the cloud the way a real migration would.
Install-WindowsFeature AD-Domain-Services ` -IncludeManagementTools Install-ADDSForest -DomainName "corp.northwind.local"
Zero Trust in practice: every sign-in is checked, admins need phishing-resistant MFA, and risky sign-ins are blocked automatically.
# Block legacy authentication for all users $policy = @{ displayName = "CA02 - Block legacy auth" state = "enabledForReportingButNotEnforced" conditions = @{ clientAppTypes = @("exchangeActiveSync","other") users = @{ includeUsers = @("All") } applications = @{ includeApplications = @("All") } } grantControls = @{ operator = "OR"; builtInControls = @("block") } } New-MgIdentityConditionalAccessPolicy -BodyParameter $policy
Email is where most attacks start. This module hardens it, tests users with simulated phishing and finds unsanctioned cloud apps.
Connect-ExchangeOnline Get-EOPProtectionPolicyRule | Select Name, State New-TenantAllowBlockListItems -ListType Sender ` -Block -Entries "spoof@bad.example"
Company laptops enrolled, compliant and protected, with a real test incident investigated end to end.
DeviceEvents | where ActionType == "AntivirusDetection" | project Timestamp, DeviceName, FileName | order by Timestamp desc
Sensitive data is found, labelled and stopped from leaving the company, across email, files, chat and endpoints.
Connect-IPPSSession New-DlpCompliancePolicy -Name "Finance - customer data" ` -ExchangeLocation All -SharePointLocation All ` -OneDriveLocation All -Mode TestWithNotifications
Every skill below points to where I have used it.
Turning CISSP and ISO 27001 principles into everyday IT practice through structured templates and clear processes.
Open to IT Manager and Systems Administrator roles in Metro Vancouver. Résumé available on request.
zaeri.h839@gmail.comlinkedin.com/in/hesam-zaerigitlab.com/hesam-zaerisoluvia.ca