Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.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/image-processing/2.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_Acl_Local System Account - Fatal编程技术网

Windows 在Powershell中以系统用户身份运行命令

Windows 在Powershell中以系统用户身份运行命令,windows,powershell,acl,local-system-account,Windows,Powershell,Acl,Local System Account,我在网上找到了一些答案,但不是我真正想要的 问题如下: 使用“Networker”还原文件时,文件的ACL与备份文件时的ACL相同,与文件还原到的文件夹中的继承关系相同。这意味着ACL的继承不会影响新还原的文件 这给我留下了一个问题,即只有3个帐户有权更改ACL 该文件所属的用户 域管理员 系统帐户 为了解决这个问题,我想运行一个自动脚本来修复ACL并激活正确的继承 脚本的系统用户必须是三个用户之一。 用户正在更改,因为这不是一个有效的选择,而且我不想留下任何域管理员凭据,也不想给服务帐户授

我在网上找到了一些答案,但不是我真正想要的

问题如下: 使用“Networker”还原文件时,文件的ACL与备份文件时的ACL相同,与文件还原到的文件夹中的继承关系相同。这意味着ACL的继承不会影响新还原的文件

这给我留下了一个问题,即只有3个帐户有权更改ACL

  • 该文件所属的用户
  • 域管理员
  • 系统帐户
为了解决这个问题,我想运行一个自动脚本来修复ACL并激活正确的继承

脚本的系统用户必须是三个用户之一。 用户正在更改,因为这不是一个有效的选择,而且我不想留下任何域管理员凭据,也不想给服务帐户授予域管理员权限

这就给我留下了完成这项工作的系统帐户,下面是一个问题:

如何在powershell中以系统帐户凭据执行任务

我试过了

$username = "NT Authority\System"
$password = ConvertTo-SecureString -String "" -AsPlainText -Force
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist @($username, $password)
由于密码是空的,我不能用它创建凭据

所有区域设置中的帐户名称为。\LocalSystem。名字, 也可以使用LocalSystem或ComputerName\LocalSystem。这个账户 没有密码。

所以现在我有点困惑,我如何才能让它工作

编辑: 该文件系统在EMC上运行,并不是真正的Windows文件系统,而是挂接在Linux系统上。因此没有本地管理员帐户

TL;DR


我想使用powershell的系统帐户继承文件的ACL权限,域管理员如何通过本地管理员组获得访问权限。本地管理员可以拥有任何本地对象的所有权,并随后向该对象授予新权限

以管理员身份运行类似的操作应该可以完成您想要的操作:

takeown /f C:\some\file_or_folder /a /r /d:y
icacls C:\some\file_or_folder /reset /t /c /q
切勿将系统帐户用于此类事情。

使用提供的凭据或系统对本地/远程计算机调用命令。返回PSObject,处理网络中断并解决任何双跳问题

试试看,让我知道这是否解决了您的问题。

如果您可以安装(非常有用的)第三方程序,您可以尝试以下方法。它是一个可移植的.zip,没有真正的安装

以管理员身份运行:

C:\WINDOWS\system32>nircmd.exe elevatecmd runassystem c:\windows\System32\cmd.exe
启动一个新的cmd窗口:

Microsoft Windows [Version 10.0.18362.418]

(c) 2019 Microsoft Corporation. All rights reserved.

C:\WINDOWS\system32>whoami
nt authority\system

C:\WINDOWS\system32>

是的,问题是该文件系统在EMC上运行,不是真正的Windows文件系统,而是与Linux系统挂钩。因此没有本地管理员帐户:(我现在看到的唯一其他方法是“使用”恢复到其他位置)一个普通的文件系统,因此是一个本地管理员。如果没有本地管理员帐户,您凭什么相信会有本地系统帐户?请编辑您的问题,并提供有关您的环境、操作系统的更多信息,和文件系统。嗨,Ansgar,如前所述,系统帐户显示在还原文件的ACL中。但是,您是对的,实际上有一个系统帐户似乎很奇怪。@AnsgarWiechers如果您想在作为启动和关闭重新启动时运行一个PS脚本,该脚本通常作为AD中的
ComputerName$
帐户运行,不是吗是否意味着您希望以
LocalSystem
的形式运行该进程?脚本驻留的共享及其写入的日志文件仅授予对
域计算机的访问权限
,但我试图远程
输入PSSession
调用命令
,使其在不重新启动的情况下运行,但访问被拒绝。是否存在纯PowerShell或even使用AddType C#definition或其他东西,在没有psexec或task scheduler或nircmd的情况下实现这一点?你已经有答案了吗?相关的是,人们会认为如果编译的nircmd或psexec可以做到这一点,那么如果PowerShell无法让某些东西作为系统或应用程序执行,为什么不在PowerShell中使用.Net或C或C#代码呢本地系统。仅在极端情况下手动使用,仅在需要时使用,不用于自动化或类似情况。必须有一种powershell本机方法来执行此操作?同样来自NirSoft:
AdvancedRun.exe/EXEFilename“C:\Program Files\powershell\6\pwsh.exe”/RunAs 4/Run
此处为“4”是作为
系统运行的
.ahhh,,,,Nirsoft工具…我随时准备着它们…靠近系统内部工具…;-)