【发布时间】:2012-01-31 19:26:43
【问题描述】:
长期阅读,但新海报。 我一整天都在为这个问题苦苦挣扎,这让我发疯了。在搜索了这个网站和谷歌之后,我仍然卡住了。基本上,我不知道如何在 Powershell 中实现与 Copy-Item CmdLet 一起使用的“sudo”。这是我的代码:
PROFILE.PS1:
# Trigger UAC to elevate the supplied command
function Elevate-Process() {
if($args.Length -eq 0) {
error ('USAGE: ' + $MyInvocation.InvocationName + ' <executable> [arg1 arg2 arg3 ...]');
} else {
try {
if($args.Length -eq 1) {
Start-Process $args[0] -Verb RunAs;
} else {
Start-Process $args[0] -ArgumentList $args[1..$args.Length] -Verb RunAs;
}
} catch {
error $_.Exception.Message;
}
}
}
# Display pretty-formatted error messages
function error() {
# Validate function parameters
Param(
[Parameter(Mandatory=$true)]
[ValidateScript({$_.GetType().Name -eq 'String'})]
$sMessage
);
Write-Host $sMessage -BackgroundColor Yellow -ForegroundColor Red;
}
# Set aliases
set-alias sudo Elevate-Process;
应用-INI.PS1:
sudo Copy-Item '.\standard_menu.ini' 'C:\Program Files (x86)\Opera\ui\';
#sudo [System.IO.File]::Copy '.\webmailproviders.ini' 'C:\Program Files (x86)\Opera\defaults\webmailproviders.ini' $true;
Write-Host 'Press any key to exit...';
$host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | Out-Null;
当我执行 powershell.exe .\apply-ini.ps1 时,我收到以下错误:
该命令无法执行,错误:系统无法执行 找到指定的文件。
我已经尝试了所有可能找到的方法,但没有任何运气。希望有人能指出我正确的方向。
【问题讨论】:
标签: .net windows shell scripting powershell