2014-10-02 52 views
0

我在尝试确定用户是否在Outlook中使用.PST文件。在远程电脑上获取用户文档路径

从基础开始(然后我将在之后加入foreach循环)。

$Computer = "Computer1" 
$split = gwmi win32_computersystem -comp $computer | select username 
$User= $split -split 'DOMAIN\\' 
$PST = Get-ChildItem "\\$Computer\C$\users\$User\Documents\Outlook Files" -Include *.pst -Recurse -Force 

我的问题是让计算机用户名中提取的实际名称为字符串

\计算机1 \ C $ \用户\ @ {用户名= SomeUser的} \文件\ Outlook文件

有没有更好的方式从给定的PC获取当前登录用户名?

回答

0

更改$user分配:

$User= $split.username -split 'DOMAIN\\'

所以:

$Computer = "Computer1" 
$split = gwmi win32_computersystem -comp $computer | select username 
$User= $split.username -split 'DOMAIN\\' 
$PST = Get-ChildItem "\\$Computer\C$\users\$User\Documents\Outlook Files" -Include *.pst -Recurse -Force 
+0

感谢您提供替代解决方案。是否有一个“最佳实践”的理由来使用其中一个? – harringg 2014-10-02 15:40:49

+0

不像我所看到的那样,这真的是程序员的偏好。 – arco444 2014-10-02 15:45:40

0

添加expandproperty选择对象

$Computer = "Computer1" 
$split = gwmi win32_computersystem -comp $computer | select -expand username 
$User= $split -split 'DOMAIN\\' 
..... 
+0

从经验:wmi并不总是阅读正确。它有时(也许是1/100)返回没有用户登录没有明显的原因。 – 2014-10-02 14:49:01

+0

谢谢。这按预期工作。 – harringg 2014-10-02 15:40:07

+0

刚刚发现一个问题:$ user导致某用户(按预期)。 Get-ChildItem“\\ $ Computer \ C $ \ users \ $ User \ Documents \ Outlook Files”结果在Get-ChildItem“\\ $ Computer \ C $ \ users \ someuser \ Documents \ Outlook Files”我将如何摆脱领先的空间? – harringg 2014-10-02 15:55:31