我们正在尝试收集登录到Windows 7客户端的用户的映射驱动器。为此,我们需要创建一个计划任务并让它以该用户的身份运行。这工作正常,但问题是从计划的任务中检索数据。从计划任务中检索数据
代码
Invoke-Command -ScriptBlock {
$User = 'John'
$Script = 'C:\Users\' + $User + '\AppData\Local\Temp' + '\Script.ps1'
$File = 'C:\Users\' + $User + '\AppData\Local\Temp' + '\Data.txt'
$Code = {
$User = 'John'
$File = 'C:\Users\' + $User + '\AppData\Local\Temp' + '\Data.txt'
Get-WmiObject -Class win32_mappedlogicaldisk | Select-Object Name, ProviderName |
Export-Csv $File -Encoding UTF8 -NoTypeInformation
}
$Code | Set-Content $Script -Encoding utf8
schtasks /create /RL HIGHEST /SC ONCE /ST 23:00 /TN "Test" /TR "powershell.exe -ExecutionPolicy Bypass -File '$Script'" /RU "$env:USERDNSDOMAIN\$User"
schtasks /run /TN "Test"
schtasks /delete /F /TN "Test"
for ($i = 0; $i -le 5; $i++) {
if (Test-Path $File) {
Import-Csv $File
Break
}
else {
Start-Sleep -Seconds 1
}
}
} -ComputerName $Computer
这个问题似乎被检索从用户$ENV:Temp
文件夹中的Data.txt
。这似乎是一个重复的事情,是否没有一个更干净的方式来做到这一点?
谢谢你的帮助。
将数据写入服务器上的共享? –
Thx小费!你只是觉得有更好的办法。因为现在需要检查文件何时等待。 – DarkLite1
你打算在加入域名的计算机上运行此操作吗?如果是这样,有更简单的方法来做到这一点.. –