启动PowerShell脚本,Export-Csv不导出LogonServer变量

时间:2014-07-09 18:02:38

标签: powershell logonserver

我有一台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中进行分析的文件。如果有更好的方法来写入文件...

4 个答案:

答案 0 :(得分:1)

这样的事情会改变:

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

答案 1 :(得分:0)

在用户登录之前,不会定义LogonServer环境变量。如果您在计算机启动脚本中运行脚本,则表示没有用户登录。也许如果您将脚本作为登录脚本运行,它会执行在你想要的。

答案 2 :(得分:0)

我会配置一个自动登录用户: http://support.microsoft.com/kb/324737

确保您的登录用户是域用户,也是本地管理员组的成员。然后将脚本设置为从启动文件夹启动时运行,或者在: HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的Windows \ CurrentVersion \ Run中

将注册表中的作业配置为通过cmd / bat文件启动(就像计划任务一样)。该脚本将为任何登录用户的用户运行并生成输出,即使您中断了自动登录用户,该用户也有权访问该文件夹和文件。我还会使用shutdown命令添加几秒延迟,以便可以使用shutdown -a

轻松破坏重启部分

答案 3 :(得分:0)

LOGONSERVER环境变量(如果已设置)是指登录当前用户的计算机(即运行脚本的用户帐户)。对于本地帐户,LOGONSERVER(如果已设置)将是本地计算机。