Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.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

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
Windows 远程计算机上的Powershell脚本未作为计划任务运行_Windows_Powershell_Active Directory_Server_Scheduled Tasks - Fatal编程技术网

Windows 远程计算机上的Powershell脚本未作为计划任务运行

Windows 远程计算机上的Powershell脚本未作为计划任务运行,windows,powershell,active-directory,server,scheduled-tasks,Windows,Powershell,Active Directory,Server,Scheduled Tasks,我的域中有一个脚本存储在Active Directory服务器上。域上的每台计算机都有一个任务,当该任务被激发时,会调用此脚本来运行 从AD服务器运行任务可以正常工作。从另一台计算机运行任务不起作用。但是,在远程计算机上手动运行由cmd触发的命令是否有效 谁能给这个照点光吗。基本上我是这样叫它的,所以触发器是这样设置的 操作:PowerShell.exe 参数:-noprofile–ExecutionPolicy Bypass-文件“\\NameOfADServer\C$\Tasks\scrip

我的域中有一个脚本存储在Active Directory服务器上。域上的每台计算机都有一个任务,当该任务被激发时,会调用此脚本来运行

从AD服务器运行任务可以正常工作。从另一台计算机运行任务不起作用。但是,在远程计算机上手动运行由cmd触发的命令是否有效

谁能给这个照点光吗。基本上我是这样叫它的,所以触发器是这样设置的

操作:PowerShell.exe


参数:-noprofile–ExecutionPolicy Bypass-文件“\\NameOfADServer\C$\Tasks\script.ps1”“参数1”“参数2”

系统运行可能是您的问题-它在运行的PC之外没有任何访问权限


手动运行时,您将拥有访问权限。

这里有几个问题

  • 您正在以本地系统帐户的身份运行该任务。系统通常无法访问任何网络资源
  • 您正在使用管理共享(
    \\\C$
    )来共享脚本。只有对服务器具有管理员访问权限的用户才能访问管理共享。管理共享受到设计的严格限制,您无法修改对它们的访问权限
  • 我的猜测是,当您手动运行该脚本时,它会工作,因为在您这样做时,它正在使用当前用户的凭据进行网络访问,但请不要引用我的话

    更改量最少的最简单解决方案是:

  • 在Active Directory中创建一个组。将您希望能够运行脚本的计算机帐户添加到该新组中,或者最好添加具有计算机帐户的组。如果确实希望域中任何计算机上的任何系统帐户能够运行脚本,可以将“域计算机”组添加到该组中
  • 在服务器上创建一个文件夹。将脚本放入文件夹中。不要将任何不希望用户阅读的内容放入此文件夹。将“读取”NTFS权限分配给上面创建的文件夹组
  • 共享文件夹。授予刚刚创建的组“完全控制”共享访问权。如果您愿意,可以通过在名称末尾添加美元符号将其作为隐藏共享
  • 更新计划任务以使用
    \\\\script.ps1

  • 这几乎肯定不是完成实际任务的最佳方法,但这可能是在网络共享上与系统帐户一起使用运行脚本的计划任务的最佳方法。

    您使用的帐户是否具有“作为批处理作业登录”权限?如果不是,你会有问题。任务设置为系统用户,如果这是你的意思?