Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何通过SSIS在管理模式下执行powershell脚本_Sql_Powershell_Ssis_Powershell 5.0_Executeprocesstask - Fatal编程技术网

Sql 如何通过SSIS在管理模式下执行powershell脚本

Sql 如何通过SSIS在管理模式下执行powershell脚本,sql,powershell,ssis,powershell-5.0,executeprocesstask,Sql,Powershell,Ssis,Powershell 5.0,Executeprocesstask,我有一个powershell脚本,使用PoshWSUS从WSU获取所有计算机。在管理模式下打开Powershell后,我手动执行脚本 我现在必须使用SSIS执行脚本。我在控制流中插入了执行流程任务。可执行文件设置为C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe 这是参数:-NoProfile-ExecutionPolicy ByPass-command.c:\mypath\GetWSUSList.ps1”-动词runAs 我尝试

我有一个powershell脚本,使用PoshWSUS从WSU获取所有计算机。在管理模式下打开Powershell后,我手动执行脚本

我现在必须使用SSIS执行脚本。我在控制流中插入了
执行流程任务
。可执行文件设置为
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

这是参数:
-NoProfile-ExecutionPolicy ByPass-command.c:\mypath\GetWSUSList.ps1”-动词runAs

我尝试了许多其他方法,主要包括在本页中:


但他们都没有工作,仍然得到未经授权的错误。任何帮助都将不胜感激。

我找到了这个链接。它似乎与您遇到的问题相似,因此您可以将其用作参考

我找到了这个链接。它似乎与您遇到的问题相似,因此您可以将其用作参考

以下是解决方案:

步骤1:创建一个powershell脚本文件。我的script.ps1是:

步骤2:创建一个.bat文件,假设它名为RunMyPS1.bat,如下所示

@ECHO OFF
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""C:\Scripts\WSUSReport\script.ps1""' -Verb RunAs}"
PAUSE
请注意,在参数行末尾使用
-动词runAs
在这里非常重要

步骤3:创建一个任务调度程序来运行.bat文件,例如名为“RunMyBat”

打开任务计划程序,单击右菜单上的“创建任务”。在
常规
下,确保选中了复选框以最高权限运行,这一点非常重要。然后导航到
操作
部分,通过浏览.bat文件添加新操作

步骤4。通过SSIS运行任务计划程序

将“执行流程任务”添加到控制流中。确保任务的可执行文件设置为:“C:\Windows\System32\schtasks.exe”,参数为:“/run/TN”RunMyBat”,如下所示

@ECHO OFF
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""C:\Scripts\WSUSReport\script.ps1""' -Verb RunAs}"
PAUSE

步骤5。运行SSIS包

重要提示:请注意,触发运行任务调度器的“执行流程任务”后,SSI直接进入下一步(如果有),而无需等待任务调度器完成其流程。因此,如果有任何任务将使用PowerShell脚本的输出或更新数据,请插入“脚本任务”“并添加睡眠以确保powershell脚本已完成

System.Threading.Thread.Sleep(120000);

以下是解决方案:

步骤1:创建一个powershell脚本文件。我的script.ps1是:

步骤2:创建一个.bat文件,假设它名为RunMyPS1.bat,如下所示

@ECHO OFF
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""C:\Scripts\WSUSReport\script.ps1""' -Verb RunAs}"
PAUSE
请注意,在参数行末尾使用
-动词runAs
在这里非常重要

步骤3:创建一个任务调度程序来运行.bat文件,例如名为“RunMyBat”

打开任务计划程序,单击右菜单上的“创建任务”。在
常规
下,确保选中了复选框以最高权限运行,这一点非常重要。然后导航到
操作
部分,通过浏览.bat文件添加新操作

步骤4。通过SSIS运行任务计划程序

将“执行流程任务”添加到控制流中。确保任务的可执行文件设置为:“C:\Windows\System32\schtasks.exe”,参数为:“/run/TN”RunMyBat”,如下所示

@ECHO OFF
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""C:\Scripts\WSUSReport\script.ps1""' -Verb RunAs}"
PAUSE

步骤5。运行SSIS包

重要提示:请注意,触发运行任务调度器的“执行流程任务”后,SSI直接进入下一步(如果有),而无需等待任务调度器完成其流程。因此,如果有任何任务将使用PowerShell脚本的输出或更新数据,请插入“脚本任务”“并添加睡眠以确保powershell脚本已完成

System.Threading.Thread.Sleep(120000);