我有两个文件,一个名为Startmenu.bat
,第二个名为test.ps1
@echo ON
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File "C:\test.ps1"' -Verb RunAs}";
Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
如果我运行Startmenu.bat
并将test.ps1
放置到C:\
但是我的问题是否可以只创建一个文件?我可以以某种方式在第一个文件中包含Powershell脚本,我的意思是Startmenu.bat
?我想制作一个文件,我真的不知道如何。
Windows 10中的“我的开始”菜单已损坏,我必须运行Powershell命令才能访问“开始”菜单(每次启动时)。
答案 0 :(得分:1)
答案就在于问题!您首先使用-Command
参数运行PowerShell,该参数直接运行PowerShell命令;碰巧你正在使用它再次打开PowerShell(使用RunAs动词使其升高)。您只需再次使用-Command
,而不是使用-File
。
另一种方法是使用-EncodedCommand
参数和Base64编码PowerShell命令。
运行powershell.exe -help
:
# To use the -EncodedCommand parameter:
$command = 'dir "c:\program files" '
$bytes = [System.Text.Encoding]::Unicode.GetBytes($command)
$encodedCommand = [Convert]::ToBase64String($bytes)
powershell.exe -encodedCommand $encodedCommand