如何在Perl中以管理员模式打开命令提示符

时间:2014-02-27 01:53:31

标签: windows perl command-prompt perl-module

我需要以管理员身份在命令提示符下运行命令。当我通常使用system()命令发送命令以在命令提示符下运行时,我没有管理员级别的提升。

如何获得管理员级权限才能运行我的说明?

我可以右键单击cmd.exe并选择“以管理员身份运行”以在管理员模式下手动打开命令提示符。

谢谢!

修改

如果未安装7-Zip,我正在尝试安装7-Zip。 (你需要安装'wget'命令(*来自Cygwin或GnuWin32)来运行下面的剪辑)

use Cwd;
use File::Spec;
my $cwd = getcwd();
my $winpath = File::Spec->catdir($cwd);


if (!(-e "C:\\Program Files\\7-Zip")){
    print "\n 7-Zip is not installed. Downloading ... \n";
    system("wget http://downloads.sourceforge.net/project/sevenzip/7-Zip/9.20/7z920.exe?r=&ts=1392082197&use_mirror=softlayer-dal");   # SourceForge Mirror
    print "\n Installing.. \n\n";
    #print "\n Press \"install\" to install the 7-Zip installer on your pC\n\n";
    if(-e $winpath."\\7z920.exe"){
        system($winpath."\\7z920.exe");
    }
}

2 个答案:

答案 0 :(得分:0)

如果您能够以管理员身份运行cmd,那么您可以从cmd的该实例运行Perl脚本,它将继承管理员权限。

例如,您可以在c:\windows

下创建目录进行测试
use strict;

if (mkdir 'c:/windows/perltest/') {
    print "We have admin permissions";
    rmdir 'c:/windows/perltest/'
} else {
    print "No admin permission"
}

如果您在没有管理员权限的情况下运行并希望提升它们,请检查How to elevate Perl process using UAC

旁注:您可以跳过下载7-Zip。 Perl有many libraries that can handle zipping and unzipping

答案 1 :(得分:0)

我发现了一个名为elevate.exe的简洁实用程序。

它非常棒。我现在能够使用管理员权限发送/执行命令。

http://code.kliu.org/misc/elevate/

非常感谢。

(使用时请务必小心,它可能会损坏机器,并可能会破坏您的系统。)