locked
如何刪除win7 client PC的註冊檔profilelist機碼裡的SID.bak RRS feed

  • 問題

  • 您好,因多台win7 client PC的profilelist機碼裡出現SID.bak,因為會造成某些user 無法儲存profile! ,且SID不固定,如何將以下機碼路徑的[*.bak]篩選出來並刪掉*.bak的機碼? 是否有指令或script可由win2003 AD GPO佈署刪除多台有此問題的client PC? 謝謝!
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList]

    2012年7月19日 上午 12:05

解答

  • HI:
    可以使用vbs的EnumKey和RegDelete,當然也可以使用PowerShell
    大致上的vbs如下,請先備分再測試
    const HKEY_LOCAL_MACHINE = &H80000002
    strComputer = "."
    Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\"&_
        strComputer & "\root\default:StdRegProv")
    Set objShell = CreateObject("WScript.Shell")
    strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"
    objReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys

    For Each subkey In arrSubKeys
        If strComp(Right(subkey,4),".bak",1)=0 Then
      objShell.RegDelete("HKEY_LOCAL_MACHINE\" & strKeyPath & "\" & subkey & "\")
     End If
    Next

    謝謝

    • 已標示為解答 AlanHuangtw 2012年7月20日 下午 03:29
    2012年7月19日 上午 02:15

所有回覆

  • HI:
    可以使用vbs的EnumKey和RegDelete,當然也可以使用PowerShell
    大致上的vbs如下,請先備分再測試
    const HKEY_LOCAL_MACHINE = &H80000002
    strComputer = "."
    Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\"&_
        strComputer & "\root\default:StdRegProv")
    Set objShell = CreateObject("WScript.Shell")
    strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"
    objReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys

    For Each subkey In arrSubKeys
        If strComp(Right(subkey,4),".bak",1)=0 Then
      objShell.RegDelete("HKEY_LOCAL_MACHINE\" & strKeyPath & "\" & subkey & "\")
     End If
    Next

    謝謝

    • 已標示為解答 AlanHuangtw 2012年7月20日 下午 03:29
    2012年7月19日 上午 02:15
  • 此VBS已解決我的問題了!Thanks.
    2012年7月27日 下午 08:57