修改hosts文件(判断是否为管理员/以管理员权限运行脚本)

将以下命令保存为 HostsModify.ps1,然后执行即可

 #该脚本用来添加hosts解析记录。脚本在执行的时候会判断当前用户是否为管理员,如果不是则弹出提示框口,要求输入相应密码
If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator"))
{
  $arguments = "& '" + $myinvocation.mycommand.definition + "'"
  Start-Process powershell -Credential administrator -WindowStyle Hidden -ArgumentList $arguments
  Break
} #下面为要执行的命令
#在hosts中添加解析记录
$line = "127.0.0.1 www.sapien.com"
$file = "$env:windir\system32\drivers\etc\hosts"
out-file -InputObject $line -filepath $file -append -Encoding default

删除hosts中添加的解析记录

 #删除hosts中添加的解析记录
$line = "127.0.0.1 www.sapien.com"
$file = "$env:windir\system32\drivers\etc\hosts"
#$contents = gc $file | ? {!($_.contains($line))} #选择不包含$line的行
$contents = gc $file | ? {$_ -ne $line} #选择不等于$line的行
clear-content $file
out-file -InputObject $contents -filepath $file -append -Encoding default

###################################################

脚本直接以管理员权限运行(将管理员账户和密码写入脚本中)

 #该脚本用来在hosts文件中添加解析记录。如果当前用户不是管理员,则会直接以管理员权限运行(可以将管理员账户和密码写入脚本中)
If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator"))
{
  $UserName = "administrator" #定义管理员账户名称
  $serverpass = "cmr" #定义管理员账户密码
  $Password = ConvertTo-SecureString $serverpass -AsPlainText –Force
  $cred = New-Object System.Management.Automation.PSCredential($UserName,$Password)
  $arguments = "& '" + $myinvocation.mycommand.definition + "'"
  Start-Process powershell -Credential $cred -WindowStyle Hidden -ArgumentList $arguments
  Break
 } #下面为要执行的脚步命令
#在hosts中添加解析记录
$line = "127.0.0.1 www.sapien.com"
$file = "$env:windir\system32\drivers\etc\hosts"
out-file -InputObject $line -filepath $file -append -Encoding default

Start-Process -Verb runas 这里的 runas是以管理员权限运行,但是前提是当前用户必须已经是管理员,效果等同于:

修改hosts文件(判断是否为管理员/以管理员权限运行脚本)

参考:http://www.pstips.net/force-script-run-as-admin.html

上一篇:关于MFC中InvalidateRect()的思考与疑问


下一篇:jsonobject 遍历 org.json.JSONObject