mirror of https://github.com/ansible/ansible.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.4 KiB
PowerShell
54 lines
1.4 KiB
PowerShell
#!powershell
|
|
|
|
# WANT_JSON
|
|
# POWERSHELL_COMMON
|
|
|
|
# basic script to get the lsit of users in a particular right
|
|
# this is quite complex to put as a simple script so this is
|
|
# just a simple module
|
|
|
|
$ErrorActionPreference = 'Stop'
|
|
|
|
$params = Parse-Args $args -supports_check_mode $false
|
|
$section = Get-AnsibleParam -obj $params -name "section" -type "str" -failifempty $true
|
|
$key = Get-AnsibleParam -obj $params -name "key" -type "str" -failifempty $true
|
|
|
|
$result = @{
|
|
changed = $false
|
|
}
|
|
|
|
Function ConvertFrom-Ini($file_path) {
|
|
$ini = @{}
|
|
switch -Regex -File $file_path {
|
|
"^\[(.+)\]" {
|
|
$section = $matches[1]
|
|
$ini.$section = @{}
|
|
}
|
|
"(.+?)\s*=(.*)" {
|
|
$name = $matches[1].Trim()
|
|
$value = $matches[2].Trim()
|
|
if ($value -match "^\d+$") {
|
|
$value = [int]$value
|
|
} elseif ($value.StartsWith('"') -and $value.EndsWith('"')) {
|
|
$value = $value.Substring(1, $value.Length - 2)
|
|
}
|
|
|
|
$ini.$section.$name = $value
|
|
}
|
|
}
|
|
|
|
$ini
|
|
}
|
|
|
|
$secedit_ini_path = [IO.Path]::GetTempFileName()
|
|
&SecEdit.exe /export /cfg $secedit_ini_path /quiet
|
|
$secedit_ini = ConvertFrom-Ini -file_path $secedit_ini_path
|
|
|
|
if ($secedit_ini.ContainsKey($section)) {
|
|
$result.value = $secedit_ini.$section.$key
|
|
} else {
|
|
$result.value = $null
|
|
}
|
|
|
|
Exit-Json $result
|