簡體   English   中英

Powershell寫入文件

[英]powershell write to file

我已經編寫了用於在AD中進行更改的GUI,並且需要記錄所有操作。 該GUI被多個用戶一次使用並寫入一個文件,但是只有寫入日志文件的第一人才可以實際寫入該文件。 其他人的訪問被拒絕。 我正在使用像這樣的streamwriter。

$File = "$LogPath\$LogDate.log"
$stream = [System.IO.StreamWriter] $File
$stream.WriteLine("----------------------------------------------------")
$stream.WriteLine("$LogTime $ExecUser | Set expire date for user $setenddateuser to $usernewenddate")
$stream.close()

我在做什么錯了,該文件的句柄沒有釋放供其他人使用?

創建流基本上會阻止對任何文件的訪問或其他流的創建,除非在共享模式下為xlsx,否則我對類似日志的日志所做的就是使用add-content。

即:

Add-content -value "test" -path $logRoute

很抱歉有錯別字,我在手機自動取款機上。 但這應該可以解決您的問題

您是否嘗試過使用細粒度的.NET互斥鎖? 每次您需要記錄一條消息時,請鎖定互斥鎖,使用“ Add-Content附加該消息,然后釋放互斥鎖。 那應該確保文件不會被同時打開多次,這幾乎可以肯定是導致問題的原因。

這是一篇關於這個問題的文章。

由於新創建的文件缺少其他用戶的寫入權限,因此使用ACL命令有助於解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM