aboutsummaryrefslogtreecommitdiff
path: root/Get-MachineAccountAttribute.ps1
diff options
context:
space:
mode:
authorKevin Robertson <robertsonk@gmail.com>2017-09-06 14:25:38 -0400
committerKevin Robertson <robertsonk@gmail.com>2017-09-06 14:25:38 -0400
commit453646d40532900c9da56bbf97dee51fd6d74112 (patch)
tree71803ebe681ac0944184700128831d94a9cb43be /Get-MachineAccountAttribute.ps1
parent4bf058ec39c756232aaf2e96b3d98e630dae5443 (diff)
downloadPowermad-453646d40532900c9da56bbf97dee51fd6d74112.tar.gz
Powermad-453646d40532900c9da56bbf97dee51fd6d74112.zip
Initial commit
Diffstat (limited to 'Get-MachineAccountAttribute.ps1')
-rw-r--r--Get-MachineAccountAttribute.ps190
1 files changed, 90 insertions, 0 deletions
diff --git a/Get-MachineAccountAttribute.ps1 b/Get-MachineAccountAttribute.ps1
new file mode 100644
index 0000000..fa58cd0
--- /dev/null
+++ b/Get-MachineAccountAttribute.ps1
@@ -0,0 +1,90 @@
+function Get-MachineAccountAttribute
+{
+ <#
+ .SYNOPSIS
+ This function can return values populated in machine account attributes.
+
+ .DESCRIPTION
+ This function is primarily for use with New-MachineAccount and Set-MachineAccountAttribute.
+
+ Author: Kevin Robertson (@kevin_robertson)
+ License: BSD 3-Clause
+
+ .PARAMETER DistinguishedName
+ Distinguished name for the computers OU.
+
+ .PARAMETER Domain
+ The targeted domain.
+
+ .PARAMETER MachineAccount
+ The username of the machine account that will be modified.
+
+ .PARAMETER Attribute
+ The machine account attribute.
+
+ .PARAMETER Value
+ The machine account attribute value.
+
+ .EXAMPLE
+ Get-MachineAccountAttribute -MachineAccount payroll -Attribute description
+
+ .LINK
+ https://github.com/Kevin-Robertson/Powermad
+ #>
+
+ [CmdletBinding()]
+ param
+ (
+ [parameter(Mandatory=$false)][String]$DistinguishedName,
+ [parameter(Mandatory=$false)][String]$Domain,
+ [parameter(Mandatory=$true)][String]$MachineAccount,
+ [parameter(Mandatory=$true)][String]$Attribute
+ )
+
+ if($MachineAccount.EndsWith('$'))
+ {
+ $machine_account = $MachineAccount.SubString(0,$MachineAccount.Length - 1)
+ }
+ else
+ {
+ $machine_account = $MachineAccount
+ }
+
+ if(!$Domain)
+ {
+ $domain = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain().Name
+ }
+
+ if(!$DistinguishedName)
+ {
+
+ $distinguished_name = "CN=$machine_account,CN=Computers"
+
+ $DCArray = $Domain.Split(".")
+
+ ForEach($DC in $DCArray)
+ {
+ $distinguished_name += ",DC=$DC"
+ }
+
+ }
+ else
+ {
+ $distinguished_name = "$DistinguishedName"
+ }
+
+ $account = New-Object System.DirectoryServices.DirectoryEntry "LDAP://$distinguished_name"
+
+ try
+ {
+ $output = $account.InvokeGet($Attribute)
+ }
+ catch
+ {
+ $error_message = $_.Exception.Message
+ $error_message = $error_message -replace "`n",""
+ Write-Output "[-] $error_message"
+ }
+
+ return $output
+} \ No newline at end of file