首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >批处理/powershell备份wlan配置文件-需要提升权限(不是管理员!)

批处理/powershell备份wlan配置文件-需要提升权限(不是管理员!)
EN

Stack Overflow用户
提问于 2015-11-23 15:40:20
回答 1查看 967关注 0票数 0

基本上,我希望通过批处理或PowerShell备份我的用户的无线局域网配置文件。这个命令运行得很好:

代码语言:javascript
运行
复制
netsh wlan export profile key=clear folder="%appdata%\wlan-profiles"

我需要key=clear,所以我可以独立于Win7 / Win8 / Win10导入这些配置文件。

问题是:命令shell需要启动(作为普通用户(而不是admin!))。否则,密码将以散列形式导出,而不是以明文形式导出。如果密码是以散列形式存储的,则无法将密码导入到另一个系统上。

是否有任何方法使批处理或PowerShell脚本进入提升模式而不键入密码?是否有其他方法以明文导出无线局域网配置文件?

我考虑了一个预定的任务,但是如果您想给参数/RL HIGHEST (以最高权限运行),那么您也需要运行这个命令。

有些人有什么想法或解决办法吗?

它需要以正常用户的身份工作,并且应该从Win7兼容到Win10。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-10 11:29:18

我的解决方案:

我部署了安装计划任务的安装(任务作为系统运行),如果一个新用户登录了,它每天运行一个powershell脚本,对于每个用户(带有特殊管理帐户的排除列表),将创建和导入一个用户指定的计划任务。

在您的部署系统或logonscript中,您可以触发用户调度的任务(具有最高的私密性),该任务以明文的形式导出所有配置文件(到%appdata%_wlan)。

它的工作原理很好,并且兼容Windows 7、Windows 8和Windows 10。

如果有人需要更多的细节,就问吧。

powershell脚本:

代码语言:javascript
运行
复制
if(Test-Path "c:\temp\wlan\user.ini"){
    $userliste=get-content "C:\temp\wlan\user.ini"
    $userlisteneu=gci -Path c:\users -Exclude *admin*, *streaming*, *public*, *autologon* , *_* -name
    foreach($user in $userlisteneu){
        if (-not($pruefung=$userliste -match $user)){
            $filename="c:\temp\wlan\WLAN-Backup-$user.xml"
            copy "c:\temp\wlan\WLAN-Backup.xml" $filename
            (Get-Content  $filename) | Foreach-Object {$_ -replace 'Domain\\username',"$env:userdomain\$user"} | set-content $filename  
            cmd /c schtasks /Create /XML $filename /TN WLAN-Backup-$user
            $user | Out-File "C:\temp\wlan\user.ini" -Append
        }
    }
 } else { 
 gci -Path c:\users -Exclude *admin*, *streaming*, *public*, *autologon* , *_* -name | Out-File "C:\temp\wlan\user.ini" -Append
 $userliste=get-content "C:\temp\wlan\user.ini"
 foreach($user in $userliste){
        $filename="c:\temp\wlan\WLAN-Backup-$user.xml"
        copy "c:\temp\wlan\WLAN-Backup.xml" $filename
        (Get-Content  $filename) | Foreach-Object {$_ -replace 'Domain\\username',"$env:userdomain\$user"} | set-content $filename       
        cmd /c schtasks /Create /XML $filename /TN WLAN-Backup-$user
    }
 }

出口命令

代码语言:javascript
运行
复制
%System%\schtasks.exe /Run /TN "WLAN-Backup-%username%"

进口命令

代码语言:javascript
运行
复制
%System%\cmd.exe /c forfiles /p "%appdata%\_wlan" /m *.xml /c "cmd /c netsh wlan add profile filename=@path"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33874913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档