首页 > 解决方案 > 通过自我提升的 powershell 脚本复制后文件在资源管理器中不可见

问题描述

使用 PowerShell 以管理员身份运行命令?自我提升我的 powershell 脚本以复制文件并在 Windows 10 机器上安排作业:

if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
    Start-Process PowerShell -Verb RunAs "-NoProfile -ExecutionPolicy Bypass -Command `"cd '$pwd'; & '$PSCommandPath';`"";
    exit;
}

但复制过程:

Copy-Item -Path (c:\example\powershellw.exe') -Destination 'c:\windows\system32\WindowsPowerShell\v1.0'

在我的本地机器上工作,但在远程机器上(不同的权限)不能:

一个。它确实复制了文件但是 b。该文件只能由命令行“dir”读取,在 Windows 资源管理器中不可见,在任务调度程序中不可见,即使在以管理员权限运行时也会在任务调度程序中导致“找不到文件”(https://superuser.com/questions/1382965/ powershell-cant-see-all-files-in-a-directory )

该文件只有 A 而不是不同的属性,它可以从系统、用户、管理员访问,但在资源管理器中仍然不可见。当我以管理员身份手动启动 powershell 会话并运行此行时,文件变得可见...

那么在提升的 powershell 提示符下手动运行该行与使用自提升行运行脚本 auto 有什么区别?

标签: powershellcopyadminelevated-privileges

解决方案


推荐阅读