icacls “*.*” /inheritancelevel:e /grant username:(d,wdac)
Set rights on all folders, and subfolders
Reply
icacls “*.*” /inheritancelevel:e /grant username:(d,wdac)
Check for connection, if not, then Establish connection
# Check for connection
$NotConnected = $true
$RMsessions = Get-PSSession
Foreach ($RMsession in $RMsessions) {
if ($RMsession.Computername -like "*outlook*") { $NotConnected = $false }
}
# Establish connection
if ($NotConnected ) {
$LiveCred = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic -AllowRedirection
Import-PSSession $Session
cls
}
Can now be done with either Azure CLI
az policy state trigger-scan --resource-group !!!resource-group-name!!!
Or powershell
Start-AzPolicyComplianceScan -ResourceGroupName !!!resource-group-name!!!
Old school with API rest call
$subscriptionId = "!!!SUBSCRIPTION ID!!!"
$uri = "https://management.azure.com/subscriptions/$subscriptionId/providers/Microsoft.PolicyInsights/policyStates/latest/triggerEvaluation?api-version=2018-07-01-preview"
$azContext = Get-AzContext
$azProfile = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile
$profileClient = New-Object -TypeName Microsoft.Azure.Commands.ResourceManager.Common.RMProfileClient -ArgumentList ($azProfile)
$token = $profileClient.AcquireAccessToken($azContext.Tenant.Id)
$authHeader = @{
'Content-Type'='application/json'
'Authorization'='Bearer ' + $token.AccessToken
}
Invoke-RestMethod -Method Post -Uri $uri -UseBasicParsing -Headers $authHeader
SELECT name ,
recovery_model_desc ,
state_desc ,
d AS 'Last Full Backup' ,
i AS 'Last Differential Backup' ,
l AS 'Last log Backup'
FROM ( SELECT db.name ,
db.state_desc ,
db.recovery_model_desc ,
type ,
backup_finish_date
FROM master.sys.databases db
LEFT OUTER JOIN msdb.dbo.backupset a ON a.database_name = db.name
) AS Sourcetable
PIVOT
( MAX(backup_finish_date) FOR type IN ( D, I, L ) ) AS MostRecentBackup
{
"policyRule": {
"if": {
"allOf": [{
"field": "type",
"equals": "Microsoft.Network/publicIPAddresses"
},
{
"field": "Microsoft.Network/publicIPAddresses/publicIPAllocationMethod",
"match": "Dynamic"
}
]
},
"then": {
"effect": "deny"
}
}
}
Json file, replace “/subscriptions/11111111-1111-1111-1111-111111111111” with your own subscription ID.
Save the Json file and run: az role definition create –role-definition filename.json
{
"Name": "Virtual Machine Stop/Start/Restart",
"IsCustom": true,
"Description": "Can stop, start and restart virtual machines.",
"Actions": [
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Compute/virtualMachines/deallocate/action"
],
"NotActions": [
],
"AssignableScopes": [
"/subscriptions/11111111-1111-1111-1111-111111111111"
]
}
Json for the rule. The tag could be something else. Just change the field: “tags.Costcenter”
{
"mode": "All",
"policyRule": {
"if": {
"not": {
"field": "tags.Costcenter",
"in": "[parameters('allowedTagValues')]"
}
},
"then": {
"effect": "deny"
}
},
"parameters": {
"allowedTagValues": {
"type": "Array",
"metadata": {
"displayName": "Allowed tag values",
"description": "The list of allowed Costcenter tag values"
}
}
}
}
Parameters when assigning the policy
[ "IT", "Risk", "Advisory", "Legal" ]

Set TLS to 1.2 in Powershell and try again
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$PWD.Path

Ping -t 8.8.8.8 | ForEach {"{0} - {1}" -f (Get-Date),$_}
