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

批处理/powershell以备份wlan配置文件-需要提升权限(不是管理员!),powershell,batch-file,backup,profile,wifi,Powershell,Batch File,Backup,Profile,Wifi,基本上,我希望通过批处理或PowerShell备份用户的WLAN配置文件。这个命令运行得很好: netsh wlan export profile key=clear folder="%appdata%\wlan-profiles" 我需要key=clear,这样我就可以独立于Win7/Win8/Win10导入这些配置文件 问题是:命令shell需要提升(作为普通用户(而不是管理员!)启动,因为否则密码将作为哈希而不是明文导出。如果密码存储为散列,则无法在其他系统上导入密码 有没有办法让批处理

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

netsh wlan export profile key=clear folder="%appdata%\wlan-profiles"
我需要
key=clear
,这样我就可以独立于Win7/Win8/Win10导入这些配置文件

问题是:命令shell需要提升(作为普通用户(而不是管理员!)启动,因为否则密码将作为哈希而不是明文导出。如果密码存储为散列,则无法在其他系统上导入密码

有没有办法让批处理或PowerShell脚本进入提升模式而不键入密码是否有其他方法以明文形式导出WLAN配置文件

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

有些人有什么想法或解决方法来做到这一点吗

它需要以普通用户的身份工作,并且应该与Win7和Win10兼容。

我的解决方案:

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

在部署系统或logonscript中,您可以触发用户计划任务(具有最高权限),该任务以明文形式导出所有密码配置文件(到%appdata%\u wlan)

它工作得很好,在Windows7、Windows8和Windows10之间兼容

如果有人需要更多的细节,尽管问

powershell脚本:

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
    }
 }
导出命令

%System%\schtasks.exe /Run /TN "WLAN-Backup-%username%"
导入命令

%System%\cmd.exe /c forfiles /p "%appdata%\_wlan" /m *.xml /c "cmd /c netsh wlan add profile filename=@path"

我不确定你所说的提升权限是什么意思,但不是管理员。您能澄清一下吗?多个现有解决方案有什么问题:?好的,我试着解释一下:您是一个普通用户(没有管理员权限),如果您在nromal cmd中运行上述命令,wlan密码将被加密存储。如果您使用普通用户帐户启动cmd提升(Stg+Shift),那么它将以明文形式存储。就我所见,现有解决方案有什么问题?我的意思是你试过那些自动提升批处理文件吗?我发现所有的解决方案都会弹出uac,你需要输入密码。我正在寻找一种不用输入密码的解决方案。