我是公司的桌面支持技术,我们经常进行大量重复的故障排除,例如从C \ windows \ temp,本地appdata temp文件夹以及google和IE缓存/ cookie。我正在编写一个powershell脚本来一次性完成所有操作,它确实完成了预期的工作。唯一的问题是,当我在用户的计算机上时,我必须首先实际访问Windows temp和本地appdata文件夹,然后运行脚本使其正常运行。我相信这是因为这两个文件夹需要管理员访问权限才能进入。因为我是管理员,所以可以放心访问这些文件夹,但是我很难找到要插入的代码以允许Powershell脚本访问这些文件夹。注意:我在脚本的开头确实有一个命令以admin身份启动powershell,但这似乎还不够。我的代码在下面,对此的任何见解都会很棒。 (好像我的代码中的注释主题标签使注释变为粗体,很抱歉)
# Runs the below script with PowerShell in Admin mode
Start-Process "$psHome\powershell.exe" -verb runas -ArgumentList "-file fullpathofthescript"
# Clears google chrome cache
Remove-Item -Path "C:\Users\*\AppData\Local\Google\Chrome\User Data\Default\Cache\*" -verb runas -Recurse -Force -ErrorAction SilentlyContinue
# Clears IE cookies
Remove-Item -Path "C:\Users\*\AppData\Roaming\Microsoft\Windows\Cookies\*" -verb runas -Recurse -Force -ErrorAction SilentlyContinue
# Clears the "windows\temp" folder
Remove-Item -Path "C:\Windows\Temp\*" -verb runas -Recurse -Force -ErrorAction SilentlyContinue
# Clears the user's local temp folder
Remove-Item -Path "C:\Users\*\AppData\Local\Temp\*" -verb runas -Recurse -Force -ErrorAction SilentlyContinue"
答案 0 :(得分:0)
您可以使用-Credential
参数来提示输入本地管理员凭据,假定您未将ACL弄乱,应允许您在C:\Windows\*
位置删除。
Remove-Item -Path "C:\Windows\Temp\*" -Credential (Get-Credential) -Recurse -Force -ErrorAction SilentlyContinue
插入ErrorAction
也会阻止您看到以下错误。
Remove-Item : A positional parameter cannot be found that accepts argument 'runas'.