从USB棒运行的Powershell脚本-特权和参数

时间:2019-04-01 11:24:28

标签: windows powershell batch-file usb portability

我正在制作可以配置PC的Powershell脚本。我正在使用许多计算机,因此将脚本放置在USB记忆棒上,然后从中启动它。首先,我创建了2个单独的脚本,一个是将stick指定为D:\,另一个是将其分配为E:\,但是在两个脚本中进行更改都非常令人沮丧,因此我对其进行了更改并使其对每个脚本通用磁盘号。除了命令是脚本使用内置的Windows程序(例如netshcmd)外,其他所有命令均正常运行。添加完整路径解决了该问题,但是当任务注册中没有特定任务时,脚本还会启动另一个脚本。我无法更改第二个脚本以在其中添加程序的完整路径

我尝试过:
1.更改启动脚本的执行策略
2.更改脚本的路径
3.将路径更改为Powershell(完整路径)

bat文件启动主脚本:

@echo off
SET SCRIPT=path-on-usb-stick\script.ps1
SET PATH="%~dp0%SCRIPT%"
@echo on
%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\powershell.exe -executionpolicy bypass -command "& %path%"

导致问题的主要脚本的一部分:

if(!(Get-Scheduledtask | Where-Object{$_.TaskName -eq ".check-vpn-new"})) {
        C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command "& 'C:\...\script2.ps1' -Verb RunAs -windowstyle hidden -Wait"
}

我的输出中几乎没有错误:
1.脚本中的参数为null or empty,但不是
2.脚本无权访问具有管理员权限的文件(即使以管理员权限启动的文件也是如此)
3.脚本看不到应清理的Windows.old文件夹
(从bat文件启动script2时,一切正常)

0 个答案:

没有答案