| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- param(
- $CSV=""
- )
- function Add-LocalAdminUser {
- param(
- $ComputerName="",
- $MemberName="admin"
- )
-
- $member = $MemberName
- if (-not $member.StartsWith("WABTEC")){
- $member = $ComputerName+"\"+$member
- }
- $member | Out-Host
- $pingtest = $null
- $pingtest = (Test-NetConnection -ComputerName $ComputerName).PingSucceeded
- $result = $null
- if (($null -ne $pingtest) -and $pingtest){
-
- $ComputerName | Out-Host
- .\psremote-remote.ps1 $ComputerName | Out-Null
-
- Start-Sleep 2
- $ComputerName | Out-Host
- $result = Invoke-Command -ComputerName $ComputerName -ScriptBlock {
- hostname | Out-Host
- "Profiles" | Out-Host
- gwmi win32_userprofile | Select-Object @{LABEL="last used";EXPRESSION={$_.ConvertToDateTime($_.lastusetime)}},LocalPath |
- Where-Object {-not (($_.Localpath -like "*Service*") -or ($_.Localpath -like "C:\WINDOWS*")) } | Out-Host
- "LocalUsers" | Out-Host
- Get-LocalUser | Out-Host
- "Groupmembers" | Out-Host
- Get-LocalGroup | Where-Object {$_.Name -like "Admin*"} | ForEach-Object {
- $group = $_ ;
- Get-LocalUser | Where-Object {$_.Name -like "Admin*"} | ForEach-Object {
- Add-LocalGroupMember -Member $_ -Group $group | Out-Null;
- }
- Add-LocalGroupMember -Member $member -Group $group | Out-Null ;
-
- Get-LocalGroupMember -Group $group | Select-Object -ExpandProperty "Name"
- }
- }
- }
- [PSCustomObject]@{
- ComputerName=$ComputerName;
- MemberName=$MemberName;
- Test=$pingtest;
- result=(ConvertTo-Json $result -Compress);
- }
- }
- function Main($CSVNAME){
- Get-Content $CSVNAME | ConvertFrom-Csv -Header PC,USER -Delimiter ";" | ForEach-Object {
- Add-LocalAdminUser -ComputerName $_.PC -MemberName $_.USER
- }
- }
- if ($MyInvocation.CommandOrigin -eq "Runspace"){
- Main $CSV
- }
- <#
- #>
|