一括でSQL Serverデータベースディスクファイル権限を修正する

会社セキュリティポリシーの変更により、__INLINE_CODE_0__最终还是搬迁回家作为备用服务器,顺带重装机器系统,__INLINE_CODE_1__BOLD_4windows server。 активацииの方法が非正規なので、自宅での使用であれば активации しなくても問題ないようです。

非正規品による起動で、Microsoftの検出がトリガーされました(半月ほど正常に動作していました)。サーバーを起動して1時間で自動的にシャットダウンされ、システムログを確認した結果、海賊版ソフトウェアが原因であることが判明しました。

どうにもならない、システムを再度インストールせざるを得ない状況だ。__INLINE_CODE_0__も再インストールが必要になりそう。毎回面倒くさい作業になる。ファイルアクセス権が厳しく制限されているため、データベースを正常に追記できない。

エラーメッセージ

システムを再インストール後、__INLINE_CODE_0__は追加データベースで5120エラーが発生し、オペレーティングシステムによるアクセス拒否となる可能性があります。

スクリプト処理

前のリンク:批量更新本地Git仓库 。おなじみのスクリプトですが、フォルダをトラバースしながらファイルの権限を変更します。現在、完全に編集可能な権限を持っています。

オンラインのチュートリアルはほとんど手動修正を要求するけど、彼らは毎回数ファイルしか変更しないの?私は毎回大量のファイルを抱えて、全て手作業で対応しなければならないから、精神が疲弊するわ。

$currentUserName = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$rootDirectory = "D:\data\2013_RujiaInfo"

Get-ChildItem -Path $rootDirectory -Recurse | ForEach-Object {
    $itemPath = $_.FullName

    if ($_ -is [System.IO.DirectoryInfo]) {
        $icaclsResult = icacls $itemPath /setowner "$currentUserName" 2>&1
        if ($LASTEXITCODE -eq 0) {
            Write-Host "已更改文件夹 $itemPath 的所有者为 $currentUserName"
            # 授予当前用户写入权限
            Invoke-Expression "icacls `"$itemPath`" /grant `"$($currentUserName):(OI)(CI)F`""
            Write-Host "已授予 $currentUserName 编辑文件夹的权限"
        } else {
            Write-Host "无法更改文件夹 $itemPath 的所有者。错误信息: $icaclsResult"
        }
    } else {
        $takeownResult = icacls $itemPath /setowner "$currentUserName" 2>&1
        if ($LASTEXITCODE -eq 0) {
            # 授予当前用户写入权限
            Invoke-Expression "icacls `"$itemPath`" /grant `"$($currentUserName):(F)`""
            Write-Host "已授予 $currentUserName 编辑文件的权限"
        } else {
            Write-Host "无法更改文件 $itemPath 的所有者。错误信息: $takeownResult"
        }
    }
}

Licensed under CC BY-NC-SA 4.0
最終更新 2025年05月28日 09:47
金融ITプログラマーのいじくり回しと日常のつぶやき
Hugo で構築されています。
テーマ StackJimmy によって設計されています。