SchTask_0x727
SchTask_0x727 copied to clipboard
实际应用场景中,当前权限为system情况下,无法添加成功,因为System.Environment.GetFolderPath获取不适应
代码里写获取了ApplicationData。
正常再pc中没问题,因为当前有用户,ApplicationData成立,只要满足管理权限就可以了。
但在实战场景中,如果是打server,多是应用在提权到system权限后,进行权限维持。
这时候有system权限,执行的时候虽然权限够了,但是没有管理员用户身份。自然也就没有当前的ApplicationData
执行就会获取错误,以下是我遇到的问题
未处理的异常: System.IO.DirectoryNotFoundException: 未能找到路径“C:\Windows\system32\config\systemprofile\AppData\Roaming\Microsoft\Windows\Themes\rdpclip.exe”的一部分。
在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
在 System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite)
在 SchTask.Program.Copy(String inputfile, String randomname, String min)
在 SchTask.Program.Main(String[] args)
所以选择System.Environment.GetFolderPath去获取别的还可以,比如System、programFile。
这样就会适用
如果新添加用户是管理员,但有时候是不加用户进桌面的,那当前就获取不到准确用户的路径了,这时候就会报错。
考虑到服务器默认有Administrator,所以我这边直接写死了,一般适用于大部分server场景。
然后就成功了
只是反馈一个场景问题。
作者可以考虑下优化哈哈。
十分感谢作者的开源精神,值得敬佩,向您学习。期待您分享的下一个优秀项目。