簡體   English   中英

啟動PowerShell腳本,Export-Csv不導出LogonServer變量

[英]Startup PowerShell script, Export-Csv not exporting LogonServer variable

我有一台PC,該PC連續登錄,運行腳本,然后注銷並重新啟動以重復該過程。

$StartTime = Get-Date
...
(other code here, including delay)
...
$LServer = $env:logonserver
$ShutTime = Get-Date

New-Object -TypeName PSCustomObject -Property @{
    StartTime = $StartTime
    ShutTime = $ShutTime
    LogonServer = $LServer 
} | Export-Csv -Path "C:\Apps\DCResults.csv" -Append

當我手動執行腳本時,將使用正確的信息更新文件,即填充3列數據。 但是,當腳本在Windows啟動時執行時,LogonServer不會寫入CSV文件。 該列為空白,而其他兩列是正確的。

編輯:實際上,它不必是.CSV,而只是我可以放入Excel進行分析的文件。 如果有更好的方式寫入文件...

像這樣的東西可以代替:

$LServer = (gwmi Win32_NtDomain | select DomainControllerName | where DomainControllerName -ne $null ).DomainControllerName[0] -replace '\\'

直到用戶登錄后,才定義LogonServer環境變量。如果您正在計算機啟動腳本中運行腳本,則沒有用戶登錄。也許如果您將腳本作為“登錄”腳本運行,則可以執行此操作。

我將配置一個自動登錄用戶: http : //support.microsoft.com/kb/324737

確保您的登錄用戶是域用戶,並且也是本地管理員組的成員。 然后將腳本設置為在啟動時從啟動文件夾或在以下位置運行:HKEY_LOCAL_MACHINE \\ SOFTWARE \\ Microsoft \\ Windows \\ CurrentVersion \\ Run

在注冊表中配置作業以通過cmd / bat文件啟動(就像計划的任務一樣)。 該腳本將為任何有權訪問該文件夾和文件的登錄用戶運行並生成輸出,即使您破壞了自動登錄用戶也是如此。 我還將使用shutdown命令添加幾秒鍾的延遲,以便使用shutdown -a可以輕松破壞重新啟動部分

LOGONSERVER環境變量(如果已設置)是指登錄到當前用戶(即運行腳本的用戶帳戶)的計算機。 對於本地帳戶,LOGONSERVER(同樣,如果已設置)將是本地計算機。

暫無
暫無

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

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