我还在学习PowerShell,Windows运行线似乎让它变得更难
问题:如何直接从运行行执行此操作(如果可能的话,可以使用admin powershell),但我可以在下载后单击“是”...它只会减慢进程的速度
wget 'https://MYSERVER/MYFILE.MSI' -O PROGRAM.msi; start PROGRAM.msi /qn
当powershell已作为管理员打开时,这种方法很有效,当powershell作为普通用户打开时也可以正常工作,但是我必须等待程序被下载以单击是而不是单击是来管理powershell并让其余的自动安装。
我试过了
Powershell -Command 'wget...
但没有工作
注意: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 }"