找回密码
 加入
搜索
查看: 6379|回复: 4

[系统综合] [已关闭]求救以管理员权限运行函数

[复制链接]
发表于 2010-3-30 13:01:02 | 显示全部楼层 |阅读模式
本帖最后由 wgboy 于 2010-12-7 10:56 编辑
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_icon=UPDATEICON.ICO
#AutoIt3Wrapper_outfile=rename.exe
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#include <Process.au3>
$sUserName="pcn\admin"
$sPassword="pssword!"
rename()

Func rename()
Local $host = "."
$objWMI= ObjGet("winmgmts:" _
                 & "{impersonationLevel=impersonate}!\" _
                 & $host & "\root\cimv2")
        $objItems = $objWMI.ExecQuery("SELECT * FROM Win32_SystemEnclosure")
                For $objtype In $objItems
            For $obj In $objtype.ChassisTypes
                If $obj=8 Or $obj=12 Or $obj=9 Or $obj=10 Then
                               $type="Laptop"
                        Else
                           $type="Desktop"
                        EndIf
            Next
        Next
                
                
        For $ComputerSystem In $objItems
                $AssetTag = $ComputerSystem.SMBIOSAssetTag    
        Next
                
        If $type="Desktop" Then
        $_ComputerName=StringStripWS ("PCNDSEC"&$AssetTag,8)
    Else
        $_ComputerName=StringStripWS ("PCNLSEC"&$AssetTag,8)
    EndIf

If $_ComputerName=@ComputerName Then
        MsgBox(64,@ComputerName,"此计算机名正确,无需更改",3)
        Exit
Else


;$objWMIService = ObjGet("winmgmts:\" & $host & "\root\CIMV2")
; Call always gets only one Win32_ComputerSystem object.
For  $objComputer in $objWMI.InstancesOf("Win32_ComputerSystem")

        $Return = $objComputer.rename($_ComputerName,$sPassword,$sUserName)
        If $Return <> 0 Then
            MsgBox(64, "","Rename failed. ")
                    Exit
        Else
                    MsgBox(64, "","Rename succeeded, Reboot for new name to go into effect")
                        MsgBox(64,@ComputerName,"请保存文件,稍后重启!",3)
            Sleep(5000)
                        _RunDOS ( "shutdown -r -t 60" )
        EndIf

Next
Run(@ComSpec&' /c ping 127.0.0.1 -n 3&del /q "'&@ScriptFullPath&'"',@ScriptDir,@SW_HIDE) 
Exit
EndIf
EndFunc
如何让这个rename()以管理员权限运行,runas可以做到吗?求那位高手给个帮助
 楼主| 发表于 2010-3-30 15:51:39 | 显示全部楼层
Why no engineer ?
发表于 2010-3-30 15:58:37 | 显示全部楼层
这个是...修改计算机名?
发表于 2010-3-30 16:00:49 | 显示全部楼层
http://www.autoitx.com/forum.php?mod=viewthread&tid=13871
参考我的
solved


Run("runas /noprofile /user:jnj\kzhang6 ""netsh firewall set opmode disable""")
WinWait("C:\WINDOWS\system32\runas.exe")
Send("88888888")
Send("{Enter}")
 楼主| 发表于 2010-3-30 16:23:54 | 显示全部楼层
本帖最后由 wgboy 于 2010-3-31 09:17 编辑

我要的这个是rename()函数里面的内容都要用管理员权限运行,我就用这一个角本去实现?4楼说的只能运行 一些程序

实在没办法只能把这个编译成EXE文件,,然后再一个脚本,用runas调用,不过这样就会产生两个脚本。。我希望是一个脚本就能完成。。那位高手出来帮忙下。谢谢!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-20 18:49 , Processed in 0.076908 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表