PS脚本根据IP地址最后Update密码

#requires -Version 1
##Set-PSDebug -Trace 1
set-executionpolicy remotesigned

If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator"))


{   
$arguments = "& '" + $myinvocation.mycommand.definition + "'"
Start-Process powershell -Verb runAs -ArgumentList $arguments
Break
}
##电脑名称
$ComputerName = ''
##获取IP地址 
$ip=[System.Net.Dns]::GetHostAddresses($ComputerName) |
Where-Object {
  $_.AddressFamily -eq 'InterNetwork'
} | Select-Object -ExpandProperty IPAddressToString

##截取IP地址最后数字,转换并进行转换
$str=$ip.Split(".")[3]
$str_scr=$str.Replace('0',')').Replace('1','!').Replace('2', '@' ).Replace('3','#').Replace('4','$').Replace('5', '%').Replace('6', '^').Replace('7','&').Replace('8', '*').Replace('9', '(')

##生成密码

$a=$str.Length
$b="XXXX"
$c="XXXX"
if($a -eq 1)
    {
        $passwd1=($b,$str_scr -join("@))")) 
        $passwd2=($c,$str -join("@00"))
        } 
elseif($a -eq 2)
    {
        $passwd1=($b,$str_scr -join("@)"))
        $passwd2=($c,$str -join("@0"))}
elseif ($a -eq 3)
    {
        $passwd1=($b,$str_scr -join("@"))
        $passwd2=($c,$str -join("@"))}
else {
    $passwd1=($b,$str -join("@"))
    $passwd1=($c,$str -join("@"))
    }
#修改密码


#Write-Output $passwd1
#Write-Output $passwd2
#查询admin是否存在
$user=Get-WmiObject -Class Win32_UserAccount -Filter "Name='admin'"
#查询Admin是否是属于本地管理员群组
$group = 'Administrators'
$temp = Get-WmiObject -Query " select * from Win32_GroupUser"
$Admins = ""
foreach ($t in $temp )
{
if ($t.GroupComponent -match $group)
{
$longstr = $t.PartComponent
$namepos = $longstr.IndexOf("Name=") + 6
$Domainpos = $longstr.IndexOf("Domain=") + 8
$Domain = $longstr.Substring($Domainpos, $namepos - $Domainpos - 8)
$name = $longstr.Substring($namepos, $longstr.Length - $namepos -1)
if($name="admin")
{
    $Admins = $name
    }
else
{
}
    $Admins=$Admins
}
}
#设置密码并记录
$result=""
try
{
if($user.Name -contains "admin" -and $Admins -eq "admin" )
    {  
       Write-Output “修改本地管理员组admin账户密码” 
       net user admin $passwd2
       $today= Get-Date
       $result+= $today,"修改本地管理员组admin账户密码完成" -join("-")  
       Write-Output “修改本地管理员组admin账户密码完成”
    }
 
elseif($user.Name -contains "admin" -and $Admins -eq "")
{
    Write-Output “修改admin账户密码并加入本地管理员组”
    net user admin $passwd2 
    net localgroup administrators admin /add 
    $today= Get-Date
    $result+= $today,"修改admin账户密码并加入本地管理员组完成","`n" -join("-") 
    Write-Output “修改admin账户密码并加入本地管理员组完成”
}
else
    {
      Write-Output “新增admin账户并加入本地管理员组” 
      net user admin $passwd2 /add  
      net localgroup administrators admin /add
      $today= Get-Date
      $result+= $today,"新增admin账户并加入本地管理员组完成","`n" -join("-") 
      Write-Output “新增admin账户并加入本地管理员组完成”  }
}
catch
{
   Write-Output  "增加账户异常结束!"
   $today= Get-Date
   $result+= $today,"增加账户异常结束","`n"  -join("-") 
}

net user administrator $passwd1 
Write-Output “修改本机administrator账户密码”
$today= Get-Date
$result= $today,"修改本机Administrator密码完成","`n" -join("-")

sleep 5
$result | Out-File -filepath C:\tmp\log\update_passwd.log  -Append -Force

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值