webui/aduser.ps1
Get-SkParams $PageTitle = "AD User" if (![string]::IsNullOrEmpty($Script:SearchValue)) { $PageTitle += ": $($Script:SearchValue)" } $content = "" $menulist = "" $tabset = "" $pagelink = Split-Path -Leaf $MyInvocation.MyCommand.Definition switch ($TabSelected) { 'General' { try { $user = Get-SkAdUsers | Where-Object {$_.UserName -eq "$SearchValue"} $columns = $user.psobject.properties | Select-Object -ExpandProperty Name $content = "<table id=table2>" foreach ($col in $columns) { $fvx = Get-SkValueLinkAD -PropertyName $col -Value $($user."$col" | Out-String) $content += "<tr><td class=`"t2td1`">$col</td><td class=`"t2td2`">$fvx</td></tr>" } $content += "</table>" } catch { $content = "<table id=table2><tr><td>Error: $($Error[0].Exception.Message)</td></tr></table>" } break; } 'Groups' { $content = "<table id=table1>" $content += "<tr><th>Name</th><th>LDAP Path</th><th></th></tr>" try { $groups = Get-SkAdUserGroups -UserName "$SearchValue" $rowcount = 0 $groups | ForEach-Object { $rmvlink = "<a href=`"admod2.ps1?userid=$SearchValue&groupid=$($_.Name)&op=delmember`" title=`"Remove from Group`">Remove</a>" $content += "<tr>" $xlink = "<a href=`"adgroup.ps1?f=name&v=$($_.Name)&x=equals`" title=`"Details`">$($_.Name)</a>" $content += "<td style=`"width:250px`">$xlink</td>" $content += "<td>$($_.DN)</td>" $content += "<td style=`"width:80px;text-align:center;`">$rmvlink</td>" $content += "</tr>" $rowcount++ } if ($rowcount -gt 0) { $content += "<tr><td colspan=`"3`" class=`"lastrow`">$rowcount groups found</td></tr>" } else { $content += "<tr><td colspan=`"3`" style=`"text-align:center`">No groups found</td></tr></table>" } $content += "</table><br/>" $content += "<form name=`"form11`" id=`"form11`" method=`"POST`" action=`"admod.ps1`">" $content += "<input type=`"hidden`" name=`"userid`" id=`"userid`" value=`"$SearchValue`" />" $content += "<input type=`"hidden`" name=`"op`" id=`"op`" value=`"addmember`" />" $content += "<input type=`"submit`" name=`"ok`" id=`"ok`" value=`"Add to Group`" class=`"button1`" title=`"Add to Group`"/>" $content += "</form>" } catch {} break; } 'Devices' { try { $query = "SELECT DISTINCT v_R_System.Name0 AS ADComputerName, v_GS_USER_PROFILE.LocalPath0 AS LocalPath, v_R_System.AD_Site_Name0 AS ADSite, v_GS_COMPUTER_SYSTEM.Model0 AS Model, v_GS_OPERATING_SYSTEM.Caption0 AS OperatingSystem, v_GS_OPERATING_SYSTEM.BuildNumber0 AS OSBuild, v_GS_USER_PROFILE.TimeStamp FROM v_GS_USER_PROFILE INNER JOIN v_R_System ON dbo.v_GS_USER_PROFILE.ResourceID = v_R_System.ResourceID INNER JOIN v_GS_COMPUTER_SYSTEM ON v_GS_USER_PROFILE.ResourceID = v_GS_COMPUTER_SYSTEM.ResourceID INNER JOIN v_GS_OPERATING_SYSTEM ON v_GS_USER_PROFILE.ResourceID = v_GS_OPERATING_SYSTEM.ResourceID WHERE (v_GS_USER_PROFILE.LocalPath0 LIKE '%$SearchValue') ORDER BY v_GS_USER_PROFILE.TimeStamp DESC" $result = @(Invoke-DbaQuery -SqlInstance $CmDbHost -Database "CM_$CmSiteCode" -Query $query -ErrorAction Stop) $rowcount = 0 $content = "<table id=table1><tr>" if ($result.Count -gt 0) { $columns = $result[0].Table.Columns.ColumnName $colcount = $columns.Count $columns | ForEach-Object { $content += "<th>$_</th>" } $content += "</tr>" foreach ($rs in $result) { $content += "<tr>" foreach ($fn in $columns) { $fv = $rs."$fn" $fvx = Get-SKDbValueLink -ColumnName $col -Value $fv $content += "<td>$fvx</td>" } $content += "</tr>" $rowcount++ } } if ($rowcount -gt 0) { $content += "<tr><td colspan=$colcount class=lastrow>$rowcount rows returned</td></tr>" } else { $content += "<tr><td colspan=$colcount style=`"text-align:center`">No records found</td></tr></table>" } $content += "</table>" } catch { $content = "<table id=table2><tr><td>Error: $($Error[0].Exception.Message)</td></tr></table>" } break; } } $tabs = @('General','Groups','Devices') $tabset = New-SkMenuTabSet2 -MenuTabs $tabs -BaseLink "aduser.ps1" $content += Write-SkDetailView -PageRef "aduser.ps1" -Mode $Detailed Show-SkPage |