使用Run行中的参数运行powershell命令

问题描述 投票:0回答:1

我还在学习PowerShell,Windows运行线似乎让它变得更难

问题:如何直接从运行行执行此操作(如果可能的话,可以使用admin powershell),但我可以在下载后单击“是”...它只会减慢进程的速度

wget 'https://MYSERVER/MYFILE.MSI' -O PROGRAM.msi; start PROGRAM.msi /qn

当powershell已作为管理员打开时,这种方法很有效,当powershell作为普通用户打开时也可以正常工作,但是我必须等待程序被下载以单击是而不是单击是来管理powershell并让其余的自动安装。

我试过了

Powershell -Command 'wget... 

但没有工作

powershell cmd
1个回答
0
投票

注意:PoSH中的wget是别名

Get-Alias -Name wget

CommandType     Name
Alias           wget -> Invoke-WebRequest

...和你这样做的方式,你使用的是wget.exe,而不是上面的。因此,您可以使用wget.exe,但如果它不在您的系统路径中,则必须将完整的UNC指定为wget.exe。那个.exe是必须的。

或者您需要删除别名

Remove-Item Alias:WGet

要从Web下载文件,请查看Invoke-WebRequest示例

Get-Help -Name 'Invoke-WebRequest' -Examples

或者使用.Net编写自己的函数,如下所示,并将其放入PoSH用户配置文件中

Function New-ToolDownloadInstall ($url)
{
    # Set the webclient 
    $webclient = New-Object System.Net.WebClient

    # Extract the filename from the URL and Download 
    $filename = [System.IO.Path]::GetFileName($url)
    $file = "$env:USERPROFILE\Downloads\$filename"
    $webclient.DownloadFile($url,$file)

    # Remove the web ADS
    Unblock-File -Path $file

    # Install the file
    Start-Process $file -NoNewWindow -wait
}

# Use the function
New-ToolDownloadInstall -url 'https://download.microsoft.com/download/5/0/1/5017D39B-8E29-48C8-91A8-8D0E4968E6D4/en/msoidcli_64.msi'

这是另一个示例通过powershell https://gallery.technet.microsoft.com/scriptcenter/files-from-websites-4a181ff3以编程方式从网站下载文件

此外,如果您在PowerSHell_ISE.exe中,则必须以这种方式调用某些DOS级别命令。

Start-Process "$PSHOME\powershell.exe" -ArgumentList "-NoExit","-Command  &{ wget.exe 'https://MYSERVER/MYFILE.MSI' -O PROGRAM.msi; start PROGRAM.msi /qn }" 

在这里查看更多详情:https://blogs.technet.microsoft.com/josebda/2012/03/03/using-windows-powershell-to-run-old-command-line-tools-and-their-weirdest-parameters

© www.soinside.com 2019 - 2024. All rights reserved.