localadmin.ps1 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. param(
  2. $CSV=""
  3. )
  4. function Add-LocalAdminUser {
  5. param(
  6. $ComputerName="",
  7. $MemberName="admin"
  8. )
  9. $member = $MemberName
  10. if (-not $member.StartsWith("WABTEC")){
  11. $member = $ComputerName+"\"+$member
  12. }
  13. $member | Out-Host
  14. $pingtest = $null
  15. $pingtest = (Test-NetConnection -ComputerName $ComputerName).PingSucceeded
  16. $result = $null
  17. if (($null -ne $pingtest) -and $pingtest){
  18. $ComputerName | Out-Host
  19. .\psremote-remote.ps1 $ComputerName | Out-Null
  20. Start-Sleep 2
  21. $ComputerName | Out-Host
  22. $result = Invoke-Command -ComputerName $ComputerName -ScriptBlock {
  23. hostname | Out-Host
  24. "Profiles" | Out-Host
  25. gwmi win32_userprofile | Select-Object @{LABEL="last used";EXPRESSION={$_.ConvertToDateTime($_.lastusetime)}},LocalPath |
  26. Where-Object {-not (($_.Localpath -like "*Service*") -or ($_.Localpath -like "C:\WINDOWS*")) } | Out-Host
  27. "LocalUsers" | Out-Host
  28. Get-LocalUser | Out-Host
  29. "Groupmembers" | Out-Host
  30. Get-LocalGroup | Where-Object {$_.Name -like "Admin*"} | ForEach-Object {
  31. $group = $_ ;
  32. Get-LocalUser | Where-Object {$_.Name -like "Admin*"} | ForEach-Object {
  33. Add-LocalGroupMember -Member $_ -Group $group | Out-Null;
  34. }
  35. Add-LocalGroupMember -Member $member -Group $group | Out-Null ;
  36. Get-LocalGroupMember -Group $group | Select-Object -ExpandProperty "Name"
  37. }
  38. }
  39. }
  40. [PSCustomObject]@{
  41. ComputerName=$ComputerName;
  42. MemberName=$MemberName;
  43. Test=$pingtest;
  44. result=(ConvertTo-Json $result -Compress);
  45. }
  46. }
  47. function Main($CSVNAME){
  48. Get-Content $CSVNAME | ConvertFrom-Csv -Header PC,USER -Delimiter ";" | ForEach-Object {
  49. Add-LocalAdminUser -ComputerName $_.PC -MemberName $_.USER
  50. }
  51. }
  52. if ($MyInvocation.CommandOrigin -eq "Runspace"){
  53. Main $CSV
  54. }
  55. <#
  56. #>