Import-module 'ActiveDirectory' $getadusers = @() $filter = @() $samaccountnamelijst = @() $Header = 'Samaccountname' $CSV = '.\Gemeentenet.csv' $Extension = $null $import = @() Add-Content -Value $Header -Path $CSV $getadusers = Get-aduser -filter * foreach ($entry in $getadusers){if ($entry -ne $null){$samaccountnamelijst += $entry.samaccountname}} foreach ($sam in $samaccountnamelijst){Add-Content -Value $sam -Path $CSV} $Deelnemerlijst = @() $allusers = import-csv $csv foreach ($Deelnemeruser in $allusers){if ($Deelnemeruser -match $deelnemer){$Deelnemerlijst += $Deelnemeruser}} $Deelnemerlijst | export-csv .\$Deelnemer.csv $entry = $null $username = 'othext' $CSV = '.\Gemeentenet.csv' $import = @() $filter = @() $import = import-csv $csv foreach ($entry in $import){if ($entry -match $username){$filter += $entry.samaccountname}} $filter = $filter -split "@{samaccountname=" |sort $filter = $filter -split "$username" | sort $filter = $filter -split "}" | Sort -Descending $nummer = [int]$filter[0] $nummer++ Add-content -Value $volledigesamaccountname -path $csv
Category Archives: Powershell
XLSX aanmaken in Powershell
$csvs = Get-ChildItem .* -Include *.csv $y=$csvs.Count Write-Host “Detected the following CSV files: ($y)” foreach ($csv in $csvs) { Write-Host ” “$csv.Name } $outputfilename = read-host “Please enter the output file name: “ Write-Host Creating: $outputfilename $excelapp = new-object -comobject Excel.Application $excelapp.sheetsInNewWorkbook = $csvs.Count $xlsx = $excelapp.Workbooks.Add() $sheet=1 foreach ($csv in $csvs) { $row=1 $column=1 $worksheet = $xlsx.Worksheets.Item($sheet) $worksheet.Name = $csv.Name $file = (Get-Content $csv) foreach($line in $file) { $linecontents=$line -split ‘,(?!s*w+”)’ foreach($cell in $linecontents) { $worksheet.Cells.Item($row,$column) = $cell $column++ } $column=1 $row++ } $sheet++ } $xlsx.SaveAs($outputfilename) $excelapp.quit()
Recipients of senders filteren op basis van wildcards
Soms moet je weten hoeveel er wordt gestuurd naar *@hotmail.com of *@outlook.com. Dit kan op de volgende manier
Get-MessageTrackingLog -ResultSize Unlimited -Start "9/1/2013" -End "9/12/2013" | where{$_.recipients -like "*@live.nl"} | select-object Timestamp,SourceContext,Source,EventId,MessageSubject,Sender,{$_.Recipients} >
Of voor ontvangen e-mail:
Get-MessageTrackingLog -ResultSize Unlimited -Start "5/1/2011" -End "5/12/2011" | where{$_.sender -like "*@example.com"} | select-object Timestamp,SourceContext,Source,EventId,MessageSubject,Sender,{$_.Recipients} | export-csv C:ExchangeLogResults.txt
Query Inheritance op User Object in AD
De Get-ADuser heeft niet de mogelijkheid om op inheritance een query te doen. Laat staan het vinkje Include inheritable permissions from this object’s parent in het security tabblad.
Quest heeft CMDlet’s gemaakt die gratis zijn en die hier prima gebruikt kunnen worden. Het commando dat uitgevoerd moet worden is het volgende:
Get-QADUser -SizeLimit 0 | Where-Object {$_.DirectoryEntry.psbase.ObjectSecurity.AreAccessRulesProtected }
Om eventueel naar een ander domein te verbinden kan het volgende commando gebruikt worden:
Connect-QADService -service ''
Om de gevonden accounts ook daadwerkelijk aan te passen kan bovenstaande code ook uitgebreid worden:
Get-QADUser -SizeLimit 0 | Where-Object {$_.DirectoryEntry.psbase.ObjectSecurity.AreAccessRulesProtected } | Set-QADObjectSecurity -UnlockInheritance