folder Tahribat.com Forumları
linefolder Yazılımlar / Diğer Programlar
linefolder Çoklu Word Belgesi Şifre Korumasını Kaldırma



Çoklu Word Belgesi Şifre Korumasını Kaldırma

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Zande
    Zande's avatar
    Kayıt Tarihi: 16/Mayıs/2012
    Erkek

    Müridler,

    Elimde düzenlemem gereken bin küsür civarında tek sayfalık word dokümanları var. Ancak hepsi şifreli. Şifreler aynı ve şifreyi de biliyorum. Bunların şifrelerini otomatik olarak kaldıracak bir batch script yada vb script bilen var mı?

    Edit Büdüt:

    Windows Powershell için şöyle bir script buldum. Henüz işe yaramadı üzerinde çalışıyorum.

    $read_path = Read-Host("Source Path:")
    $write_path = Read-Host("Destination Path (with trailing backslash!):")
    $passwd = Read-Host("Type in the password:")
    $counter=1
    $WordObj = New-Object -ComObject Word.Application
    foreach ($file in $count=Get-ChildItem $read_path -Filter *.doc)
    {
        $WordObj.Visible = $false
        $WordDoc = $WordObj.Documents.Open($file.FullName, $null, $false, $null, $passwd, $passwd)
        $WordDoc.Activate()
        $WordDoc.Password=$null
        $WordDoc.SaveAs($write_path+$file.Name)
        $WordDoc.Close()
        Write-Host("Finished: "+$counter+" of "+$count.Length)
        $counter++
    }
    $WordObj.Application.Quit()

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Zande
    Zande's avatar
    Kayıt Tarihi: 16/Mayıs/2012
    Erkek

    Üstte paylaştığım kod işe yaramadı. Şöyle bir programcık buldum ama illa Office 2007 istiyor.

    http://www.codeproject.com/Articles/35222/Bulk-Word-Protection-Utility

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    buzukatak
    buzukatak's avatar
    Kayıt Tarihi: 27/Haziran/2010
    Erkek

    Document nesnesinden parolayı tamamen kaldırmak için ek bir iki işlem daha gerekiyor.

    Bir kaç değişiklik yaptım, bunu dene.

     

    $read_path = Read-Host("Source Path:")
    $write_path = Read-Host("Destination Path (with trailing backslash!):")
    $passwd = Read-Host("Type in the password:")
    $counter=1
    $WordObj = New-Object -ComObject Word.Application
    foreach ($file in $count=Get-ChildItem $read_path -Filter *.doc)
    {
        $WordObj.Visible = $false
        $WordDoc = $WordObj.Documents.Open($file.FullName, $null, $false, $null, $passwd, $passwd)
        $WordDoc.Activate()
        $WordDoc.Password = ""
    	$WordDoc.Protect(-1, $TRUE, $passwd)
        $WordDoc.SaveAs($write_path+$file.Name)
        $WordDoc.Close()
        Write-Host("Finished: "+$counter+" of "+$count.Length)
        $counter++
    }
    
    $WordObj.Application.Quit()
    buzukatak tarafından 07/Ağu/14 20:53 tarihinde düzenlenmiştir

    anlıyorum.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Zande
    Zande's avatar
    Kayıt Tarihi: 16/Mayıs/2012
    Erkek

    Dostum sağol ilgin için. Şu şekilde hata veriyor:

    Argument: '2' should be a System.Management.Automation.PSReferen
    At C:\Forms\script.ps1:13 char:21
    +     $WordDoc.Protect <<<< (-1, $TRUE, $passwd)
        + CategoryInfo          : NotSpecified: (:) [], MethodExcept
        + FullyQualifiedErrorId : NonRefArgumentToRefParameterMsg

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    buzukatak
    buzukatak's avatar
    Kayıt Tarihi: 27/Haziran/2010
    Erkek

    Sıçayım powershell'e. Bende çalışıyor. Muhtemelen sürümle alakalıdır.

    Ne varsa eskilerde var.

    VBScript ile tek bir dosyadaki parolayı kaldıran şu örneği dene :

    Option Explicit
    
    Const wdNoProtection = -1
    Const parola = "123456"
    Const dosya = "C:\test.doc"
    
    Dim Word, Doc
    Set Word = CreateObject("Word.Application")
    	Word.Visible = False
    Set Doc = Word.Documents.OpenNoRepairDialog(dosya,,,,parola)
    	Doc.Password = ""
    	Doc.Protect wdNoProtection, True, parola
    	Doc.Save
    	Doc.Close
    Set Doc = Nothing
    
    	Word.Quit
    Set Word = Nothing

    anlıyorum.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Zande
    Zande's avatar
    Kayıt Tarihi: 16/Mayıs/2012
    Erkek

    Office 2013 ve Windows 7 64 Bit problemi yaşıyoruz sanıyorum... Bu da yemedi :(

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    buzukatak
    buzukatak's avatar
    Kayıt Tarihi: 27/Haziran/2010
    Erkek
    Zande bunu yazdı

    Office 2013 ve Windows 7 64 Bit problemi yaşıyoruz sanıyorum... Bu da yemedi :(

    Yemedi derken? Hata? Şifrenin kalkmaması?

    Ben Office 2013 32-bit, Windows 8.1 64-bit ile, dosya formatı olarak Word 97-2002, ve docx ile denemeler yaptım.

    İstersen bana örnek bir dosya gönder, bakayım.

    buzukatak tarafından 07/Ağu/14 21:56 tarihinde düzenlenmiştir

    anlıyorum.
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    buzukatak
    buzukatak's avatar
    Kayıt Tarihi: 27/Haziran/2010
    Erkek

    Özelden yazışmalar sonucu aslında ihtiyacın, verilen örneklerdeki gibi belge korumasını kaldırmak değil, düzenleme kısıtlamalarını kaldırmak olduğu ortaya çıktı.

    Örnek kod :

     

    Option Explicit
    
    Const wdNormalView = 1
    Const wdNoProtection = -1
    
    Const parola = "123456"
    Const dosya = "C:\test.docx"
    
    Dim Word, Doc
    Set Word = CreateObject("Word.Application")
    	Word.Visible = False
    	
    Set Doc = Word.Documents.OpenNoRepairDialog(dosya,,False)
    
    	If Doc.ActiveWindow.View <> wdNormalView Then 
    		Doc.ActiveWindow.View = wdNormalView
    	End If
    	
    	If Doc.ProtectionType <> wdNoProtection Then
    		Doc.Unprotect parola
    	End If
    
    	Doc.Save
    	Doc.Close
    Set Doc = Nothing
    
    	Word.Quit
    Set Word = Nothing

    anlıyorum.
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Zande
    Zande's avatar
    Kayıt Tarihi: 16/Mayıs/2012
    Erkek

    Tesekkurler. Kod son derece sağlam çalışıyor.

Toplam Hit: 2145 Toplam Mesaj: 9