如何在任务计划程序上执行PowerShell脚本?

2024-03-01

我正在尝试执行我的 Powershell 脚本,每 5 分钟运行一次。我尝试使用 Windows 7 的任务计划程序来运行它,但它在记事本上打开我的脚本,并且不会在我的数据库中插入任何内容

下面是我的 Powershell V-2.0 脚本。我不确定我的代码是否有问题(我对此表示怀疑),或者是否有办法将其包含在我的脚本中以每 5 分钟运行一次,比如说从上午 9 点到晚上 9 点。

我是这样安排的:

General
--------
Run only when user is logged on

Triggers
--------
Trigger: at 8h56am every day- 
Details: After triggered, repeat every 5 minutes indefinitely
Status: Enabled

Actions
-------
Action: Start a program
Details: Path to the script

提前致谢!

POWERSHELL(不含连接):

function ping_getUser{

#ping each computer if online, obtain information about the local hard drives only
TRY{
    foreach($workstation in $workstation_list){

        $command = $connection.CreateCommand();
        $command.Connection  = $connection;
        $command.CommandText = "INSERT INTO workstation_userlogged
                                (username,hostname,online)
                                VALUES (@username,@hostname,@status)";

        ### ============================================================= 
        ### values to be assigned as a parameters
        ### =============================================================           
        $hostname    = $workstation;                
        $test_ping   = Test-Connection -ComputerName $hostname -Count 1 -ErrorAction SilentlyContinue;
        $status      = [bool](Test-Connection $hostname -Quiet -Count 1 -ErrorAction SilentlyContinue);

        #if status is TRUE get username
        if($test_ping)
        {
           TRY{
                $username =( Get-WMIObject -ComputerName $hostname -Class Win32_ComputerSystem -ErrorAction Stop | Select-Object -ExpandProperty Username);
           }CATCH{
                Write-Host "Caught the exception" -ForegroundColor Red;
                Write-Host "$_" -ForegroundColor Red;
           }

          TRY{
               if( $test_ping -and $username )
               {
                    $username = $username.split("\");
                    $username = $username[1];
                    echo $username;
               }
          }CATCH{
                Write-Host "Caught the exception" -ForegroundColor Red;
                Write-Host "$_" -ForegroundColor Red;
           }

           #if ping succeeds but no user is logged
           if($test_ping -and -not $username ) # -eq "" 
           {
                $username = "No User";  
           } 
        } #end if

        #if ping DOES NOT succeed set username value to NULL and status to FALSE
        elseif(!$test_ping)
        {
                $username = [DBNull]::Value;
        }#end elseif

       ### ============================================================= 
       ### Assign parameters with appropriate values
       ### ============================================================= 
        $command.Parameters.Add("@username", $username)  | Out-Null
        $command.Parameters.Add("@hostname", $hostname)  | Out-Null
        $command.Parameters.Add("@status",   $status)    | Out-null

       ### ============================================================= 
       ### Execute command query
       ### ============================================================= 
        TRY{
            $command.ExecuteNonQuery() | out-null;
            Write-Host "Successfully inserted in Database";
        }
        CATCH{
            Write-Host "Caught the exception" -ForegroundColor Red;
            Write-Host "$_" -ForegroundColor Red;
        }

       ### ============================================================= 
       ### clear parameter values
       ### =============================================================  
        $command.Dispose()
        $hostname  = "";
        $username  = "";
        $status    = "";
        $test_ping = "";
     }#end for each loop  
}#end try
CATCH{
     Write-Host "Caught the exception" -ForegroundColor Red;
     Write-Host "$_" -ForegroundColor Red;
}#end catch
$connection.Close(); #close connection
}#end ping_test function

ping_getUser #execute function

计划任务的操作必须调用powershell.exe将脚本文件作为参数传递。看http://blogs.technet.com/b/heyscriptingguy/archive/2012/08/11/weekend-scripter-use-the-windows-task-scheduler-to-run-a-windows-powershell-script.aspx http://blogs.technet.com/b/heyscriptingguy/archive/2012/08/11/weekend-scripter-use-the-windows-task-scheduler-to-run-a-windows-powershell-script.aspx

powershell.exe -file c:\path_to_your_script\script.ps1

执行脚本的用户需要拥有执行脚本中所有操作所需的权限。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在任务计划程序上执行PowerShell脚本? 的相关文章

随机推荐

  • Java获取Referer URI?

    我想要与完全相同的方法获取请求URI http docs oracle com javaee 6 api javax servlet http HttpServletRequest html getRequestURI 28 29 但我想在
  • 有没有什么方法可以让javascript循环休眠?

    例如 有一个 for 循环 我想休眠几秒钟 each para res function index item Sleep 100 我知道我可以使用 setTimeout 或 setInterval 但它们都是异步的 循环将继续 如果我这样
  • 套接字 Python 3.5:套接字服务器在文件接收时永远挂起

    我正在尝试编写一个Python程序 如果客户端连接到服务器 它可以浏览目录并通过套接字抓取文件 浏览部分工作正常 它打印出客户端的所有目录 这是代码的一部分 with clientsocket print Connected to addr
  • 可安装的触发器因测试附加组件而失败

    几天来我一直在努力解决可安装的触发器问题 我的所有研究表明 附加组件应该允许在电子表格中安装可安装的 onEdit 触发器 但我的尝试不断出错 我稍微简化了我的项目代码来举例说明我的问题 错误信息 执行失败 测试加载项尝试执行不允许的操作
  • jQuery UI DatePicker 仅显示年份

    我正在使用 jQuery datepicker 来显示日历 我想知道是否可以使用它来仅显示 Year 而不是完整的日历 NOTE 如果有人反对 为什么我现在回答这个问题 因为我尝试了这篇文章的所有答案 但没有得到任何解决方案 所以我尝试了自
  • Hibernate 和 JDBC 性能? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 对于 Pandas 数据框中的每一行,确定另一列中是否存在列值

    我有一个像这样的熊猫数据框 df pd DataFrame category A B C A category pred A B D A B C D print df category category pred 0 A A 1 B B D
  • 在 Cocoa 应用程序中使用异常处理与 NSError

    大家好 我一直在阅读苹果关于何时 何地 如何使用 NSError 与 try catch finally 的建议 本质上 我的印象是苹果认为最好避免使用异常处理语言结构 除非作为在意外错误情况下停止程序执行的机制 也许有人可以举一个这种情况
  • ggplot2:如果位置=“填充”,则在条形图上添加标签

    我想在a上添加 数字filled条形图 这是标签位于错误位置的图 这是数据框 x0 lt expand grid grp c G1 G2 treat c T1 T2 out c out1 out2 out3 out4 set seed 12
  • Facebook-passport 与 JWT

    我一直在使用Passport在我的服务器上进行用户身份验证 当用户在本地登录 使用用户名和密码 时 服务器会向他们发送JWT它存储在 localstorage 中 并在每次需要用户身份验证的 api 调用时发送回服务器 现在我想支持Face
  • Python zipfile.extract() 不会提取所有文件

    我正在尝试使用此处找到的代码提取压缩文件夹 def unzip source filename dest dir with zipfile ZipFile source filename as zf for member in zf inf
  • Java 中的向上转型/向下转型

    我试图理解 Java 中的向上转型和向下转型 但我对以下场景感到困惑 关于我的代码 如下 首先 为什么当我包含该行时代码无法编译myAnimal bark 第二个 假设我注释掉myAnimal bark 为什么调用myAnimal move
  • PostgreSQL 中带有字符串的 For 循环

    这里我试图连接一个字符串 CREATE FUNCTION looping RETURNS TABLE round text DECLARE i RECORD BEGIN FOR i IN select regexp split to tab
  • 我可以在一个 MTLRenderCommandEncoder 中使用多个 MTLRenderPipelineStates 吗?

    我目前正在为游戏制作简单的 UI 为了绘制每个按钮 我需要使用 2 个管道状态 每个按钮使用相同的顶点着色器 一种是使用静态颜色片段着色器绘制边框线带 另一种是使用波纹渐变绘制按钮的内部 我想知道是否需要两个不同的渲染命令编码器 每个管道一
  • 如何在平面列表中交替颜色(React Native)

    尝试交替颜色React Natives Flatlist 我相信我需要 rowID 或类似的东西来做到这一点 这是我到目前为止所得到的 let colors 123456 654321 fdecba abcdef
  • 节点如何知道哪些节点已经看到集群当前状态?

    我正在阅读 akka 文档 并在理解他们的实现方式时遇到了一些麻烦Gossip 文档在这里 http doc akka io docs akka 2 4 common cluster html Gossip Protocol 让我困惑的部分
  • rpm %config(noreplace) 用 %config 覆盖

    在我的 rpm 中 我有一个完整的目录 我想用 config noreplace 标记它 该目录中有一个文件 我想在每次安装时使用 config 中的语义将其替换为最新的 rpm 使用此处的指南 http www uxsup csx cam
  • 禁用 WPF DataGrid 中第一行的第一列

    有没有一种方法 使用样式和多触发器 始终禁用第一行的第一列DataGrid在 WPF 控件中 这是一个模板化列 在编辑模式下显示组合框 在正常模式下显示文本框 我希望它永远不会进入编辑模式 仅此列 该行中的其余列应该能够进入编辑模式 是的
  • 这里不允许AllowOverride

    我已经设置了一个虚拟主机 如下所示
  • 如何在任务计划程序上执行PowerShell脚本?

    我正在尝试执行我的 Powershell 脚本 每 5 分钟运行一次 我尝试使用 Windows 7 的任务计划程序来运行它 但它在记事本上打开我的脚本 并且不会在我的数据库中插入任何内容 下面是我的 Powershell V 2 0 脚本