【发布时间】:2014-05-07 13:46:18
【问题描述】:
我正在尝试使用 RunOnce 注册表项运行 powershell 脚本。我需要它以管理员身份运行,我可以让脚本运行,但我不能让它以提升的权限运行。这是我尝试过的,但它什么也没做。
我的代码:
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -verb runas -File c:\script.ps1
有什么想法吗?
【问题讨论】:
-
您在 ServerFault 上可能会有更好的运气。我会看一个登录触发的计划任务。 (technet.microsoft.com/en-us/library/cc748841.aspx)
-
脚本将执行策略设置为不受限制,但它给出了一个错误,指出控制执行策略的注册表项被拒绝。如果我以管理员身份运行脚本,它就可以正常工作。至于登录触发的计划任务,这是用于对计算机进行映像,我希望它在使用 Windows 7 进行映像后的初始登录时执行此操作。登录触发的计划任务会更有效吗?
-
你试过使用powershell.exe的执行策略参数吗?这将覆盖注册表中设置的执行策略并允许脚本运行。
-
我不能说我已经尝试过了。至此,我创建了一个在登录时运行的计划任务,并添加了一个 If then else 语句以确保它只运行一次。这是我的代码 - Set-ExecutionPolicy Unrestricted $name = (Get-WmiObject win32_bios).SerialNumber.Trim() $oldname = (Get-WmiObject win32_computersystem).Name.Trim() IF ($oldname -eq $name){Exit } Else{ Rename-computer -ComputerName $oldname -NewName "$name" -force Start-Sleep -s 5 Restart-Computer}
-
放入 if else 语句后脚本不再工作,有什么想法吗?
标签: powershell registry