2016-11-18 52 views
0

我已经在Windows PowerShell中做了一个创建功能:如何从powershell函数获取输出到例如txt的输出文件中?

function create(){ 
param(
$searchBase = "OU=Customers,DC=test,DC=nl", 
$NewOUs = @(Import-csv -Path $txt_csv.Text -Delimiter ";"), 
[switch]$ProtectOU 
) 

$Protect = $true 
If ($ProtectOU){$Protect = $true} 

<# ------- CREATE OU ------- #> 
foreach ($NewOU in $NewOUs) { 
    try { 
     New-ADOrganizationalUnit -Name $NewOU.company -Description $NewOU.description -Path $searchBase -ProtectedFromAccidentalDeletion $Protect 
     } 
    catch { 
     Write-Host "OU already exists" 
     } 
} 

$UserList = Import-Csv -Path $txt_csv.Text -Delimiter ";" 

<# ------- CREATE USERS ------- #> 
foreach ($User in $UserList) { 

    $OU = $User.path 
    $UPN = $User.UPN 
    $Password = $User.password 
    $Detailedname = $User.firstname + " " + $User.Lastname 
    $UserFirstname = $User.Firstname 
    $FirstLetterFirstname = $UserFirstname.substring(0,1) 
    $SAM = $User.UPN 
    $Company = $User.company 
    $Description = $User.description 
    $AccountExpirationDate = $User.accountexpirationdate 

    $params = @{ 'Name'=$Detailedname; 
       'SamAccountName'=$SAM; 
       'UserPrincipalName'=$UPN+'@test.nl'; 
       'DisplayName'=$Detailedname; 
       'GivenName'=$UserFirstname; 
       'Surname'=$User.Lastname; 
       'AccountPassword'=(ConvertTo-SecureString $Password -AsPlainText -Force); 
       'Enabled'=$True; 
       'PasswordNeverExpires'=$True; 
       'Path'=$OU; 
       'Company'=$Company; 
       'Description'=$Description; 
       'AccountExpirationDate'=$AccountExpirationDate 
       'HomeDrive' = "H:" 
       'HomeDirectory' = "\\home\userdata$\$SAM" 
       'ProfilePath'="\\dc-test\User Profiles$\$SAM"     
       } 

    New-ADUser @params 
} 

我想这个创建功能作为一个txt例如一个输出文件。

这是我的WPF按钮对象:

$button_add.Add_Click({create}) 

当我点击按钮的输出必须产生一个输出文件。我已经尝试了很多这样的解决方案:

创建|出文件,但我没有得到的信息,我想:

来源:https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.utility/out-file

是否有可能做到这一点?

亲切的问候

+0

但什么输出你想要吗?举个例子,也许? – 4c74356b41

+0

例如,创建的数据以及创建或失败的数据。 – Fearcoder

回答

0

你想做到以下几点:

"processing New-ADUser with $params" | Out-File log.txt -Append 
try { 
    New-ADUser @params 
    "Created $UPN" | Out-File log.txt -Append 
} 
catch { 
    $_ | Out-File log.txt -Append 
} 

,或者你可以只新ADUser便有的输出传递到Out-文件:

New-ADUser @params -PassThru | Out-File log.txt -Append 
+0

没问题,很高兴我能帮忙! – 4c74356b41